Remove seconds property from PerspectivePlane

This commit is contained in:
Edwin Jakobs
2020-03-20 15:16:46 +01:00
parent 2ca78df17f
commit 772283a0c6
2 changed files with 20 additions and 24 deletions

View File

@@ -10,36 +10,33 @@ import org.openrndr.math.transforms.transform
@Description("Perspective plane") @Description("Perspective plane")
class PerspectivePlane : Filter(Shader.createFromCode(filterVertexCode, filterFragmentCode("distort/perspective-plane.frag"))) { class PerspectivePlane : Filter(Shader.createFromCode(filterVertexCode, filterFragmentCode("distort/perspective-plane.frag"))) {
// @DoubleParameter("camera x", -1.0, 1.0, order = 0)
// @DoubleParameter("camera x", -1.0, 1.0, order = 0) var cameraX: Double = 0.0
var cameraX : Double = 0.0 // @DoubleParameter("camera y", -1.0, 1.0, order = 1)
// @DoubleParameter("camera y", -1.0, 1.0, order = 1) var cameraY: Double = 0.0
var cameraY : Double = 0.0 // @DoubleParameter("camera z", -1.0, 1.0, order = 2)
// @DoubleParameter("camera z", -1.0, 1.0, order = 2) var cameraZ: Double = 1.0
var cameraZ : Double = 1.0
@DoubleParameter("plane x", -1.0, 1.0, order = 3) @DoubleParameter("plane x", -1.0, 1.0, order = 3)
var planeX : Double = 0.0 var planeX: Double = 0.0
@DoubleParameter("plane y", -1.0, 1.0, order = 4) @DoubleParameter("plane y", -1.0, 1.0, order = 4)
var planeY : Double = 0.0 var planeY: Double = 0.0
@DoubleParameter("plane z", -1.0, 1.0, order = 5) @DoubleParameter("plane z", -1.0, 1.0, order = 5)
var planeZ : Double = 0.5 var planeZ: Double = 0.5
@DoubleParameter("plane yaw", -180.0, 180.0, order = 6) @DoubleParameter("plane yaw", -180.0, 180.0, order = 6)
var planeYaw : Double = 0.0 var planeYaw: Double = 0.0
@DoubleParameter("plane pitch", -180.0, 180.0, order = 7) @DoubleParameter("plane pitch", -180.0, 180.0, order = 7)
var planePitch : Double = 0.0 var planePitch: Double = 0.0
@DoubleParameter("plane roll", -180.0, 180.0, order = 8) @DoubleParameter("plane roll", -180.0, 180.0, order = 8)
var planeRoll : Double = 0.0 var planeRoll: Double = 0.0
@BooleanParameter("tile input") @BooleanParameter("tile input")
var tile: Boolean by parameters var tile: Boolean by parameters
var seconds:Double by parameters
init { init {
seconds = 0.0
tile = false tile = false
} }

View File

@@ -6,7 +6,6 @@ uniform sampler2D tex0;
in vec2 v_texCoord0; in vec2 v_texCoord0;
uniform vec3 cameraPosition; uniform vec3 cameraPosition;
uniform vec3 planePosition; uniform vec3 planePosition;
uniform float seconds;
uniform mat4 planeMatrix; uniform mat4 planeMatrix;
uniform bool tile; uniform bool tile;
uniform vec2 targetSize; uniform vec2 targetSize;
@@ -22,25 +21,25 @@ void main() {
vPlaneUp *= m; vPlaneUp *= m;
vPlaneRight *= m; vPlaneRight *= m;
vec3 vPlaneNormal = normalize(cross(vPlaneRight,vPlaneUp)); vec3 vPlaneNormal = normalize(cross(vPlaneRight, vPlaneUp));
float fPlaneDeltaNormalDistance = dot(vPlanePos,vPlaneNormal) - dot(vPlaneNormal,vCamPos); float fPlaneDeltaNormalDistance = dot(vPlanePos, vPlaneNormal) - dot(vPlaneNormal, vCamPos);
vec4 color = vec4(0.); vec4 color = vec4(0.);
for (int m = 0; m < 2; m++) { for (int m = 0; m < 2; m++) {
for (int n = 0; n < 2; n++) { for (int n = 0; n < 2; n++) {
vec2 s = (v_texCoord0 - vec2(0.5)) * 2.0; vec2 s = (v_texCoord0 - vec2(0.5)) * 2.0;
s*= vec2(1.0, targetSize.y / targetSize.x); s*= vec2(1.0, targetSize.y / targetSize.x);
vec3 vRayDir = normalize(vec3(s, -1.0)); vec3 vRayDir = normalize(vec3(s, -1.0));
float t = fPlaneDeltaNormalDistance / dot(vPlaneNormal,vRayDir); float t = fPlaneDeltaNormalDistance / dot(vPlaneNormal, vRayDir);
vec3 hitPos = vCamPos + vRayDir*t; vec3 hitPos = vCamPos + vRayDir * t;
vec3 delta = hitPos - vPlanePos; vec3 delta = hitPos - vPlanePos;
vec2 bary = vec2(dot(delta, vPlaneRight),dot(delta, vPlaneUp)); vec2 bary = vec2(dot(delta, vPlaneRight), dot(delta, vPlaneUp));
bary /= vec2(1.0, targetSize.y/targetSize.x); bary /= vec2(1.0, targetSize.y / targetSize.x);
bary += vec2(0.5); bary += vec2(0.5);
if ( (tile || (bary.x >= 0.0 && bary.x <= 1.0 && bary.y >=0.0 && bary.y <= 1.0)) && t > 0.0) { if ((tile || (bary.x >= 0.0 && bary.x <= 1.0 && bary.y >=0.0 && bary.y <= 1.0)) && t > 0.0) {
color += texture(tex0, bary); color += texture(tex0, bary);
} }
} }
} }
o_color = color*0.25; o_color = color * 0.25;
} }