diff options
author | Csaba Hruska <csaba.hruska@gmail.com> | 2016-02-27 01:04:23 +0100 |
---|---|---|
committer | Csaba Hruska <csaba.hruska@gmail.com> | 2016-02-27 01:04:23 +0100 |
commit | 0dcc32b6c7233ef4a888fee14fa57d647df531fb (patch) | |
tree | 870e7a47de5f2d0a90fc33ded4af1e804b9ad188 /testdata/editor-examples | |
parent | 92f557c8e2dd5f0af5d87520786b6ed28a333973 (diff) |
cleanup MVP from editor examples
Diffstat (limited to 'testdata/editor-examples')
-rw-r--r-- | testdata/editor-examples/Cube.lc | 8 | ||||
-rw-r--r-- | testdata/editor-examples/Cube.out | 73 | ||||
-rw-r--r-- | testdata/editor-examples/Heartbeat.lc | 7 | ||||
-rw-r--r-- | testdata/editor-examples/Heartbeat.out | 74 | ||||
-rw-r--r-- | testdata/editor-examples/LambdaCube.lc | 8 | ||||
-rw-r--r-- | testdata/editor-examples/MagicCube.lc | 6 | ||||
-rw-r--r-- | testdata/editor-examples/MagicCube.out | 74 | ||||
-rw-r--r-- | testdata/editor-examples/RecLC.out | 148 | ||||
-rw-r--r-- | testdata/editor-examples/RecursiveTexture.lc | 5 | ||||
-rw-r--r-- | testdata/editor-examples/RecursiveTexture.out | 1097 | ||||
-rw-r--r-- | testdata/editor-examples/Tetrahedron.lc | 6 | ||||
-rw-r--r-- | testdata/editor-examples/Tetrahedron.out | 72 | ||||
-rw-r--r-- | testdata/editor-examples/Texturing.lc | 8 | ||||
-rw-r--r-- | testdata/editor-examples/Texturing.out | 73 |
14 files changed, 1569 insertions, 90 deletions
diff --git a/testdata/editor-examples/Cube.lc b/testdata/editor-examples/Cube.lc index bdd218b8..7efaf32b 100644 --- a/testdata/editor-examples/Cube.lc +++ b/testdata/editor-examples/Cube.lc | |||
@@ -1,9 +1,13 @@ | |||
1 | makeFrame (projmat :: Mat 4 4 Float) | 1 | makeFrame (time :: Float) |
2 | (vertexstream :: PrimitiveStream Triangle ((Vec 4 Float))) | 2 | (vertexstream :: PrimitiveStream Triangle ((Vec 4 Float))) |
3 | 3 | ||
4 | = imageFrame (emptyDepthImage 1, emptyColorImage navy) | 4 | = imageFrame (emptyDepthImage 1, emptyColorImage navy) |
5 | `overlay` fragments | 5 | `overlay` fragments |
6 | where | 6 | where |
7 | projmat = perspective 0.1 100.0 (30 * pi / 180) 1.0 | ||
8 | .*. lookat (V3 3.0 1.3 0.3) (V3 0.0 0.0 0.0) (V3 0.0 1.0 0.0) | ||
9 | .*. rotMatrixY (pi / 24.0 * time) | ||
10 | |||
7 | fragments = | 11 | fragments = |
8 | vertexstream | 12 | vertexstream |
9 | & mapPrimitives (\((x)) -> (scale 0.5 (projmat *. x), x)) | 13 | & mapPrimitives (\((x)) -> (scale 0.5 (projmat *. x), x)) |
@@ -11,6 +15,6 @@ makeFrame (projmat :: Mat 4 4 Float) | |||
11 | & accumulateWith (DepthOp Less True, ColorOp NoBlending (V4 True True True True)) | 15 | & accumulateWith (DepthOp Less True, ColorOp NoBlending (V4 True True True True)) |
12 | 16 | ||
13 | main = renderFrame $ | 17 | main = renderFrame $ |
14 | makeFrame (Uniform "MVP") | 18 | makeFrame (Uniform "Time") |
15 | (fetch "stream4" (Attribute "position4")) | 19 | (fetch "stream4" (Attribute "position4")) |
16 | 20 | ||
diff --git a/testdata/editor-examples/Cube.out b/testdata/editor-examples/Cube.out index e682b5ec..c2294d0f 100644 --- a/testdata/editor-examples/Cube.out +++ b/testdata/editor-examples/Cube.out | |||
@@ -15,7 +15,7 @@ Pipeline | |||
15 | ] | 15 | ] |
16 | , programs = | 16 | , programs = |
17 | [ Program | 17 | [ Program |
18 | { programUniforms = fromList [ ( "MVP" , M44F ) ] | 18 | { programUniforms = fromList [ ( "Time" , Float ) ] |
19 | , programStreams = | 19 | , programStreams = |
20 | fromList | 20 | fromList |
21 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) ] | 21 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) ] |
@@ -27,14 +27,79 @@ Pipeline | |||
27 | vec4 texture2D(sampler2D s,vec2 uv) { | 27 | vec4 texture2D(sampler2D s,vec2 uv) { |
28 | return texture(s,uv); | 28 | return texture(s,uv); |
29 | } | 29 | } |
30 | uniform mat4 MVP; | 30 | uniform float Time; |
31 | in vec4 vi1; | 31 | in vec4 vi1; |
32 | smooth out vec4 vo1; | 32 | smooth out vec4 vo1; |
33 | vec4 r1_Float; | ||
34 | vec4 r2_Float; | ||
35 | vec4 r3_Float; | ||
36 | vec4 ext0_Float_3(vec3 z0) { | ||
37 | return vec4 ((z0).x,(z0).y,(z0).z,0.0); | ||
38 | } | ||
39 | vec3 neg_VecSFloat3(vec3 z0) { | ||
40 | return - (z0); | ||
41 | } | ||
42 | mat4 translateBefore4(vec3 z0) { | ||
43 | return mat4 | ||
44 | (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0)); | ||
45 | } | ||
46 | mat4 lookat(vec3 z0,vec3 z1,vec3 z2) { | ||
47 | return (transpose (mat4 | ||
48 | (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1))))) | ||
49 | ,ext0_Float_3 (cross (normalize ((z0) - (z1)) | ||
50 | ,normalize (cross (z2,normalize ((z0) - (z1)))))) | ||
51 | ,ext0_Float_3 (normalize ((z0) - (z1))) | ||
52 | ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3 | ||
53 | (z0))); | ||
54 | } | ||
55 | mat4 perspective(float z0,float z1,float z2,float z3) { | ||
56 | return mat4 | ||
57 | (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan | ||
58 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
59 | ((z2) / (2.0))))))) | ||
60 | ,0.0 | ||
61 | ,0.0 | ||
62 | ,0.0) | ||
63 | ,vec4 (0.0 | ||
64 | ,((2.0) * (z0)) / (((z0) * (tan | ||
65 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
66 | ,0.0 | ||
67 | ,0.0) | ||
68 | ,vec4 ((((z3) * ((z0) * (tan | ||
69 | ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan | ||
70 | ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan | ||
71 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
72 | ((z2) / (2.0))))))) | ||
73 | ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan | ||
74 | ((z2) / (2.0)))))) / (((z0) * (tan | ||
75 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
76 | ,(0.0) - (((z1) + (z0)) / ((z1) - (z0))) | ||
77 | ,-1.0) | ||
78 | ,vec4 (0.0 | ||
79 | ,0.0 | ||
80 | ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0))) | ||
81 | ,0.0)); | ||
82 | } | ||
83 | mat4 rotMatrixY(float z0) { | ||
84 | return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0) | ||
85 | ,vec4 (0.0,1.0,0.0,0.0) | ||
86 | ,vec4 (sin (z0),0.0,cos (z0),0.0) | ||
87 | ,vec4 (0.0,0.0,0.0,1.0)); | ||
88 | } | ||
33 | vec4 scale(float z0,vec4 z1) { | 89 | vec4 scale(float z0,vec4 z1) { |
34 | return (z1) * (vec4 (z0,z0,z0,1.0)); | 90 | return (z1) * (vec4 (z0,z0,z0,1.0)); |
35 | } | 91 | } |
36 | void main() { | 92 | void main() { |
37 | gl_Position = scale (0.5,(MVP) * (vi1)); | 93 | r1_Float = vec4 (1.0,0.0,0.0,0.0); |
94 | r2_Float = vec4 (0.0,1.0,0.0,0.0); | ||
95 | r3_Float = vec4 (0.0,0.0,1.0,0.0); | ||
96 | gl_Position = scale | ||
97 | (0.5 | ||
98 | ,(((perspective (0.1,100.0,0.5235987755982988,1.0)) * (lookat | ||
99 | (vec3 (3.0,1.3,0.3) | ||
100 | ,vec3 (0.0,0.0,0.0) | ||
101 | ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY | ||
102 | ((0.1308996938995747) * (Time)))) * (vi1)); | ||
38 | vo1 = vi1; | 103 | vo1 = vi1; |
39 | } | 104 | } |
40 | """ | 105 | """ |
@@ -57,7 +122,7 @@ Pipeline | |||
57 | [ Slot | 122 | [ Slot |
58 | { slotName = "stream4" | 123 | { slotName = "stream4" |
59 | , slotStreams = fromList [ ( "position4" , V4F ) ] | 124 | , slotStreams = fromList [ ( "position4" , V4F ) ] |
60 | , slotUniforms = fromList [ ( "MVP" , M44F ) ] | 125 | , slotUniforms = fromList [ ( "Time" , Float ) ] |
61 | , slotPrimitive = Triangles | 126 | , slotPrimitive = Triangles |
62 | , slotPrograms = [ 0 ] | 127 | , slotPrograms = [ 0 ] |
63 | } | 128 | } |
diff --git a/testdata/editor-examples/Heartbeat.lc b/testdata/editor-examples/Heartbeat.lc index 4e8e4a97..920c9097 100644 --- a/testdata/editor-examples/Heartbeat.lc +++ b/testdata/editor-examples/Heartbeat.lc | |||
@@ -12,7 +12,12 @@ rasterizeWith s = rasterizePrimitives triangles ((Smooth)) s | |||
12 | cubeVertexStream = fetch "stream4" (Attribute "position4" :: Vec 4 Float, Attribute "vertexUV" :: Vec 2 Float) | 12 | cubeVertexStream = fetch "stream4" (Attribute "position4" :: Vec 4 Float, Attribute "vertexUV" :: Vec 2 Float) |
13 | mapFragments2 s fs = accumulate colorFragmentCtx (\((a)) -> ((fs a))) s clear | 13 | mapFragments2 s fs = accumulate colorFragmentCtx (\((a)) -> ((fs a))) s clear |
14 | 14 | ||
15 | rotate' v = (Uniform "MVP" :: Mat 4 4 Float) `PrimMulMatVec` v | 15 | rotate' v = projmat *. v |
16 | where | ||
17 | projmat = perspective 0.1 100.0 (30 * pi / 180) 1.0 | ||
18 | .*. lookat (V3 3.0 1.3 0.3) (V3 0.0 0.0 0.0) (V3 0.0 1.0 0.0) | ||
19 | .*. rotMatrixY (pi / 24.0 * time) | ||
20 | |||
16 | 21 | ||
17 | texImage = PrjImageColor $ | 22 | texImage = PrjImageColor $ |
18 | cubeVertexStream -- cube vertices | 23 | cubeVertexStream -- cube vertices |
diff --git a/testdata/editor-examples/Heartbeat.out b/testdata/editor-examples/Heartbeat.out index 39df50d6..5fec3cb1 100644 --- a/testdata/editor-examples/Heartbeat.out +++ b/testdata/editor-examples/Heartbeat.out | |||
@@ -132,7 +132,7 @@ Pipeline | |||
132 | """ | 132 | """ |
133 | } | 133 | } |
134 | , Program | 134 | , Program |
135 | { programUniforms = fromList [ ( "MVP" , M44F ) ] | 135 | { programUniforms = fromList [ ( "Time" , Float ) ] |
136 | , programStreams = | 136 | , programStreams = |
137 | fromList | 137 | fromList |
138 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) | 138 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) |
@@ -146,15 +146,81 @@ Pipeline | |||
146 | vec4 texture2D(sampler2D s,vec2 uv) { | 146 | vec4 texture2D(sampler2D s,vec2 uv) { |
147 | return texture(s,uv); | 147 | return texture(s,uv); |
148 | } | 148 | } |
149 | uniform mat4 MVP; | 149 | uniform float Time; |
150 | in vec4 vi1; | 150 | in vec4 vi1; |
151 | in vec2 vi2; | 151 | in vec2 vi2; |
152 | smooth out vec2 vo1; | 152 | smooth out vec2 vo1; |
153 | vec4 r1_Float; | ||
154 | vec4 r2_Float; | ||
155 | vec4 r3_Float; | ||
156 | vec4 ext0_Float_3(vec3 z0) { | ||
157 | return vec4 ((z0).x,(z0).y,(z0).z,0.0); | ||
158 | } | ||
159 | vec3 neg_VecSFloat3(vec3 z0) { | ||
160 | return - (z0); | ||
161 | } | ||
162 | mat4 translateBefore4(vec3 z0) { | ||
163 | return mat4 | ||
164 | (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0)); | ||
165 | } | ||
166 | mat4 lookat(vec3 z0,vec3 z1,vec3 z2) { | ||
167 | return (transpose (mat4 | ||
168 | (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1))))) | ||
169 | ,ext0_Float_3 (cross (normalize ((z0) - (z1)) | ||
170 | ,normalize (cross (z2,normalize ((z0) - (z1)))))) | ||
171 | ,ext0_Float_3 (normalize ((z0) - (z1))) | ||
172 | ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3 | ||
173 | (z0))); | ||
174 | } | ||
175 | mat4 perspective(float z0,float z1,float z2,float z3) { | ||
176 | return mat4 | ||
177 | (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan | ||
178 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
179 | ((z2) / (2.0))))))) | ||
180 | ,0.0 | ||
181 | ,0.0 | ||
182 | ,0.0) | ||
183 | ,vec4 (0.0 | ||
184 | ,((2.0) * (z0)) / (((z0) * (tan | ||
185 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
186 | ,0.0 | ||
187 | ,0.0) | ||
188 | ,vec4 ((((z3) * ((z0) * (tan | ||
189 | ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan | ||
190 | ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan | ||
191 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
192 | ((z2) / (2.0))))))) | ||
193 | ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan | ||
194 | ((z2) / (2.0)))))) / (((z0) * (tan | ||
195 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
196 | ,(0.0) - (((z1) + (z0)) / ((z1) - (z0))) | ||
197 | ,-1.0) | ||
198 | ,vec4 (0.0 | ||
199 | ,0.0 | ||
200 | ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0))) | ||
201 | ,0.0)); | ||
202 | } | ||
203 | mat4 rotMatrixY(float z0) { | ||
204 | return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0) | ||
205 | ,vec4 (0.0,1.0,0.0,0.0) | ||
206 | ,vec4 (sin (z0),0.0,cos (z0),0.0) | ||
207 | ,vec4 (0.0,0.0,0.0,1.0)); | ||
208 | } | ||
209 | mat4 projmat; | ||
153 | vec4 scale(float z0,vec4 z1) { | 210 | vec4 scale(float z0,vec4 z1) { |
154 | return (z1) * (vec4 (z0,z0,z0,1.0)); | 211 | return (z1) * (vec4 (z0,z0,z0,1.0)); |
155 | } | 212 | } |
156 | void main() { | 213 | void main() { |
157 | gl_Position = scale (0.5,(MVP) * (vi1)); | 214 | r1_Float = vec4 (1.0,0.0,0.0,0.0); |
215 | r2_Float = vec4 (0.0,1.0,0.0,0.0); | ||
216 | r3_Float = vec4 (0.0,0.0,1.0,0.0); | ||
217 | projmat = ((perspective | ||
218 | (0.1,100.0,0.5235987755982988,1.0)) * (lookat | ||
219 | (vec3 (3.0,1.3,0.3) | ||
220 | ,vec3 (0.0,0.0,0.0) | ||
221 | ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY | ||
222 | ((0.1308996938995747) * (Time))); | ||
223 | gl_Position = scale (0.5,(projmat) * (vi1)); | ||
158 | vo1 = vi2; | 224 | vo1 = vi2; |
159 | } | 225 | } |
160 | """ | 226 | """ |
@@ -179,7 +245,7 @@ Pipeline | |||
179 | { slotName = "stream4" | 245 | { slotName = "stream4" |
180 | , slotStreams = | 246 | , slotStreams = |
181 | fromList [ ( "position4" , V4F ) , ( "vertexUV" , V2F ) ] | 247 | fromList [ ( "position4" , V4F ) , ( "vertexUV" , V2F ) ] |
182 | , slotUniforms = fromList [ ( "MVP" , M44F ) , ( "Time" , Float ) ] | 248 | , slotUniforms = fromList [ ( "Time" , Float ) ] |
183 | , slotPrimitive = Triangles | 249 | , slotPrimitive = Triangles |
184 | , slotPrograms = [ 0 , 1 ] | 250 | , slotPrograms = [ 0 , 1 ] |
185 | } | 251 | } |
diff --git a/testdata/editor-examples/LambdaCube.lc b/testdata/editor-examples/LambdaCube.lc index 0fb349f3..ea3a3ba8 100644 --- a/testdata/editor-examples/LambdaCube.lc +++ b/testdata/editor-examples/LambdaCube.lc | |||
@@ -27,9 +27,7 @@ topSide p = V4 red 1 0 (if line > (-0.25) && line < 0 then 0 else 1) | |||
27 | 27 | ||
28 | len2 v = v%x*v%x + v%y*v%y + v%z*v%z | 28 | len2 v = v%x*v%x + v%y*v%y + v%z*v%z |
29 | 29 | ||
30 | makeFrame (time :: Float) | 30 | makeFrame (vertexstream :: PrimitiveStream Triangle ((Vec 4 Float))) |
31 | (projmat :: Mat 4 4 Float) | ||
32 | (vertexstream :: PrimitiveStream Triangle ((Vec 4 Float))) | ||
33 | 31 | ||
34 | = imageFrame (emptyDepthImage 1, emptyColorImage navy) | 32 | = imageFrame (emptyDepthImage 1, emptyColorImage navy) |
35 | `overlay` | 33 | `overlay` |
@@ -45,7 +43,5 @@ makeFrame (time :: Float) | |||
45 | & accumulateWith (DepthOp Less True, ColorOp NoBlending (V4 True True True True)) | 43 | & accumulateWith (DepthOp Less True, ColorOp NoBlending (V4 True True True True)) |
46 | 44 | ||
47 | main = renderFrame $ | 45 | main = renderFrame $ |
48 | makeFrame (Uniform "Time") | 46 | makeFrame (fetch "stream4" (Attribute "position4")) |
49 | (Uniform "MVP") | ||
50 | (fetch "stream4" (Attribute "position4")) | ||
51 | 47 | ||
diff --git a/testdata/editor-examples/MagicCube.lc b/testdata/editor-examples/MagicCube.lc index e44b4924..f41a9ec9 100644 --- a/testdata/editor-examples/MagicCube.lc +++ b/testdata/editor-examples/MagicCube.lc | |||
@@ -6,7 +6,6 @@ p1 = app34 $ \t -> (V3 0.5 0.5 0.5 + cos( (t + V3 0.0 0.1 0.2) *! 6.28318) *! 0. | |||
6 | f x = (x + sin x + sin (1.1 * x)) `mod` 4 * 2 | 6 | f x = (x + sin x + sin (1.1 * x)) `mod` 4 * 2 |
7 | 7 | ||
8 | makeFrame (time :: Float) | 8 | makeFrame (time :: Float) |
9 | (projmat :: Mat 4 4 Float) | ||
10 | (vertexstream :: PrimitiveStream Triangle ((Vec 4 Float))) | 9 | (vertexstream :: PrimitiveStream Triangle ((Vec 4 Float))) |
11 | 10 | ||
12 | = imageFrame (emptyDepthImage 1, emptyColorImage navy) | 11 | = imageFrame (emptyDepthImage 1, emptyColorImage navy) |
@@ -17,8 +16,11 @@ makeFrame (time :: Float) | |||
17 | & filterFragments (\((v)) -> v%y * v%y + v%x * v%x + v%z * v%z > 1.5) | 16 | & filterFragments (\((v)) -> v%y * v%y + v%x * v%x + v%z * v%z > 1.5) |
18 | & mapFragments (\((x)) -> ((p1 (rotMatrixZ time *. rotMatrixY time *. (p1 (rotMatrixX time *. rotMatrixY time *. x) *! (1 + 0.5 * sin time))) *! f time))) | 17 | & mapFragments (\((x)) -> ((p1 (rotMatrixZ time *. rotMatrixY time *. (p1 (rotMatrixX time *. rotMatrixY time *. x) *! (1 + 0.5 * sin time))) *! f time))) |
19 | & accumulateWith (DepthOp Less True, ColorOp NoBlending (V4 True True True True)) | 18 | & accumulateWith (DepthOp Less True, ColorOp NoBlending (V4 True True True True)) |
19 | where | ||
20 | projmat = perspective 0.1 100.0 (30 * pi / 180) 1.0 | ||
21 | .*. lookat (V3 3.0 1.3 0.3) (V3 0.0 0.0 0.0) (V3 0.0 1.0 0.0) | ||
22 | .*. rotMatrixY (pi / 24.0 * time) | ||
20 | 23 | ||
21 | main = renderFrame $ | 24 | main = renderFrame $ |
22 | makeFrame (Uniform "Time") | 25 | makeFrame (Uniform "Time") |
23 | (Uniform "MVP") | ||
24 | (fetch "stream4" (Attribute "position4")) | 26 | (fetch "stream4" (Attribute "position4")) |
diff --git a/testdata/editor-examples/MagicCube.out b/testdata/editor-examples/MagicCube.out index cd066598..a2a5cbe4 100644 --- a/testdata/editor-examples/MagicCube.out +++ b/testdata/editor-examples/MagicCube.out | |||
@@ -15,8 +15,7 @@ Pipeline | |||
15 | ] | 15 | ] |
16 | , programs = | 16 | , programs = |
17 | [ Program | 17 | [ Program |
18 | { programUniforms = | 18 | { programUniforms = fromList [ ( "Time" , Float ) ] |
19 | fromList [ ( "MVP" , M44F ) , ( "Time" , Float ) ] | ||
20 | , programStreams = | 19 | , programStreams = |
21 | fromList | 20 | fromList |
22 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) ] | 21 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) ] |
@@ -28,14 +27,79 @@ Pipeline | |||
28 | vec4 texture2D(sampler2D s,vec2 uv) { | 27 | vec4 texture2D(sampler2D s,vec2 uv) { |
29 | return texture(s,uv); | 28 | return texture(s,uv); |
30 | } | 29 | } |
31 | uniform mat4 MVP; | 30 | uniform float Time; |
32 | in vec4 vi1; | 31 | in vec4 vi1; |
33 | smooth out vec4 vo1; | 32 | smooth out vec4 vo1; |
33 | vec4 r1_Float; | ||
34 | vec4 r2_Float; | ||
35 | vec4 r3_Float; | ||
36 | vec4 ext0_Float_3(vec3 z0) { | ||
37 | return vec4 ((z0).x,(z0).y,(z0).z,0.0); | ||
38 | } | ||
39 | vec3 neg_VecSFloat3(vec3 z0) { | ||
40 | return - (z0); | ||
41 | } | ||
42 | mat4 translateBefore4(vec3 z0) { | ||
43 | return mat4 | ||
44 | (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0)); | ||
45 | } | ||
46 | mat4 lookat(vec3 z0,vec3 z1,vec3 z2) { | ||
47 | return (transpose (mat4 | ||
48 | (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1))))) | ||
49 | ,ext0_Float_3 (cross (normalize ((z0) - (z1)) | ||
50 | ,normalize (cross (z2,normalize ((z0) - (z1)))))) | ||
51 | ,ext0_Float_3 (normalize ((z0) - (z1))) | ||
52 | ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3 | ||
53 | (z0))); | ||
54 | } | ||
55 | mat4 perspective(float z0,float z1,float z2,float z3) { | ||
56 | return mat4 | ||
57 | (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan | ||
58 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
59 | ((z2) / (2.0))))))) | ||
60 | ,0.0 | ||
61 | ,0.0 | ||
62 | ,0.0) | ||
63 | ,vec4 (0.0 | ||
64 | ,((2.0) * (z0)) / (((z0) * (tan | ||
65 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
66 | ,0.0 | ||
67 | ,0.0) | ||
68 | ,vec4 ((((z3) * ((z0) * (tan | ||
69 | ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan | ||
70 | ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan | ||
71 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
72 | ((z2) / (2.0))))))) | ||
73 | ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan | ||
74 | ((z2) / (2.0)))))) / (((z0) * (tan | ||
75 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
76 | ,(0.0) - (((z1) + (z0)) / ((z1) - (z0))) | ||
77 | ,-1.0) | ||
78 | ,vec4 (0.0 | ||
79 | ,0.0 | ||
80 | ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0))) | ||
81 | ,0.0)); | ||
82 | } | ||
83 | mat4 rotMatrixY(float z0) { | ||
84 | return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0) | ||
85 | ,vec4 (0.0,1.0,0.0,0.0) | ||
86 | ,vec4 (sin (z0),0.0,cos (z0),0.0) | ||
87 | ,vec4 (0.0,0.0,0.0,1.0)); | ||
88 | } | ||
34 | vec4 scale(float z0,vec4 z1) { | 89 | vec4 scale(float z0,vec4 z1) { |
35 | return (z1) * (vec4 (z0,z0,z0,1.0)); | 90 | return (z1) * (vec4 (z0,z0,z0,1.0)); |
36 | } | 91 | } |
37 | void main() { | 92 | void main() { |
38 | gl_Position = scale (0.5,(MVP) * (vi1)); | 93 | r1_Float = vec4 (1.0,0.0,0.0,0.0); |
94 | r2_Float = vec4 (0.0,1.0,0.0,0.0); | ||
95 | r3_Float = vec4 (0.0,0.0,1.0,0.0); | ||
96 | gl_Position = scale | ||
97 | (0.5 | ||
98 | ,(((perspective (0.1,100.0,0.5235987755982988,1.0)) * (lookat | ||
99 | (vec3 (3.0,1.3,0.3) | ||
100 | ,vec3 (0.0,0.0,0.0) | ||
101 | ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY | ||
102 | ((0.1308996938995747) * (Time)))) * (vi1)); | ||
39 | vo1 = vi1; | 103 | vo1 = vi1; |
40 | } | 104 | } |
41 | """ | 105 | """ |
@@ -139,7 +203,7 @@ Pipeline | |||
139 | [ Slot | 203 | [ Slot |
140 | { slotName = "stream4" | 204 | { slotName = "stream4" |
141 | , slotStreams = fromList [ ( "position4" , V4F ) ] | 205 | , slotStreams = fromList [ ( "position4" , V4F ) ] |
142 | , slotUniforms = fromList [ ( "MVP" , M44F ) , ( "Time" , Float ) ] | 206 | , slotUniforms = fromList [ ( "Time" , Float ) ] |
143 | , slotPrimitive = Triangles | 207 | , slotPrimitive = Triangles |
144 | , slotPrograms = [ 0 ] | 208 | , slotPrograms = [ 0 ] |
145 | } | 209 | } |
diff --git a/testdata/editor-examples/RecLC.out b/testdata/editor-examples/RecLC.out index 99bf8635..18f16c64 100644 --- a/testdata/editor-examples/RecLC.out +++ b/testdata/editor-examples/RecLC.out | |||
@@ -234,7 +234,7 @@ Pipeline | |||
234 | """ | 234 | """ |
235 | } | 235 | } |
236 | , Program | 236 | , Program |
237 | { programUniforms = fromList [ ( "MVP" , M44F ) ] | 237 | { programUniforms = fromList [ ( "Time" , Float ) ] |
238 | , programStreams = | 238 | , programStreams = |
239 | fromList | 239 | fromList |
240 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) | 240 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) |
@@ -248,10 +248,67 @@ Pipeline | |||
248 | vec4 texture2D(sampler2D s,vec2 uv) { | 248 | vec4 texture2D(sampler2D s,vec2 uv) { |
249 | return texture(s,uv); | 249 | return texture(s,uv); |
250 | } | 250 | } |
251 | uniform mat4 MVP; | 251 | uniform float Time; |
252 | in vec4 vi1; | 252 | in vec4 vi1; |
253 | in vec2 vi2; | 253 | in vec2 vi2; |
254 | smooth out vec2 vo1; | 254 | smooth out vec2 vo1; |
255 | vec4 r1_Float; | ||
256 | vec4 r2_Float; | ||
257 | vec4 r3_Float; | ||
258 | vec4 ext0_Float_3(vec3 z0) { | ||
259 | return vec4 ((z0).x,(z0).y,(z0).z,0.0); | ||
260 | } | ||
261 | vec3 neg_VecSFloat3(vec3 z0) { | ||
262 | return - (z0); | ||
263 | } | ||
264 | mat4 translateBefore4(vec3 z0) { | ||
265 | return mat4 | ||
266 | (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0)); | ||
267 | } | ||
268 | mat4 lookat(vec3 z0,vec3 z1,vec3 z2) { | ||
269 | return (transpose (mat4 | ||
270 | (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1))))) | ||
271 | ,ext0_Float_3 (cross (normalize ((z0) - (z1)) | ||
272 | ,normalize (cross (z2,normalize ((z0) - (z1)))))) | ||
273 | ,ext0_Float_3 (normalize ((z0) - (z1))) | ||
274 | ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3 | ||
275 | (z0))); | ||
276 | } | ||
277 | mat4 perspective(float z0,float z1,float z2,float z3) { | ||
278 | return mat4 | ||
279 | (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan | ||
280 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
281 | ((z2) / (2.0))))))) | ||
282 | ,0.0 | ||
283 | ,0.0 | ||
284 | ,0.0) | ||
285 | ,vec4 (0.0 | ||
286 | ,((2.0) * (z0)) / (((z0) * (tan | ||
287 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
288 | ,0.0 | ||
289 | ,0.0) | ||
290 | ,vec4 ((((z3) * ((z0) * (tan | ||
291 | ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan | ||
292 | ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan | ||
293 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
294 | ((z2) / (2.0))))))) | ||
295 | ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan | ||
296 | ((z2) / (2.0)))))) / (((z0) * (tan | ||
297 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
298 | ,(0.0) - (((z1) + (z0)) / ((z1) - (z0))) | ||
299 | ,-1.0) | ||
300 | ,vec4 (0.0 | ||
301 | ,0.0 | ||
302 | ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0))) | ||
303 | ,0.0)); | ||
304 | } | ||
305 | mat4 rotMatrixY(float z0) { | ||
306 | return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0) | ||
307 | ,vec4 (0.0,1.0,0.0,0.0) | ||
308 | ,vec4 (sin (z0),0.0,cos (z0),0.0) | ||
309 | ,vec4 (0.0,0.0,0.0,1.0)); | ||
310 | } | ||
311 | mat4 rotMatrix; | ||
255 | mat4 rotMatrixX(float z0) { | 312 | mat4 rotMatrixX(float z0) { |
256 | return mat4 (vec4 (1.0,0.0,0.0,0.0) | 313 | return mat4 (vec4 (1.0,0.0,0.0,0.0) |
257 | ,vec4 (0.0,cos (z0),sin (z0),0.0) | 314 | ,vec4 (0.0,cos (z0),sin (z0),0.0) |
@@ -262,7 +319,17 @@ Pipeline | |||
262 | return (z1) * (vec4 (z0,z0,z0,1.0)); | 319 | return (z1) * (vec4 (z0,z0,z0,1.0)); |
263 | } | 320 | } |
264 | void main() { | 321 | void main() { |
265 | gl_Position = (MVP) * (scale (0.4,(rotMatrixX (0.0)) * (vi1))); | 322 | r1_Float = vec4 (1.0,0.0,0.0,0.0); |
323 | r2_Float = vec4 (0.0,1.0,0.0,0.0); | ||
324 | r3_Float = vec4 (0.0,0.0,1.0,0.0); | ||
325 | rotMatrix = ((perspective | ||
326 | (0.1,100.0,0.5235987755982988,1.0)) * (lookat | ||
327 | (vec3 (3.0,1.3,0.3) | ||
328 | ,vec3 (0.0,0.0,0.0) | ||
329 | ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY | ||
330 | ((0.1308996938995747) * (Time))); | ||
331 | gl_Position = (rotMatrix) * (scale | ||
332 | (0.4,(rotMatrixX (0.0)) * (vi1))); | ||
266 | vo1 = vi2; | 333 | vo1 = vi2; |
267 | } | 334 | } |
268 | """ | 335 | """ |
@@ -287,7 +354,7 @@ Pipeline | |||
287 | """ | 354 | """ |
288 | } | 355 | } |
289 | , Program | 356 | , Program |
290 | { programUniforms = fromList [ ( "MVP" , M44F ) ] | 357 | { programUniforms = fromList [ ( "Time" , Float ) ] |
291 | , programStreams = | 358 | , programStreams = |
292 | fromList | 359 | fromList |
293 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) | 360 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) |
@@ -301,10 +368,67 @@ Pipeline | |||
301 | vec4 texture2D(sampler2D s,vec2 uv) { | 368 | vec4 texture2D(sampler2D s,vec2 uv) { |
302 | return texture(s,uv); | 369 | return texture(s,uv); |
303 | } | 370 | } |
304 | uniform mat4 MVP; | 371 | uniform float Time; |
305 | in vec4 vi1; | 372 | in vec4 vi1; |
306 | in vec2 vi2; | 373 | in vec2 vi2; |
307 | smooth out vec2 vo1; | 374 | smooth out vec2 vo1; |
375 | vec4 r1_Float; | ||
376 | vec4 r2_Float; | ||
377 | vec4 r3_Float; | ||
378 | vec4 ext0_Float_3(vec3 z0) { | ||
379 | return vec4 ((z0).x,(z0).y,(z0).z,0.0); | ||
380 | } | ||
381 | vec3 neg_VecSFloat3(vec3 z0) { | ||
382 | return - (z0); | ||
383 | } | ||
384 | mat4 translateBefore4(vec3 z0) { | ||
385 | return mat4 | ||
386 | (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0)); | ||
387 | } | ||
388 | mat4 lookat(vec3 z0,vec3 z1,vec3 z2) { | ||
389 | return (transpose (mat4 | ||
390 | (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1))))) | ||
391 | ,ext0_Float_3 (cross (normalize ((z0) - (z1)) | ||
392 | ,normalize (cross (z2,normalize ((z0) - (z1)))))) | ||
393 | ,ext0_Float_3 (normalize ((z0) - (z1))) | ||
394 | ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3 | ||
395 | (z0))); | ||
396 | } | ||
397 | mat4 perspective(float z0,float z1,float z2,float z3) { | ||
398 | return mat4 | ||
399 | (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan | ||
400 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
401 | ((z2) / (2.0))))))) | ||
402 | ,0.0 | ||
403 | ,0.0 | ||
404 | ,0.0) | ||
405 | ,vec4 (0.0 | ||
406 | ,((2.0) * (z0)) / (((z0) * (tan | ||
407 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
408 | ,0.0 | ||
409 | ,0.0) | ||
410 | ,vec4 ((((z3) * ((z0) * (tan | ||
411 | ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan | ||
412 | ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan | ||
413 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
414 | ((z2) / (2.0))))))) | ||
415 | ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan | ||
416 | ((z2) / (2.0)))))) / (((z0) * (tan | ||
417 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
418 | ,(0.0) - (((z1) + (z0)) / ((z1) - (z0))) | ||
419 | ,-1.0) | ||
420 | ,vec4 (0.0 | ||
421 | ,0.0 | ||
422 | ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0))) | ||
423 | ,0.0)); | ||
424 | } | ||
425 | mat4 rotMatrixY(float z0) { | ||
426 | return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0) | ||
427 | ,vec4 (0.0,1.0,0.0,0.0) | ||
428 | ,vec4 (sin (z0),0.0,cos (z0),0.0) | ||
429 | ,vec4 (0.0,0.0,0.0,1.0)); | ||
430 | } | ||
431 | mat4 rotMatrix; | ||
308 | mat4 rotMatrixX(float z0) { | 432 | mat4 rotMatrixX(float z0) { |
309 | return mat4 (vec4 (1.0,0.0,0.0,0.0) | 433 | return mat4 (vec4 (1.0,0.0,0.0,0.0) |
310 | ,vec4 (0.0,cos (z0),sin (z0),0.0) | 434 | ,vec4 (0.0,cos (z0),sin (z0),0.0) |
@@ -315,7 +439,17 @@ Pipeline | |||
315 | return (z1) * (vec4 (z0,z0,z0,1.0)); | 439 | return (z1) * (vec4 (z0,z0,z0,1.0)); |
316 | } | 440 | } |
317 | void main() { | 441 | void main() { |
318 | gl_Position = (MVP) * (scale (0.4,(rotMatrixX (0.1)) * (vi1))); | 442 | r1_Float = vec4 (1.0,0.0,0.0,0.0); |
443 | r2_Float = vec4 (0.0,1.0,0.0,0.0); | ||
444 | r3_Float = vec4 (0.0,0.0,1.0,0.0); | ||
445 | rotMatrix = ((perspective | ||
446 | (0.1,100.0,0.5235987755982988,1.0)) * (lookat | ||
447 | (vec3 (3.0,1.3,0.3) | ||
448 | ,vec3 (0.0,0.0,0.0) | ||
449 | ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY | ||
450 | ((0.1308996938995747) * (Time))); | ||
451 | gl_Position = (rotMatrix) * (scale | ||
452 | (0.4,(rotMatrixX (0.1)) * (vi1))); | ||
319 | vo1 = vi2; | 453 | vo1 = vi2; |
320 | } | 454 | } |
321 | """ | 455 | """ |
@@ -345,7 +479,7 @@ Pipeline | |||
345 | { slotName = "stream4" | 479 | { slotName = "stream4" |
346 | , slotStreams = | 480 | , slotStreams = |
347 | fromList [ ( "position4" , V4F ) , ( "vertexUV" , V2F ) ] | 481 | fromList [ ( "position4" , V4F ) , ( "vertexUV" , V2F ) ] |
348 | , slotUniforms = fromList [ ( "MVP" , M44F ) , ( "Time" , Float ) ] | 482 | , slotUniforms = fromList [ ( "Time" , Float ) ] |
349 | , slotPrimitive = Triangles | 483 | , slotPrimitive = Triangles |
350 | , slotPrograms = [ 0 , 1 , 2 ] | 484 | , slotPrograms = [ 0 , 1 , 2 ] |
351 | } | 485 | } |
diff --git a/testdata/editor-examples/RecursiveTexture.lc b/testdata/editor-examples/RecursiveTexture.lc index 63daf936..69d54447 100644 --- a/testdata/editor-examples/RecursiveTexture.lc +++ b/testdata/editor-examples/RecursiveTexture.lc | |||
@@ -4,7 +4,10 @@ triangleRasterCtx = TriangleCtx CullNone PolygonFill NoOffset LastVertex | |||
4 | colorFragmentCtx = (DepthOp Less True, ColorOp NoBlending (V4 True True True True)) | 4 | colorFragmentCtx = (DepthOp Less True, ColorOp NoBlending (V4 True True True True)) |
5 | 5 | ||
6 | cubeVertexStream = fetch "stream4" (Attribute "position4" :: Vec 4 Float, Attribute "vertexUV" :: Vec 2 Float) | 6 | cubeVertexStream = fetch "stream4" (Attribute "position4" :: Vec 4 Float, Attribute "vertexUV" :: Vec 2 Float) |
7 | rotMatrix = Uniform "MVP" :: Mat 4 4 Float | 7 | time = Uniform "Time" :: Float |
8 | rotMatrix = perspective 0.1 100.0 (30 * pi / 180) 1.0 | ||
9 | .*. lookat (V3 3.0 1.3 0.3) (V3 0.0 0.0 0.0) (V3 0.0 1.0 0.0) | ||
10 | .*. rotMatrixY (pi / 24.0 * time) | ||
8 | 11 | ||
9 | setAlpha v = v * V4 1.0 1 1 0 + V4 0 0 0 1 | 12 | setAlpha v = v * V4 1.0 1 1 0 + V4 0 0 0 1 |
10 | 13 | ||
diff --git a/testdata/editor-examples/RecursiveTexture.out b/testdata/editor-examples/RecursiveTexture.out index f222df27..bc3e5571 100644 --- a/testdata/editor-examples/RecursiveTexture.out +++ b/testdata/editor-examples/RecursiveTexture.out | |||
@@ -796,7 +796,7 @@ Pipeline | |||
796 | ] | 796 | ] |
797 | , programs = | 797 | , programs = |
798 | [ Program | 798 | [ Program |
799 | { programUniforms = fromList [ ( "MVP" , M44F ) ] | 799 | { programUniforms = fromList [ ( "Time" , Float ) ] |
800 | , programStreams = | 800 | , programStreams = |
801 | fromList | 801 | fromList |
802 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) | 802 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) |
@@ -810,10 +810,67 @@ Pipeline | |||
810 | vec4 texture2D(sampler2D s,vec2 uv) { | 810 | vec4 texture2D(sampler2D s,vec2 uv) { |
811 | return texture(s,uv); | 811 | return texture(s,uv); |
812 | } | 812 | } |
813 | uniform mat4 MVP; | 813 | uniform float Time; |
814 | in vec4 vi1; | 814 | in vec4 vi1; |
815 | in vec2 vi2; | 815 | in vec2 vi2; |
816 | smooth out vec2 vo1; | 816 | smooth out vec2 vo1; |
817 | vec4 r1_Float; | ||
818 | vec4 r2_Float; | ||
819 | vec4 r3_Float; | ||
820 | vec4 ext0_Float_3(vec3 z0) { | ||
821 | return vec4 ((z0).x,(z0).y,(z0).z,0.0); | ||
822 | } | ||
823 | vec3 neg_VecSFloat3(vec3 z0) { | ||
824 | return - (z0); | ||
825 | } | ||
826 | mat4 translateBefore4(vec3 z0) { | ||
827 | return mat4 | ||
828 | (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0)); | ||
829 | } | ||
830 | mat4 lookat(vec3 z0,vec3 z1,vec3 z2) { | ||
831 | return (transpose (mat4 | ||
832 | (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1))))) | ||
833 | ,ext0_Float_3 (cross (normalize ((z0) - (z1)) | ||
834 | ,normalize (cross (z2,normalize ((z0) - (z1)))))) | ||
835 | ,ext0_Float_3 (normalize ((z0) - (z1))) | ||
836 | ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3 | ||
837 | (z0))); | ||
838 | } | ||
839 | mat4 perspective(float z0,float z1,float z2,float z3) { | ||
840 | return mat4 | ||
841 | (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan | ||
842 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
843 | ((z2) / (2.0))))))) | ||
844 | ,0.0 | ||
845 | ,0.0 | ||
846 | ,0.0) | ||
847 | ,vec4 (0.0 | ||
848 | ,((2.0) * (z0)) / (((z0) * (tan | ||
849 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
850 | ,0.0 | ||
851 | ,0.0) | ||
852 | ,vec4 ((((z3) * ((z0) * (tan | ||
853 | ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan | ||
854 | ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan | ||
855 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
856 | ((z2) / (2.0))))))) | ||
857 | ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan | ||
858 | ((z2) / (2.0)))))) / (((z0) * (tan | ||
859 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
860 | ,(0.0) - (((z1) + (z0)) / ((z1) - (z0))) | ||
861 | ,-1.0) | ||
862 | ,vec4 (0.0 | ||
863 | ,0.0 | ||
864 | ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0))) | ||
865 | ,0.0)); | ||
866 | } | ||
867 | mat4 rotMatrixY(float z0) { | ||
868 | return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0) | ||
869 | ,vec4 (0.0,1.0,0.0,0.0) | ||
870 | ,vec4 (sin (z0),0.0,cos (z0),0.0) | ||
871 | ,vec4 (0.0,0.0,0.0,1.0)); | ||
872 | } | ||
873 | mat4 rotMatrix; | ||
817 | mat4 rotMatrixX(float z0) { | 874 | mat4 rotMatrixX(float z0) { |
818 | return mat4 (vec4 (1.0,0.0,0.0,0.0) | 875 | return mat4 (vec4 (1.0,0.0,0.0,0.0) |
819 | ,vec4 (0.0,cos (z0),sin (z0),0.0) | 876 | ,vec4 (0.0,cos (z0),sin (z0),0.0) |
@@ -824,7 +881,17 @@ Pipeline | |||
824 | return (z1) * (vec4 (z0,z0,z0,1.0)); | 881 | return (z1) * (vec4 (z0,z0,z0,1.0)); |
825 | } | 882 | } |
826 | void main() { | 883 | void main() { |
827 | gl_Position = (MVP) * (scale (0.4,(rotMatrixX (0.0)) * (vi1))); | 884 | r1_Float = vec4 (1.0,0.0,0.0,0.0); |
885 | r2_Float = vec4 (0.0,1.0,0.0,0.0); | ||
886 | r3_Float = vec4 (0.0,0.0,1.0,0.0); | ||
887 | rotMatrix = ((perspective | ||
888 | (0.1,100.0,0.5235987755982988,1.0)) * (lookat | ||
889 | (vec3 (3.0,1.3,0.3) | ||
890 | ,vec3 (0.0,0.0,0.0) | ||
891 | ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY | ||
892 | ((0.1308996938995747) * (Time))); | ||
893 | gl_Position = (rotMatrix) * (scale | ||
894 | (0.4,(rotMatrixX (0.0)) * (vi1))); | ||
828 | vo1 = vi2; | 895 | vo1 = vi2; |
829 | } | 896 | } |
830 | """ | 897 | """ |
@@ -849,7 +916,7 @@ Pipeline | |||
849 | """ | 916 | """ |
850 | } | 917 | } |
851 | , Program | 918 | , Program |
852 | { programUniforms = fromList [ ( "MVP" , M44F ) ] | 919 | { programUniforms = fromList [ ( "Time" , Float ) ] |
853 | , programStreams = | 920 | , programStreams = |
854 | fromList | 921 | fromList |
855 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) | 922 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) |
@@ -863,10 +930,67 @@ Pipeline | |||
863 | vec4 texture2D(sampler2D s,vec2 uv) { | 930 | vec4 texture2D(sampler2D s,vec2 uv) { |
864 | return texture(s,uv); | 931 | return texture(s,uv); |
865 | } | 932 | } |
866 | uniform mat4 MVP; | 933 | uniform float Time; |
867 | in vec4 vi1; | 934 | in vec4 vi1; |
868 | in vec2 vi2; | 935 | in vec2 vi2; |
869 | smooth out vec2 vo1; | 936 | smooth out vec2 vo1; |
937 | vec4 r1_Float; | ||
938 | vec4 r2_Float; | ||
939 | vec4 r3_Float; | ||
940 | vec4 ext0_Float_3(vec3 z0) { | ||
941 | return vec4 ((z0).x,(z0).y,(z0).z,0.0); | ||
942 | } | ||
943 | vec3 neg_VecSFloat3(vec3 z0) { | ||
944 | return - (z0); | ||
945 | } | ||
946 | mat4 translateBefore4(vec3 z0) { | ||
947 | return mat4 | ||
948 | (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0)); | ||
949 | } | ||
950 | mat4 lookat(vec3 z0,vec3 z1,vec3 z2) { | ||
951 | return (transpose (mat4 | ||
952 | (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1))))) | ||
953 | ,ext0_Float_3 (cross (normalize ((z0) - (z1)) | ||
954 | ,normalize (cross (z2,normalize ((z0) - (z1)))))) | ||
955 | ,ext0_Float_3 (normalize ((z0) - (z1))) | ||
956 | ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3 | ||
957 | (z0))); | ||
958 | } | ||
959 | mat4 perspective(float z0,float z1,float z2,float z3) { | ||
960 | return mat4 | ||
961 | (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan | ||
962 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
963 | ((z2) / (2.0))))))) | ||
964 | ,0.0 | ||
965 | ,0.0 | ||
966 | ,0.0) | ||
967 | ,vec4 (0.0 | ||
968 | ,((2.0) * (z0)) / (((z0) * (tan | ||
969 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
970 | ,0.0 | ||
971 | ,0.0) | ||
972 | ,vec4 ((((z3) * ((z0) * (tan | ||
973 | ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan | ||
974 | ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan | ||
975 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
976 | ((z2) / (2.0))))))) | ||
977 | ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan | ||
978 | ((z2) / (2.0)))))) / (((z0) * (tan | ||
979 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
980 | ,(0.0) - (((z1) + (z0)) / ((z1) - (z0))) | ||
981 | ,-1.0) | ||
982 | ,vec4 (0.0 | ||
983 | ,0.0 | ||
984 | ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0))) | ||
985 | ,0.0)); | ||
986 | } | ||
987 | mat4 rotMatrixY(float z0) { | ||
988 | return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0) | ||
989 | ,vec4 (0.0,1.0,0.0,0.0) | ||
990 | ,vec4 (sin (z0),0.0,cos (z0),0.0) | ||
991 | ,vec4 (0.0,0.0,0.0,1.0)); | ||
992 | } | ||
993 | mat4 rotMatrix; | ||
870 | mat4 rotMatrixX(float z0) { | 994 | mat4 rotMatrixX(float z0) { |
871 | return mat4 (vec4 (1.0,0.0,0.0,0.0) | 995 | return mat4 (vec4 (1.0,0.0,0.0,0.0) |
872 | ,vec4 (0.0,cos (z0),sin (z0),0.0) | 996 | ,vec4 (0.0,cos (z0),sin (z0),0.0) |
@@ -877,7 +1001,17 @@ Pipeline | |||
877 | return (z1) * (vec4 (z0,z0,z0,1.0)); | 1001 | return (z1) * (vec4 (z0,z0,z0,1.0)); |
878 | } | 1002 | } |
879 | void main() { | 1003 | void main() { |
880 | gl_Position = (MVP) * (scale (0.4,(rotMatrixX (0.1)) * (vi1))); | 1004 | r1_Float = vec4 (1.0,0.0,0.0,0.0); |
1005 | r2_Float = vec4 (0.0,1.0,0.0,0.0); | ||
1006 | r3_Float = vec4 (0.0,0.0,1.0,0.0); | ||
1007 | rotMatrix = ((perspective | ||
1008 | (0.1,100.0,0.5235987755982988,1.0)) * (lookat | ||
1009 | (vec3 (3.0,1.3,0.3) | ||
1010 | ,vec3 (0.0,0.0,0.0) | ||
1011 | ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY | ||
1012 | ((0.1308996938995747) * (Time))); | ||
1013 | gl_Position = (rotMatrix) * (scale | ||
1014 | (0.4,(rotMatrixX (0.1)) * (vi1))); | ||
881 | vo1 = vi2; | 1015 | vo1 = vi2; |
882 | } | 1016 | } |
883 | """ | 1017 | """ |
@@ -902,7 +1036,7 @@ Pipeline | |||
902 | """ | 1036 | """ |
903 | } | 1037 | } |
904 | , Program | 1038 | , Program |
905 | { programUniforms = fromList [ ( "MVP" , M44F ) ] | 1039 | { programUniforms = fromList [ ( "Time" , Float ) ] |
906 | , programStreams = | 1040 | , programStreams = |
907 | fromList | 1041 | fromList |
908 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) | 1042 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) |
@@ -916,10 +1050,67 @@ Pipeline | |||
916 | vec4 texture2D(sampler2D s,vec2 uv) { | 1050 | vec4 texture2D(sampler2D s,vec2 uv) { |
917 | return texture(s,uv); | 1051 | return texture(s,uv); |
918 | } | 1052 | } |
919 | uniform mat4 MVP; | 1053 | uniform float Time; |
920 | in vec4 vi1; | 1054 | in vec4 vi1; |
921 | in vec2 vi2; | 1055 | in vec2 vi2; |
922 | smooth out vec2 vo1; | 1056 | smooth out vec2 vo1; |
1057 | vec4 r1_Float; | ||
1058 | vec4 r2_Float; | ||
1059 | vec4 r3_Float; | ||
1060 | vec4 ext0_Float_3(vec3 z0) { | ||
1061 | return vec4 ((z0).x,(z0).y,(z0).z,0.0); | ||
1062 | } | ||
1063 | vec3 neg_VecSFloat3(vec3 z0) { | ||
1064 | return - (z0); | ||
1065 | } | ||
1066 | mat4 translateBefore4(vec3 z0) { | ||
1067 | return mat4 | ||
1068 | (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0)); | ||
1069 | } | ||
1070 | mat4 lookat(vec3 z0,vec3 z1,vec3 z2) { | ||
1071 | return (transpose (mat4 | ||
1072 | (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1))))) | ||
1073 | ,ext0_Float_3 (cross (normalize ((z0) - (z1)) | ||
1074 | ,normalize (cross (z2,normalize ((z0) - (z1)))))) | ||
1075 | ,ext0_Float_3 (normalize ((z0) - (z1))) | ||
1076 | ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3 | ||
1077 | (z0))); | ||
1078 | } | ||
1079 | mat4 perspective(float z0,float z1,float z2,float z3) { | ||
1080 | return mat4 | ||
1081 | (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan | ||
1082 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
1083 | ((z2) / (2.0))))))) | ||
1084 | ,0.0 | ||
1085 | ,0.0 | ||
1086 | ,0.0) | ||
1087 | ,vec4 (0.0 | ||
1088 | ,((2.0) * (z0)) / (((z0) * (tan | ||
1089 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
1090 | ,0.0 | ||
1091 | ,0.0) | ||
1092 | ,vec4 ((((z3) * ((z0) * (tan | ||
1093 | ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan | ||
1094 | ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan | ||
1095 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
1096 | ((z2) / (2.0))))))) | ||
1097 | ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan | ||
1098 | ((z2) / (2.0)))))) / (((z0) * (tan | ||
1099 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
1100 | ,(0.0) - (((z1) + (z0)) / ((z1) - (z0))) | ||
1101 | ,-1.0) | ||
1102 | ,vec4 (0.0 | ||
1103 | ,0.0 | ||
1104 | ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0))) | ||
1105 | ,0.0)); | ||
1106 | } | ||
1107 | mat4 rotMatrixY(float z0) { | ||
1108 | return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0) | ||
1109 | ,vec4 (0.0,1.0,0.0,0.0) | ||
1110 | ,vec4 (sin (z0),0.0,cos (z0),0.0) | ||
1111 | ,vec4 (0.0,0.0,0.0,1.0)); | ||
1112 | } | ||
1113 | mat4 rotMatrix; | ||
923 | mat4 rotMatrixX(float z0) { | 1114 | mat4 rotMatrixX(float z0) { |
924 | return mat4 (vec4 (1.0,0.0,0.0,0.0) | 1115 | return mat4 (vec4 (1.0,0.0,0.0,0.0) |
925 | ,vec4 (0.0,cos (z0),sin (z0),0.0) | 1116 | ,vec4 (0.0,cos (z0),sin (z0),0.0) |
@@ -930,7 +1121,17 @@ Pipeline | |||
930 | return (z1) * (vec4 (z0,z0,z0,1.0)); | 1121 | return (z1) * (vec4 (z0,z0,z0,1.0)); |
931 | } | 1122 | } |
932 | void main() { | 1123 | void main() { |
933 | gl_Position = (MVP) * (scale (0.4,(rotMatrixX (0.2)) * (vi1))); | 1124 | r1_Float = vec4 (1.0,0.0,0.0,0.0); |
1125 | r2_Float = vec4 (0.0,1.0,0.0,0.0); | ||
1126 | r3_Float = vec4 (0.0,0.0,1.0,0.0); | ||
1127 | rotMatrix = ((perspective | ||
1128 | (0.1,100.0,0.5235987755982988,1.0)) * (lookat | ||
1129 | (vec3 (3.0,1.3,0.3) | ||
1130 | ,vec3 (0.0,0.0,0.0) | ||
1131 | ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY | ||
1132 | ((0.1308996938995747) * (Time))); | ||
1133 | gl_Position = (rotMatrix) * (scale | ||
1134 | (0.4,(rotMatrixX (0.2)) * (vi1))); | ||
934 | vo1 = vi2; | 1135 | vo1 = vi2; |
935 | } | 1136 | } |
936 | """ | 1137 | """ |
@@ -955,7 +1156,7 @@ Pipeline | |||
955 | """ | 1156 | """ |
956 | } | 1157 | } |
957 | , Program | 1158 | , Program |
958 | { programUniforms = fromList [ ( "MVP" , M44F ) ] | 1159 | { programUniforms = fromList [ ( "Time" , Float ) ] |
959 | , programStreams = | 1160 | , programStreams = |
960 | fromList | 1161 | fromList |
961 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) | 1162 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) |
@@ -969,10 +1170,67 @@ Pipeline | |||
969 | vec4 texture2D(sampler2D s,vec2 uv) { | 1170 | vec4 texture2D(sampler2D s,vec2 uv) { |
970 | return texture(s,uv); | 1171 | return texture(s,uv); |
971 | } | 1172 | } |
972 | uniform mat4 MVP; | 1173 | uniform float Time; |
973 | in vec4 vi1; | 1174 | in vec4 vi1; |
974 | in vec2 vi2; | 1175 | in vec2 vi2; |
975 | smooth out vec2 vo1; | 1176 | smooth out vec2 vo1; |
1177 | vec4 r1_Float; | ||
1178 | vec4 r2_Float; | ||
1179 | vec4 r3_Float; | ||
1180 | vec4 ext0_Float_3(vec3 z0) { | ||
1181 | return vec4 ((z0).x,(z0).y,(z0).z,0.0); | ||
1182 | } | ||
1183 | vec3 neg_VecSFloat3(vec3 z0) { | ||
1184 | return - (z0); | ||
1185 | } | ||
1186 | mat4 translateBefore4(vec3 z0) { | ||
1187 | return mat4 | ||
1188 | (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0)); | ||
1189 | } | ||
1190 | mat4 lookat(vec3 z0,vec3 z1,vec3 z2) { | ||
1191 | return (transpose (mat4 | ||
1192 | (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1))))) | ||
1193 | ,ext0_Float_3 (cross (normalize ((z0) - (z1)) | ||
1194 | ,normalize (cross (z2,normalize ((z0) - (z1)))))) | ||
1195 | ,ext0_Float_3 (normalize ((z0) - (z1))) | ||
1196 | ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3 | ||
1197 | (z0))); | ||
1198 | } | ||
1199 | mat4 perspective(float z0,float z1,float z2,float z3) { | ||
1200 | return mat4 | ||
1201 | (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan | ||
1202 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
1203 | ((z2) / (2.0))))))) | ||
1204 | ,0.0 | ||
1205 | ,0.0 | ||
1206 | ,0.0) | ||
1207 | ,vec4 (0.0 | ||
1208 | ,((2.0) * (z0)) / (((z0) * (tan | ||
1209 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
1210 | ,0.0 | ||
1211 | ,0.0) | ||
1212 | ,vec4 ((((z3) * ((z0) * (tan | ||
1213 | ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan | ||
1214 | ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan | ||
1215 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
1216 | ((z2) / (2.0))))))) | ||
1217 | ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan | ||
1218 | ((z2) / (2.0)))))) / (((z0) * (tan | ||
1219 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
1220 | ,(0.0) - (((z1) + (z0)) / ((z1) - (z0))) | ||
1221 | ,-1.0) | ||
1222 | ,vec4 (0.0 | ||
1223 | ,0.0 | ||
1224 | ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0))) | ||
1225 | ,0.0)); | ||
1226 | } | ||
1227 | mat4 rotMatrixY(float z0) { | ||
1228 | return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0) | ||
1229 | ,vec4 (0.0,1.0,0.0,0.0) | ||
1230 | ,vec4 (sin (z0),0.0,cos (z0),0.0) | ||
1231 | ,vec4 (0.0,0.0,0.0,1.0)); | ||
1232 | } | ||
1233 | mat4 rotMatrix; | ||
976 | mat4 rotMatrixX(float z0) { | 1234 | mat4 rotMatrixX(float z0) { |
977 | return mat4 (vec4 (1.0,0.0,0.0,0.0) | 1235 | return mat4 (vec4 (1.0,0.0,0.0,0.0) |
978 | ,vec4 (0.0,cos (z0),sin (z0),0.0) | 1236 | ,vec4 (0.0,cos (z0),sin (z0),0.0) |
@@ -983,7 +1241,17 @@ Pipeline | |||
983 | return (z1) * (vec4 (z0,z0,z0,1.0)); | 1241 | return (z1) * (vec4 (z0,z0,z0,1.0)); |
984 | } | 1242 | } |
985 | void main() { | 1243 | void main() { |
986 | gl_Position = (MVP) * (scale (0.4,(rotMatrixX (0.3)) * (vi1))); | 1244 | r1_Float = vec4 (1.0,0.0,0.0,0.0); |
1245 | r2_Float = vec4 (0.0,1.0,0.0,0.0); | ||
1246 | r3_Float = vec4 (0.0,0.0,1.0,0.0); | ||
1247 | rotMatrix = ((perspective | ||
1248 | (0.1,100.0,0.5235987755982988,1.0)) * (lookat | ||
1249 | (vec3 (3.0,1.3,0.3) | ||
1250 | ,vec3 (0.0,0.0,0.0) | ||
1251 | ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY | ||
1252 | ((0.1308996938995747) * (Time))); | ||
1253 | gl_Position = (rotMatrix) * (scale | ||
1254 | (0.4,(rotMatrixX (0.3)) * (vi1))); | ||
987 | vo1 = vi2; | 1255 | vo1 = vi2; |
988 | } | 1256 | } |
989 | """ | 1257 | """ |
@@ -1008,7 +1276,7 @@ Pipeline | |||
1008 | """ | 1276 | """ |
1009 | } | 1277 | } |
1010 | , Program | 1278 | , Program |
1011 | { programUniforms = fromList [ ( "MVP" , M44F ) ] | 1279 | { programUniforms = fromList [ ( "Time" , Float ) ] |
1012 | , programStreams = | 1280 | , programStreams = |
1013 | fromList | 1281 | fromList |
1014 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) | 1282 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) |
@@ -1022,10 +1290,67 @@ Pipeline | |||
1022 | vec4 texture2D(sampler2D s,vec2 uv) { | 1290 | vec4 texture2D(sampler2D s,vec2 uv) { |
1023 | return texture(s,uv); | 1291 | return texture(s,uv); |
1024 | } | 1292 | } |
1025 | uniform mat4 MVP; | 1293 | uniform float Time; |
1026 | in vec4 vi1; | 1294 | in vec4 vi1; |
1027 | in vec2 vi2; | 1295 | in vec2 vi2; |
1028 | smooth out vec2 vo1; | 1296 | smooth out vec2 vo1; |
1297 | vec4 r1_Float; | ||
1298 | vec4 r2_Float; | ||
1299 | vec4 r3_Float; | ||
1300 | vec4 ext0_Float_3(vec3 z0) { | ||
1301 | return vec4 ((z0).x,(z0).y,(z0).z,0.0); | ||
1302 | } | ||
1303 | vec3 neg_VecSFloat3(vec3 z0) { | ||
1304 | return - (z0); | ||
1305 | } | ||
1306 | mat4 translateBefore4(vec3 z0) { | ||
1307 | return mat4 | ||
1308 | (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0)); | ||
1309 | } | ||
1310 | mat4 lookat(vec3 z0,vec3 z1,vec3 z2) { | ||
1311 | return (transpose (mat4 | ||
1312 | (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1))))) | ||
1313 | ,ext0_Float_3 (cross (normalize ((z0) - (z1)) | ||
1314 | ,normalize (cross (z2,normalize ((z0) - (z1)))))) | ||
1315 | ,ext0_Float_3 (normalize ((z0) - (z1))) | ||
1316 | ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3 | ||
1317 | (z0))); | ||
1318 | } | ||
1319 | mat4 perspective(float z0,float z1,float z2,float z3) { | ||
1320 | return mat4 | ||
1321 | (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan | ||
1322 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
1323 | ((z2) / (2.0))))))) | ||
1324 | ,0.0 | ||
1325 | ,0.0 | ||
1326 | ,0.0) | ||
1327 | ,vec4 (0.0 | ||
1328 | ,((2.0) * (z0)) / (((z0) * (tan | ||
1329 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
1330 | ,0.0 | ||
1331 | ,0.0) | ||
1332 | ,vec4 ((((z3) * ((z0) * (tan | ||
1333 | ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan | ||
1334 | ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan | ||
1335 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
1336 | ((z2) / (2.0))))))) | ||
1337 | ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan | ||
1338 | ((z2) / (2.0)))))) / (((z0) * (tan | ||
1339 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
1340 | ,(0.0) - (((z1) + (z0)) / ((z1) - (z0))) | ||
1341 | ,-1.0) | ||
1342 | ,vec4 (0.0 | ||
1343 | ,0.0 | ||
1344 | ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0))) | ||
1345 | ,0.0)); | ||
1346 | } | ||
1347 | mat4 rotMatrixY(float z0) { | ||
1348 | return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0) | ||
1349 | ,vec4 (0.0,1.0,0.0,0.0) | ||
1350 | ,vec4 (sin (z0),0.0,cos (z0),0.0) | ||
1351 | ,vec4 (0.0,0.0,0.0,1.0)); | ||
1352 | } | ||
1353 | mat4 rotMatrix; | ||
1029 | mat4 rotMatrixX(float z0) { | 1354 | mat4 rotMatrixX(float z0) { |
1030 | return mat4 (vec4 (1.0,0.0,0.0,0.0) | 1355 | return mat4 (vec4 (1.0,0.0,0.0,0.0) |
1031 | ,vec4 (0.0,cos (z0),sin (z0),0.0) | 1356 | ,vec4 (0.0,cos (z0),sin (z0),0.0) |
@@ -1036,7 +1361,17 @@ Pipeline | |||
1036 | return (z1) * (vec4 (z0,z0,z0,1.0)); | 1361 | return (z1) * (vec4 (z0,z0,z0,1.0)); |
1037 | } | 1362 | } |
1038 | void main() { | 1363 | void main() { |
1039 | gl_Position = (MVP) * (scale (0.4,(rotMatrixX (0.4)) * (vi1))); | 1364 | r1_Float = vec4 (1.0,0.0,0.0,0.0); |
1365 | r2_Float = vec4 (0.0,1.0,0.0,0.0); | ||
1366 | r3_Float = vec4 (0.0,0.0,1.0,0.0); | ||
1367 | rotMatrix = ((perspective | ||
1368 | (0.1,100.0,0.5235987755982988,1.0)) * (lookat | ||
1369 | (vec3 (3.0,1.3,0.3) | ||
1370 | ,vec3 (0.0,0.0,0.0) | ||
1371 | ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY | ||
1372 | ((0.1308996938995747) * (Time))); | ||
1373 | gl_Position = (rotMatrix) * (scale | ||
1374 | (0.4,(rotMatrixX (0.4)) * (vi1))); | ||
1040 | vo1 = vi2; | 1375 | vo1 = vi2; |
1041 | } | 1376 | } |
1042 | """ | 1377 | """ |
@@ -1061,7 +1396,7 @@ Pipeline | |||
1061 | """ | 1396 | """ |
1062 | } | 1397 | } |
1063 | , Program | 1398 | , Program |
1064 | { programUniforms = fromList [ ( "MVP" , M44F ) ] | 1399 | { programUniforms = fromList [ ( "Time" , Float ) ] |
1065 | , programStreams = | 1400 | , programStreams = |
1066 | fromList | 1401 | fromList |
1067 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) | 1402 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) |
@@ -1075,10 +1410,67 @@ Pipeline | |||
1075 | vec4 texture2D(sampler2D s,vec2 uv) { | 1410 | vec4 texture2D(sampler2D s,vec2 uv) { |
1076 | return texture(s,uv); | 1411 | return texture(s,uv); |
1077 | } | 1412 | } |
1078 | uniform mat4 MVP; | 1413 | uniform float Time; |
1079 | in vec4 vi1; | 1414 | in vec4 vi1; |
1080 | in vec2 vi2; | 1415 | in vec2 vi2; |
1081 | smooth out vec2 vo1; | 1416 | smooth out vec2 vo1; |
1417 | vec4 r1_Float; | ||
1418 | vec4 r2_Float; | ||
1419 | vec4 r3_Float; | ||
1420 | vec4 ext0_Float_3(vec3 z0) { | ||
1421 | return vec4 ((z0).x,(z0).y,(z0).z,0.0); | ||
1422 | } | ||
1423 | vec3 neg_VecSFloat3(vec3 z0) { | ||
1424 | return - (z0); | ||
1425 | } | ||
1426 | mat4 translateBefore4(vec3 z0) { | ||
1427 | return mat4 | ||
1428 | (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0)); | ||
1429 | } | ||
1430 | mat4 lookat(vec3 z0,vec3 z1,vec3 z2) { | ||
1431 | return (transpose (mat4 | ||
1432 | (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1))))) | ||
1433 | ,ext0_Float_3 (cross (normalize ((z0) - (z1)) | ||
1434 | ,normalize (cross (z2,normalize ((z0) - (z1)))))) | ||
1435 | ,ext0_Float_3 (normalize ((z0) - (z1))) | ||
1436 | ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3 | ||
1437 | (z0))); | ||
1438 | } | ||
1439 | mat4 perspective(float z0,float z1,float z2,float z3) { | ||
1440 | return mat4 | ||
1441 | (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan | ||
1442 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
1443 | ((z2) / (2.0))))))) | ||
1444 | ,0.0 | ||
1445 | ,0.0 | ||
1446 | ,0.0) | ||
1447 | ,vec4 (0.0 | ||
1448 | ,((2.0) * (z0)) / (((z0) * (tan | ||
1449 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
1450 | ,0.0 | ||
1451 | ,0.0) | ||
1452 | ,vec4 ((((z3) * ((z0) * (tan | ||
1453 | ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan | ||
1454 | ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan | ||
1455 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
1456 | ((z2) / (2.0))))))) | ||
1457 | ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan | ||
1458 | ((z2) / (2.0)))))) / (((z0) * (tan | ||
1459 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
1460 | ,(0.0) - (((z1) + (z0)) / ((z1) - (z0))) | ||
1461 | ,-1.0) | ||
1462 | ,vec4 (0.0 | ||
1463 | ,0.0 | ||
1464 | ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0))) | ||
1465 | ,0.0)); | ||
1466 | } | ||
1467 | mat4 rotMatrixY(float z0) { | ||
1468 | return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0) | ||
1469 | ,vec4 (0.0,1.0,0.0,0.0) | ||
1470 | ,vec4 (sin (z0),0.0,cos (z0),0.0) | ||
1471 | ,vec4 (0.0,0.0,0.0,1.0)); | ||
1472 | } | ||
1473 | mat4 rotMatrix; | ||
1082 | mat4 rotMatrixX(float z0) { | 1474 | mat4 rotMatrixX(float z0) { |
1083 | return mat4 (vec4 (1.0,0.0,0.0,0.0) | 1475 | return mat4 (vec4 (1.0,0.0,0.0,0.0) |
1084 | ,vec4 (0.0,cos (z0),sin (z0),0.0) | 1476 | ,vec4 (0.0,cos (z0),sin (z0),0.0) |
@@ -1089,7 +1481,17 @@ Pipeline | |||
1089 | return (z1) * (vec4 (z0,z0,z0,1.0)); | 1481 | return (z1) * (vec4 (z0,z0,z0,1.0)); |
1090 | } | 1482 | } |
1091 | void main() { | 1483 | void main() { |
1092 | gl_Position = (MVP) * (scale (0.4,(rotMatrixX (0.5)) * (vi1))); | 1484 | r1_Float = vec4 (1.0,0.0,0.0,0.0); |
1485 | r2_Float = vec4 (0.0,1.0,0.0,0.0); | ||
1486 | r3_Float = vec4 (0.0,0.0,1.0,0.0); | ||
1487 | rotMatrix = ((perspective | ||
1488 | (0.1,100.0,0.5235987755982988,1.0)) * (lookat | ||
1489 | (vec3 (3.0,1.3,0.3) | ||
1490 | ,vec3 (0.0,0.0,0.0) | ||
1491 | ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY | ||
1492 | ((0.1308996938995747) * (Time))); | ||
1493 | gl_Position = (rotMatrix) * (scale | ||
1494 | (0.4,(rotMatrixX (0.5)) * (vi1))); | ||
1093 | vo1 = vi2; | 1495 | vo1 = vi2; |
1094 | } | 1496 | } |
1095 | """ | 1497 | """ |
@@ -1114,7 +1516,7 @@ Pipeline | |||
1114 | """ | 1516 | """ |
1115 | } | 1517 | } |
1116 | , Program | 1518 | , Program |
1117 | { programUniforms = fromList [ ( "MVP" , M44F ) ] | 1519 | { programUniforms = fromList [ ( "Time" , Float ) ] |
1118 | , programStreams = | 1520 | , programStreams = |
1119 | fromList | 1521 | fromList |
1120 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) | 1522 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) |
@@ -1128,10 +1530,67 @@ Pipeline | |||
1128 | vec4 texture2D(sampler2D s,vec2 uv) { | 1530 | vec4 texture2D(sampler2D s,vec2 uv) { |
1129 | return texture(s,uv); | 1531 | return texture(s,uv); |
1130 | } | 1532 | } |
1131 | uniform mat4 MVP; | 1533 | uniform float Time; |
1132 | in vec4 vi1; | 1534 | in vec4 vi1; |
1133 | in vec2 vi2; | 1535 | in vec2 vi2; |
1134 | smooth out vec2 vo1; | 1536 | smooth out vec2 vo1; |
1537 | vec4 r1_Float; | ||
1538 | vec4 r2_Float; | ||
1539 | vec4 r3_Float; | ||
1540 | vec4 ext0_Float_3(vec3 z0) { | ||
1541 | return vec4 ((z0).x,(z0).y,(z0).z,0.0); | ||
1542 | } | ||
1543 | vec3 neg_VecSFloat3(vec3 z0) { | ||
1544 | return - (z0); | ||
1545 | } | ||
1546 | mat4 translateBefore4(vec3 z0) { | ||
1547 | return mat4 | ||
1548 | (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0)); | ||
1549 | } | ||
1550 | mat4 lookat(vec3 z0,vec3 z1,vec3 z2) { | ||
1551 | return (transpose (mat4 | ||
1552 | (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1))))) | ||
1553 | ,ext0_Float_3 (cross (normalize ((z0) - (z1)) | ||
1554 | ,normalize (cross (z2,normalize ((z0) - (z1)))))) | ||
1555 | ,ext0_Float_3 (normalize ((z0) - (z1))) | ||
1556 | ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3 | ||
1557 | (z0))); | ||
1558 | } | ||
1559 | mat4 perspective(float z0,float z1,float z2,float z3) { | ||
1560 | return mat4 | ||
1561 | (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan | ||
1562 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
1563 | ((z2) / (2.0))))))) | ||
1564 | ,0.0 | ||
1565 | ,0.0 | ||
1566 | ,0.0) | ||
1567 | ,vec4 (0.0 | ||
1568 | ,((2.0) * (z0)) / (((z0) * (tan | ||
1569 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
1570 | ,0.0 | ||
1571 | ,0.0) | ||
1572 | ,vec4 ((((z3) * ((z0) * (tan | ||
1573 | ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan | ||
1574 | ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan | ||
1575 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
1576 | ((z2) / (2.0))))))) | ||
1577 | ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan | ||
1578 | ((z2) / (2.0)))))) / (((z0) * (tan | ||
1579 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
1580 | ,(0.0) - (((z1) + (z0)) / ((z1) - (z0))) | ||
1581 | ,-1.0) | ||
1582 | ,vec4 (0.0 | ||
1583 | ,0.0 | ||
1584 | ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0))) | ||
1585 | ,0.0)); | ||
1586 | } | ||
1587 | mat4 rotMatrixY(float z0) { | ||
1588 | return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0) | ||
1589 | ,vec4 (0.0,1.0,0.0,0.0) | ||
1590 | ,vec4 (sin (z0),0.0,cos (z0),0.0) | ||
1591 | ,vec4 (0.0,0.0,0.0,1.0)); | ||
1592 | } | ||
1593 | mat4 rotMatrix; | ||
1135 | mat4 rotMatrixX(float z0) { | 1594 | mat4 rotMatrixX(float z0) { |
1136 | return mat4 (vec4 (1.0,0.0,0.0,0.0) | 1595 | return mat4 (vec4 (1.0,0.0,0.0,0.0) |
1137 | ,vec4 (0.0,cos (z0),sin (z0),0.0) | 1596 | ,vec4 (0.0,cos (z0),sin (z0),0.0) |
@@ -1142,7 +1601,17 @@ Pipeline | |||
1142 | return (z1) * (vec4 (z0,z0,z0,1.0)); | 1601 | return (z1) * (vec4 (z0,z0,z0,1.0)); |
1143 | } | 1602 | } |
1144 | void main() { | 1603 | void main() { |
1145 | gl_Position = (MVP) * (scale (0.4,(rotMatrixX (0.6)) * (vi1))); | 1604 | r1_Float = vec4 (1.0,0.0,0.0,0.0); |
1605 | r2_Float = vec4 (0.0,1.0,0.0,0.0); | ||
1606 | r3_Float = vec4 (0.0,0.0,1.0,0.0); | ||
1607 | rotMatrix = ((perspective | ||
1608 | (0.1,100.0,0.5235987755982988,1.0)) * (lookat | ||
1609 | (vec3 (3.0,1.3,0.3) | ||
1610 | ,vec3 (0.0,0.0,0.0) | ||
1611 | ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY | ||
1612 | ((0.1308996938995747) * (Time))); | ||
1613 | gl_Position = (rotMatrix) * (scale | ||
1614 | (0.4,(rotMatrixX (0.6)) * (vi1))); | ||
1146 | vo1 = vi2; | 1615 | vo1 = vi2; |
1147 | } | 1616 | } |
1148 | """ | 1617 | """ |
@@ -1167,7 +1636,7 @@ Pipeline | |||
1167 | """ | 1636 | """ |
1168 | } | 1637 | } |
1169 | , Program | 1638 | , Program |
1170 | { programUniforms = fromList [ ( "MVP" , M44F ) ] | 1639 | { programUniforms = fromList [ ( "Time" , Float ) ] |
1171 | , programStreams = | 1640 | , programStreams = |
1172 | fromList | 1641 | fromList |
1173 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) | 1642 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) |
@@ -1181,10 +1650,67 @@ Pipeline | |||
1181 | vec4 texture2D(sampler2D s,vec2 uv) { | 1650 | vec4 texture2D(sampler2D s,vec2 uv) { |
1182 | return texture(s,uv); | 1651 | return texture(s,uv); |
1183 | } | 1652 | } |
1184 | uniform mat4 MVP; | 1653 | uniform float Time; |
1185 | in vec4 vi1; | 1654 | in vec4 vi1; |
1186 | in vec2 vi2; | 1655 | in vec2 vi2; |
1187 | smooth out vec2 vo1; | 1656 | smooth out vec2 vo1; |
1657 | vec4 r1_Float; | ||
1658 | vec4 r2_Float; | ||
1659 | vec4 r3_Float; | ||
1660 | vec4 ext0_Float_3(vec3 z0) { | ||
1661 | return vec4 ((z0).x,(z0).y,(z0).z,0.0); | ||
1662 | } | ||
1663 | vec3 neg_VecSFloat3(vec3 z0) { | ||
1664 | return - (z0); | ||
1665 | } | ||
1666 | mat4 translateBefore4(vec3 z0) { | ||
1667 | return mat4 | ||
1668 | (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0)); | ||
1669 | } | ||
1670 | mat4 lookat(vec3 z0,vec3 z1,vec3 z2) { | ||
1671 | return (transpose (mat4 | ||
1672 | (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1))))) | ||
1673 | ,ext0_Float_3 (cross (normalize ((z0) - (z1)) | ||
1674 | ,normalize (cross (z2,normalize ((z0) - (z1)))))) | ||
1675 | ,ext0_Float_3 (normalize ((z0) - (z1))) | ||
1676 | ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3 | ||
1677 | (z0))); | ||
1678 | } | ||
1679 | mat4 perspective(float z0,float z1,float z2,float z3) { | ||
1680 | return mat4 | ||
1681 | (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan | ||
1682 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
1683 | ((z2) / (2.0))))))) | ||
1684 | ,0.0 | ||
1685 | ,0.0 | ||
1686 | ,0.0) | ||
1687 | ,vec4 (0.0 | ||
1688 | ,((2.0) * (z0)) / (((z0) * (tan | ||
1689 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
1690 | ,0.0 | ||
1691 | ,0.0) | ||
1692 | ,vec4 ((((z3) * ((z0) * (tan | ||
1693 | ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan | ||
1694 | ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan | ||
1695 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
1696 | ((z2) / (2.0))))))) | ||
1697 | ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan | ||
1698 | ((z2) / (2.0)))))) / (((z0) * (tan | ||
1699 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
1700 | ,(0.0) - (((z1) + (z0)) / ((z1) - (z0))) | ||
1701 | ,-1.0) | ||
1702 | ,vec4 (0.0 | ||
1703 | ,0.0 | ||
1704 | ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0))) | ||
1705 | ,0.0)); | ||
1706 | } | ||
1707 | mat4 rotMatrixY(float z0) { | ||
1708 | return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0) | ||
1709 | ,vec4 (0.0,1.0,0.0,0.0) | ||
1710 | ,vec4 (sin (z0),0.0,cos (z0),0.0) | ||
1711 | ,vec4 (0.0,0.0,0.0,1.0)); | ||
1712 | } | ||
1713 | mat4 rotMatrix; | ||
1188 | mat4 rotMatrixX(float z0) { | 1714 | mat4 rotMatrixX(float z0) { |
1189 | return mat4 (vec4 (1.0,0.0,0.0,0.0) | 1715 | return mat4 (vec4 (1.0,0.0,0.0,0.0) |
1190 | ,vec4 (0.0,cos (z0),sin (z0),0.0) | 1716 | ,vec4 (0.0,cos (z0),sin (z0),0.0) |
@@ -1195,7 +1721,17 @@ Pipeline | |||
1195 | return (z1) * (vec4 (z0,z0,z0,1.0)); | 1721 | return (z1) * (vec4 (z0,z0,z0,1.0)); |
1196 | } | 1722 | } |
1197 | void main() { | 1723 | void main() { |
1198 | gl_Position = (MVP) * (scale (0.4,(rotMatrixX (0.7)) * (vi1))); | 1724 | r1_Float = vec4 (1.0,0.0,0.0,0.0); |
1725 | r2_Float = vec4 (0.0,1.0,0.0,0.0); | ||
1726 | r3_Float = vec4 (0.0,0.0,1.0,0.0); | ||
1727 | rotMatrix = ((perspective | ||
1728 | (0.1,100.0,0.5235987755982988,1.0)) * (lookat | ||
1729 | (vec3 (3.0,1.3,0.3) | ||
1730 | ,vec3 (0.0,0.0,0.0) | ||
1731 | ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY | ||
1732 | ((0.1308996938995747) * (Time))); | ||
1733 | gl_Position = (rotMatrix) * (scale | ||
1734 | (0.4,(rotMatrixX (0.7)) * (vi1))); | ||
1199 | vo1 = vi2; | 1735 | vo1 = vi2; |
1200 | } | 1736 | } |
1201 | """ | 1737 | """ |
@@ -1220,7 +1756,7 @@ Pipeline | |||
1220 | """ | 1756 | """ |
1221 | } | 1757 | } |
1222 | , Program | 1758 | , Program |
1223 | { programUniforms = fromList [ ( "MVP" , M44F ) ] | 1759 | { programUniforms = fromList [ ( "Time" , Float ) ] |
1224 | , programStreams = | 1760 | , programStreams = |
1225 | fromList | 1761 | fromList |
1226 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) | 1762 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) |
@@ -1234,10 +1770,67 @@ Pipeline | |||
1234 | vec4 texture2D(sampler2D s,vec2 uv) { | 1770 | vec4 texture2D(sampler2D s,vec2 uv) { |
1235 | return texture(s,uv); | 1771 | return texture(s,uv); |
1236 | } | 1772 | } |
1237 | uniform mat4 MVP; | 1773 | uniform float Time; |
1238 | in vec4 vi1; | 1774 | in vec4 vi1; |
1239 | in vec2 vi2; | 1775 | in vec2 vi2; |
1240 | smooth out vec2 vo1; | 1776 | smooth out vec2 vo1; |
1777 | vec4 r1_Float; | ||
1778 | vec4 r2_Float; | ||
1779 | vec4 r3_Float; | ||
1780 | vec4 ext0_Float_3(vec3 z0) { | ||
1781 | return vec4 ((z0).x,(z0).y,(z0).z,0.0); | ||
1782 | } | ||
1783 | vec3 neg_VecSFloat3(vec3 z0) { | ||
1784 | return - (z0); | ||
1785 | } | ||
1786 | mat4 translateBefore4(vec3 z0) { | ||
1787 | return mat4 | ||
1788 | (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0)); | ||
1789 | } | ||
1790 | mat4 lookat(vec3 z0,vec3 z1,vec3 z2) { | ||
1791 | return (transpose (mat4 | ||
1792 | (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1))))) | ||
1793 | ,ext0_Float_3 (cross (normalize ((z0) - (z1)) | ||
1794 | ,normalize (cross (z2,normalize ((z0) - (z1)))))) | ||
1795 | ,ext0_Float_3 (normalize ((z0) - (z1))) | ||
1796 | ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3 | ||
1797 | (z0))); | ||
1798 | } | ||
1799 | mat4 perspective(float z0,float z1,float z2,float z3) { | ||
1800 | return mat4 | ||
1801 | (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan | ||
1802 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
1803 | ((z2) / (2.0))))))) | ||
1804 | ,0.0 | ||
1805 | ,0.0 | ||
1806 | ,0.0) | ||
1807 | ,vec4 (0.0 | ||
1808 | ,((2.0) * (z0)) / (((z0) * (tan | ||
1809 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
1810 | ,0.0 | ||
1811 | ,0.0) | ||
1812 | ,vec4 ((((z3) * ((z0) * (tan | ||
1813 | ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan | ||
1814 | ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan | ||
1815 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
1816 | ((z2) / (2.0))))))) | ||
1817 | ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan | ||
1818 | ((z2) / (2.0)))))) / (((z0) * (tan | ||
1819 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
1820 | ,(0.0) - (((z1) + (z0)) / ((z1) - (z0))) | ||
1821 | ,-1.0) | ||
1822 | ,vec4 (0.0 | ||
1823 | ,0.0 | ||
1824 | ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0))) | ||
1825 | ,0.0)); | ||
1826 | } | ||
1827 | mat4 rotMatrixY(float z0) { | ||
1828 | return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0) | ||
1829 | ,vec4 (0.0,1.0,0.0,0.0) | ||
1830 | ,vec4 (sin (z0),0.0,cos (z0),0.0) | ||
1831 | ,vec4 (0.0,0.0,0.0,1.0)); | ||
1832 | } | ||
1833 | mat4 rotMatrix; | ||
1241 | mat4 rotMatrixX(float z0) { | 1834 | mat4 rotMatrixX(float z0) { |
1242 | return mat4 (vec4 (1.0,0.0,0.0,0.0) | 1835 | return mat4 (vec4 (1.0,0.0,0.0,0.0) |
1243 | ,vec4 (0.0,cos (z0),sin (z0),0.0) | 1836 | ,vec4 (0.0,cos (z0),sin (z0),0.0) |
@@ -1248,7 +1841,17 @@ Pipeline | |||
1248 | return (z1) * (vec4 (z0,z0,z0,1.0)); | 1841 | return (z1) * (vec4 (z0,z0,z0,1.0)); |
1249 | } | 1842 | } |
1250 | void main() { | 1843 | void main() { |
1251 | gl_Position = (MVP) * (scale (0.4,(rotMatrixX (0.8)) * (vi1))); | 1844 | r1_Float = vec4 (1.0,0.0,0.0,0.0); |
1845 | r2_Float = vec4 (0.0,1.0,0.0,0.0); | ||
1846 | r3_Float = vec4 (0.0,0.0,1.0,0.0); | ||
1847 | rotMatrix = ((perspective | ||
1848 | (0.1,100.0,0.5235987755982988,1.0)) * (lookat | ||
1849 | (vec3 (3.0,1.3,0.3) | ||
1850 | ,vec3 (0.0,0.0,0.0) | ||
1851 | ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY | ||
1852 | ((0.1308996938995747) * (Time))); | ||
1853 | gl_Position = (rotMatrix) * (scale | ||
1854 | (0.4,(rotMatrixX (0.8)) * (vi1))); | ||
1252 | vo1 = vi2; | 1855 | vo1 = vi2; |
1253 | } | 1856 | } |
1254 | """ | 1857 | """ |
@@ -1273,7 +1876,7 @@ Pipeline | |||
1273 | """ | 1876 | """ |
1274 | } | 1877 | } |
1275 | , Program | 1878 | , Program |
1276 | { programUniforms = fromList [ ( "MVP" , M44F ) ] | 1879 | { programUniforms = fromList [ ( "Time" , Float ) ] |
1277 | , programStreams = | 1880 | , programStreams = |
1278 | fromList | 1881 | fromList |
1279 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) | 1882 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) |
@@ -1287,10 +1890,67 @@ Pipeline | |||
1287 | vec4 texture2D(sampler2D s,vec2 uv) { | 1890 | vec4 texture2D(sampler2D s,vec2 uv) { |
1288 | return texture(s,uv); | 1891 | return texture(s,uv); |
1289 | } | 1892 | } |
1290 | uniform mat4 MVP; | 1893 | uniform float Time; |
1291 | in vec4 vi1; | 1894 | in vec4 vi1; |
1292 | in vec2 vi2; | 1895 | in vec2 vi2; |
1293 | smooth out vec2 vo1; | 1896 | smooth out vec2 vo1; |
1897 | vec4 r1_Float; | ||
1898 | vec4 r2_Float; | ||
1899 | vec4 r3_Float; | ||
1900 | vec4 ext0_Float_3(vec3 z0) { | ||
1901 | return vec4 ((z0).x,(z0).y,(z0).z,0.0); | ||
1902 | } | ||
1903 | vec3 neg_VecSFloat3(vec3 z0) { | ||
1904 | return - (z0); | ||
1905 | } | ||
1906 | mat4 translateBefore4(vec3 z0) { | ||
1907 | return mat4 | ||
1908 | (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0)); | ||
1909 | } | ||
1910 | mat4 lookat(vec3 z0,vec3 z1,vec3 z2) { | ||
1911 | return (transpose (mat4 | ||
1912 | (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1))))) | ||
1913 | ,ext0_Float_3 (cross (normalize ((z0) - (z1)) | ||
1914 | ,normalize (cross (z2,normalize ((z0) - (z1)))))) | ||
1915 | ,ext0_Float_3 (normalize ((z0) - (z1))) | ||
1916 | ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3 | ||
1917 | (z0))); | ||
1918 | } | ||
1919 | mat4 perspective(float z0,float z1,float z2,float z3) { | ||
1920 | return mat4 | ||
1921 | (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan | ||
1922 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
1923 | ((z2) / (2.0))))))) | ||
1924 | ,0.0 | ||
1925 | ,0.0 | ||
1926 | ,0.0) | ||
1927 | ,vec4 (0.0 | ||
1928 | ,((2.0) * (z0)) / (((z0) * (tan | ||
1929 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
1930 | ,0.0 | ||
1931 | ,0.0) | ||
1932 | ,vec4 ((((z3) * ((z0) * (tan | ||
1933 | ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan | ||
1934 | ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan | ||
1935 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
1936 | ((z2) / (2.0))))))) | ||
1937 | ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan | ||
1938 | ((z2) / (2.0)))))) / (((z0) * (tan | ||
1939 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
1940 | ,(0.0) - (((z1) + (z0)) / ((z1) - (z0))) | ||
1941 | ,-1.0) | ||
1942 | ,vec4 (0.0 | ||
1943 | ,0.0 | ||
1944 | ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0))) | ||
1945 | ,0.0)); | ||
1946 | } | ||
1947 | mat4 rotMatrixY(float z0) { | ||
1948 | return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0) | ||
1949 | ,vec4 (0.0,1.0,0.0,0.0) | ||
1950 | ,vec4 (sin (z0),0.0,cos (z0),0.0) | ||
1951 | ,vec4 (0.0,0.0,0.0,1.0)); | ||
1952 | } | ||
1953 | mat4 rotMatrix; | ||
1294 | mat4 rotMatrixX(float z0) { | 1954 | mat4 rotMatrixX(float z0) { |
1295 | return mat4 (vec4 (1.0,0.0,0.0,0.0) | 1955 | return mat4 (vec4 (1.0,0.0,0.0,0.0) |
1296 | ,vec4 (0.0,cos (z0),sin (z0),0.0) | 1956 | ,vec4 (0.0,cos (z0),sin (z0),0.0) |
@@ -1301,7 +1961,17 @@ Pipeline | |||
1301 | return (z1) * (vec4 (z0,z0,z0,1.0)); | 1961 | return (z1) * (vec4 (z0,z0,z0,1.0)); |
1302 | } | 1962 | } |
1303 | void main() { | 1963 | void main() { |
1304 | gl_Position = (MVP) * (scale (0.4,(rotMatrixX (0.9)) * (vi1))); | 1964 | r1_Float = vec4 (1.0,0.0,0.0,0.0); |
1965 | r2_Float = vec4 (0.0,1.0,0.0,0.0); | ||
1966 | r3_Float = vec4 (0.0,0.0,1.0,0.0); | ||
1967 | rotMatrix = ((perspective | ||
1968 | (0.1,100.0,0.5235987755982988,1.0)) * (lookat | ||
1969 | (vec3 (3.0,1.3,0.3) | ||
1970 | ,vec3 (0.0,0.0,0.0) | ||
1971 | ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY | ||
1972 | ((0.1308996938995747) * (Time))); | ||
1973 | gl_Position = (rotMatrix) * (scale | ||
1974 | (0.4,(rotMatrixX (0.9)) * (vi1))); | ||
1305 | vo1 = vi2; | 1975 | vo1 = vi2; |
1306 | } | 1976 | } |
1307 | """ | 1977 | """ |
@@ -1326,7 +1996,7 @@ Pipeline | |||
1326 | """ | 1996 | """ |
1327 | } | 1997 | } |
1328 | , Program | 1998 | , Program |
1329 | { programUniforms = fromList [ ( "MVP" , M44F ) ] | 1999 | { programUniforms = fromList [ ( "Time" , Float ) ] |
1330 | , programStreams = | 2000 | , programStreams = |
1331 | fromList | 2001 | fromList |
1332 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) | 2002 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) |
@@ -1340,10 +2010,67 @@ Pipeline | |||
1340 | vec4 texture2D(sampler2D s,vec2 uv) { | 2010 | vec4 texture2D(sampler2D s,vec2 uv) { |
1341 | return texture(s,uv); | 2011 | return texture(s,uv); |
1342 | } | 2012 | } |
1343 | uniform mat4 MVP; | 2013 | uniform float Time; |
1344 | in vec4 vi1; | 2014 | in vec4 vi1; |
1345 | in vec2 vi2; | 2015 | in vec2 vi2; |
1346 | smooth out vec2 vo1; | 2016 | smooth out vec2 vo1; |
2017 | vec4 r1_Float; | ||
2018 | vec4 r2_Float; | ||
2019 | vec4 r3_Float; | ||
2020 | vec4 ext0_Float_3(vec3 z0) { | ||
2021 | return vec4 ((z0).x,(z0).y,(z0).z,0.0); | ||
2022 | } | ||
2023 | vec3 neg_VecSFloat3(vec3 z0) { | ||
2024 | return - (z0); | ||
2025 | } | ||
2026 | mat4 translateBefore4(vec3 z0) { | ||
2027 | return mat4 | ||
2028 | (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0)); | ||
2029 | } | ||
2030 | mat4 lookat(vec3 z0,vec3 z1,vec3 z2) { | ||
2031 | return (transpose (mat4 | ||
2032 | (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1))))) | ||
2033 | ,ext0_Float_3 (cross (normalize ((z0) - (z1)) | ||
2034 | ,normalize (cross (z2,normalize ((z0) - (z1)))))) | ||
2035 | ,ext0_Float_3 (normalize ((z0) - (z1))) | ||
2036 | ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3 | ||
2037 | (z0))); | ||
2038 | } | ||
2039 | mat4 perspective(float z0,float z1,float z2,float z3) { | ||
2040 | return mat4 | ||
2041 | (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan | ||
2042 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
2043 | ((z2) / (2.0))))))) | ||
2044 | ,0.0 | ||
2045 | ,0.0 | ||
2046 | ,0.0) | ||
2047 | ,vec4 (0.0 | ||
2048 | ,((2.0) * (z0)) / (((z0) * (tan | ||
2049 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
2050 | ,0.0 | ||
2051 | ,0.0) | ||
2052 | ,vec4 ((((z3) * ((z0) * (tan | ||
2053 | ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan | ||
2054 | ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan | ||
2055 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
2056 | ((z2) / (2.0))))))) | ||
2057 | ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan | ||
2058 | ((z2) / (2.0)))))) / (((z0) * (tan | ||
2059 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
2060 | ,(0.0) - (((z1) + (z0)) / ((z1) - (z0))) | ||
2061 | ,-1.0) | ||
2062 | ,vec4 (0.0 | ||
2063 | ,0.0 | ||
2064 | ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0))) | ||
2065 | ,0.0)); | ||
2066 | } | ||
2067 | mat4 rotMatrixY(float z0) { | ||
2068 | return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0) | ||
2069 | ,vec4 (0.0,1.0,0.0,0.0) | ||
2070 | ,vec4 (sin (z0),0.0,cos (z0),0.0) | ||
2071 | ,vec4 (0.0,0.0,0.0,1.0)); | ||
2072 | } | ||
2073 | mat4 rotMatrix; | ||
1347 | mat4 rotMatrixX(float z0) { | 2074 | mat4 rotMatrixX(float z0) { |
1348 | return mat4 (vec4 (1.0,0.0,0.0,0.0) | 2075 | return mat4 (vec4 (1.0,0.0,0.0,0.0) |
1349 | ,vec4 (0.0,cos (z0),sin (z0),0.0) | 2076 | ,vec4 (0.0,cos (z0),sin (z0),0.0) |
@@ -1354,7 +2081,17 @@ Pipeline | |||
1354 | return (z1) * (vec4 (z0,z0,z0,1.0)); | 2081 | return (z1) * (vec4 (z0,z0,z0,1.0)); |
1355 | } | 2082 | } |
1356 | void main() { | 2083 | void main() { |
1357 | gl_Position = (MVP) * (scale (0.4,(rotMatrixX (1.0)) * (vi1))); | 2084 | r1_Float = vec4 (1.0,0.0,0.0,0.0); |
2085 | r2_Float = vec4 (0.0,1.0,0.0,0.0); | ||
2086 | r3_Float = vec4 (0.0,0.0,1.0,0.0); | ||
2087 | rotMatrix = ((perspective | ||
2088 | (0.1,100.0,0.5235987755982988,1.0)) * (lookat | ||
2089 | (vec3 (3.0,1.3,0.3) | ||
2090 | ,vec3 (0.0,0.0,0.0) | ||
2091 | ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY | ||
2092 | ((0.1308996938995747) * (Time))); | ||
2093 | gl_Position = (rotMatrix) * (scale | ||
2094 | (0.4,(rotMatrixX (1.0)) * (vi1))); | ||
1358 | vo1 = vi2; | 2095 | vo1 = vi2; |
1359 | } | 2096 | } |
1360 | """ | 2097 | """ |
@@ -1379,7 +2116,7 @@ Pipeline | |||
1379 | """ | 2116 | """ |
1380 | } | 2117 | } |
1381 | , Program | 2118 | , Program |
1382 | { programUniforms = fromList [ ( "MVP" , M44F ) ] | 2119 | { programUniforms = fromList [ ( "Time" , Float ) ] |
1383 | , programStreams = | 2120 | , programStreams = |
1384 | fromList | 2121 | fromList |
1385 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) | 2122 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) |
@@ -1393,10 +2130,67 @@ Pipeline | |||
1393 | vec4 texture2D(sampler2D s,vec2 uv) { | 2130 | vec4 texture2D(sampler2D s,vec2 uv) { |
1394 | return texture(s,uv); | 2131 | return texture(s,uv); |
1395 | } | 2132 | } |
1396 | uniform mat4 MVP; | 2133 | uniform float Time; |
1397 | in vec4 vi1; | 2134 | in vec4 vi1; |
1398 | in vec2 vi2; | 2135 | in vec2 vi2; |
1399 | smooth out vec2 vo1; | 2136 | smooth out vec2 vo1; |
2137 | vec4 r1_Float; | ||
2138 | vec4 r2_Float; | ||
2139 | vec4 r3_Float; | ||
2140 | vec4 ext0_Float_3(vec3 z0) { | ||
2141 | return vec4 ((z0).x,(z0).y,(z0).z,0.0); | ||
2142 | } | ||
2143 | vec3 neg_VecSFloat3(vec3 z0) { | ||
2144 | return - (z0); | ||
2145 | } | ||
2146 | mat4 translateBefore4(vec3 z0) { | ||
2147 | return mat4 | ||
2148 | (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0)); | ||
2149 | } | ||
2150 | mat4 lookat(vec3 z0,vec3 z1,vec3 z2) { | ||
2151 | return (transpose (mat4 | ||
2152 | (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1))))) | ||
2153 | ,ext0_Float_3 (cross (normalize ((z0) - (z1)) | ||
2154 | ,normalize (cross (z2,normalize ((z0) - (z1)))))) | ||
2155 | ,ext0_Float_3 (normalize ((z0) - (z1))) | ||
2156 | ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3 | ||
2157 | (z0))); | ||
2158 | } | ||
2159 | mat4 perspective(float z0,float z1,float z2,float z3) { | ||
2160 | return mat4 | ||
2161 | (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan | ||
2162 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
2163 | ((z2) / (2.0))))))) | ||
2164 | ,0.0 | ||
2165 | ,0.0 | ||
2166 | ,0.0) | ||
2167 | ,vec4 (0.0 | ||
2168 | ,((2.0) * (z0)) / (((z0) * (tan | ||
2169 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
2170 | ,0.0 | ||
2171 | ,0.0) | ||
2172 | ,vec4 ((((z3) * ((z0) * (tan | ||
2173 | ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan | ||
2174 | ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan | ||
2175 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
2176 | ((z2) / (2.0))))))) | ||
2177 | ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan | ||
2178 | ((z2) / (2.0)))))) / (((z0) * (tan | ||
2179 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
2180 | ,(0.0) - (((z1) + (z0)) / ((z1) - (z0))) | ||
2181 | ,-1.0) | ||
2182 | ,vec4 (0.0 | ||
2183 | ,0.0 | ||
2184 | ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0))) | ||
2185 | ,0.0)); | ||
2186 | } | ||
2187 | mat4 rotMatrixY(float z0) { | ||
2188 | return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0) | ||
2189 | ,vec4 (0.0,1.0,0.0,0.0) | ||
2190 | ,vec4 (sin (z0),0.0,cos (z0),0.0) | ||
2191 | ,vec4 (0.0,0.0,0.0,1.0)); | ||
2192 | } | ||
2193 | mat4 rotMatrix; | ||
1400 | mat4 rotMatrixX(float z0) { | 2194 | mat4 rotMatrixX(float z0) { |
1401 | return mat4 (vec4 (1.0,0.0,0.0,0.0) | 2195 | return mat4 (vec4 (1.0,0.0,0.0,0.0) |
1402 | ,vec4 (0.0,cos (z0),sin (z0),0.0) | 2196 | ,vec4 (0.0,cos (z0),sin (z0),0.0) |
@@ -1407,7 +2201,17 @@ Pipeline | |||
1407 | return (z1) * (vec4 (z0,z0,z0,1.0)); | 2201 | return (z1) * (vec4 (z0,z0,z0,1.0)); |
1408 | } | 2202 | } |
1409 | void main() { | 2203 | void main() { |
1410 | gl_Position = (MVP) * (scale (0.4,(rotMatrixX (1.1)) * (vi1))); | 2204 | r1_Float = vec4 (1.0,0.0,0.0,0.0); |
2205 | r2_Float = vec4 (0.0,1.0,0.0,0.0); | ||
2206 | r3_Float = vec4 (0.0,0.0,1.0,0.0); | ||
2207 | rotMatrix = ((perspective | ||
2208 | (0.1,100.0,0.5235987755982988,1.0)) * (lookat | ||
2209 | (vec3 (3.0,1.3,0.3) | ||
2210 | ,vec3 (0.0,0.0,0.0) | ||
2211 | ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY | ||
2212 | ((0.1308996938995747) * (Time))); | ||
2213 | gl_Position = (rotMatrix) * (scale | ||
2214 | (0.4,(rotMatrixX (1.1)) * (vi1))); | ||
1411 | vo1 = vi2; | 2215 | vo1 = vi2; |
1412 | } | 2216 | } |
1413 | """ | 2217 | """ |
@@ -1432,7 +2236,7 @@ Pipeline | |||
1432 | """ | 2236 | """ |
1433 | } | 2237 | } |
1434 | , Program | 2238 | , Program |
1435 | { programUniforms = fromList [ ( "MVP" , M44F ) ] | 2239 | { programUniforms = fromList [ ( "Time" , Float ) ] |
1436 | , programStreams = | 2240 | , programStreams = |
1437 | fromList | 2241 | fromList |
1438 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) | 2242 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) |
@@ -1446,10 +2250,67 @@ Pipeline | |||
1446 | vec4 texture2D(sampler2D s,vec2 uv) { | 2250 | vec4 texture2D(sampler2D s,vec2 uv) { |
1447 | return texture(s,uv); | 2251 | return texture(s,uv); |
1448 | } | 2252 | } |
1449 | uniform mat4 MVP; | 2253 | uniform float Time; |
1450 | in vec4 vi1; | 2254 | in vec4 vi1; |
1451 | in vec2 vi2; | 2255 | in vec2 vi2; |
1452 | smooth out vec2 vo1; | 2256 | smooth out vec2 vo1; |
2257 | vec4 r1_Float; | ||
2258 | vec4 r2_Float; | ||
2259 | vec4 r3_Float; | ||
2260 | vec4 ext0_Float_3(vec3 z0) { | ||
2261 | return vec4 ((z0).x,(z0).y,(z0).z,0.0); | ||
2262 | } | ||
2263 | vec3 neg_VecSFloat3(vec3 z0) { | ||
2264 | return - (z0); | ||
2265 | } | ||
2266 | mat4 translateBefore4(vec3 z0) { | ||
2267 | return mat4 | ||
2268 | (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0)); | ||
2269 | } | ||
2270 | mat4 lookat(vec3 z0,vec3 z1,vec3 z2) { | ||
2271 | return (transpose (mat4 | ||
2272 | (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1))))) | ||
2273 | ,ext0_Float_3 (cross (normalize ((z0) - (z1)) | ||
2274 | ,normalize (cross (z2,normalize ((z0) - (z1)))))) | ||
2275 | ,ext0_Float_3 (normalize ((z0) - (z1))) | ||
2276 | ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3 | ||
2277 | (z0))); | ||
2278 | } | ||
2279 | mat4 perspective(float z0,float z1,float z2,float z3) { | ||
2280 | return mat4 | ||
2281 | (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan | ||
2282 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
2283 | ((z2) / (2.0))))))) | ||
2284 | ,0.0 | ||
2285 | ,0.0 | ||
2286 | ,0.0) | ||
2287 | ,vec4 (0.0 | ||
2288 | ,((2.0) * (z0)) / (((z0) * (tan | ||
2289 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
2290 | ,0.0 | ||
2291 | ,0.0) | ||
2292 | ,vec4 ((((z3) * ((z0) * (tan | ||
2293 | ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan | ||
2294 | ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan | ||
2295 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
2296 | ((z2) / (2.0))))))) | ||
2297 | ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan | ||
2298 | ((z2) / (2.0)))))) / (((z0) * (tan | ||
2299 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
2300 | ,(0.0) - (((z1) + (z0)) / ((z1) - (z0))) | ||
2301 | ,-1.0) | ||
2302 | ,vec4 (0.0 | ||
2303 | ,0.0 | ||
2304 | ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0))) | ||
2305 | ,0.0)); | ||
2306 | } | ||
2307 | mat4 rotMatrixY(float z0) { | ||
2308 | return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0) | ||
2309 | ,vec4 (0.0,1.0,0.0,0.0) | ||
2310 | ,vec4 (sin (z0),0.0,cos (z0),0.0) | ||
2311 | ,vec4 (0.0,0.0,0.0,1.0)); | ||
2312 | } | ||
2313 | mat4 rotMatrix; | ||
1453 | mat4 rotMatrixX(float z0) { | 2314 | mat4 rotMatrixX(float z0) { |
1454 | return mat4 (vec4 (1.0,0.0,0.0,0.0) | 2315 | return mat4 (vec4 (1.0,0.0,0.0,0.0) |
1455 | ,vec4 (0.0,cos (z0),sin (z0),0.0) | 2316 | ,vec4 (0.0,cos (z0),sin (z0),0.0) |
@@ -1460,7 +2321,17 @@ Pipeline | |||
1460 | return (z1) * (vec4 (z0,z0,z0,1.0)); | 2321 | return (z1) * (vec4 (z0,z0,z0,1.0)); |
1461 | } | 2322 | } |
1462 | void main() { | 2323 | void main() { |
1463 | gl_Position = (MVP) * (scale (0.4,(rotMatrixX (1.2)) * (vi1))); | 2324 | r1_Float = vec4 (1.0,0.0,0.0,0.0); |
2325 | r2_Float = vec4 (0.0,1.0,0.0,0.0); | ||
2326 | r3_Float = vec4 (0.0,0.0,1.0,0.0); | ||
2327 | rotMatrix = ((perspective | ||
2328 | (0.1,100.0,0.5235987755982988,1.0)) * (lookat | ||
2329 | (vec3 (3.0,1.3,0.3) | ||
2330 | ,vec3 (0.0,0.0,0.0) | ||
2331 | ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY | ||
2332 | ((0.1308996938995747) * (Time))); | ||
2333 | gl_Position = (rotMatrix) * (scale | ||
2334 | (0.4,(rotMatrixX (1.2)) * (vi1))); | ||
1464 | vo1 = vi2; | 2335 | vo1 = vi2; |
1465 | } | 2336 | } |
1466 | """ | 2337 | """ |
@@ -1485,7 +2356,7 @@ Pipeline | |||
1485 | """ | 2356 | """ |
1486 | } | 2357 | } |
1487 | , Program | 2358 | , Program |
1488 | { programUniforms = fromList [ ( "MVP" , M44F ) ] | 2359 | { programUniforms = fromList [ ( "Time" , Float ) ] |
1489 | , programStreams = | 2360 | , programStreams = |
1490 | fromList | 2361 | fromList |
1491 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) | 2362 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) |
@@ -1499,10 +2370,67 @@ Pipeline | |||
1499 | vec4 texture2D(sampler2D s,vec2 uv) { | 2370 | vec4 texture2D(sampler2D s,vec2 uv) { |
1500 | return texture(s,uv); | 2371 | return texture(s,uv); |
1501 | } | 2372 | } |
1502 | uniform mat4 MVP; | 2373 | uniform float Time; |
1503 | in vec4 vi1; | 2374 | in vec4 vi1; |
1504 | in vec2 vi2; | 2375 | in vec2 vi2; |
1505 | smooth out vec2 vo1; | 2376 | smooth out vec2 vo1; |
2377 | vec4 r1_Float; | ||
2378 | vec4 r2_Float; | ||
2379 | vec4 r3_Float; | ||
2380 | vec4 ext0_Float_3(vec3 z0) { | ||
2381 | return vec4 ((z0).x,(z0).y,(z0).z,0.0); | ||
2382 | } | ||
2383 | vec3 neg_VecSFloat3(vec3 z0) { | ||
2384 | return - (z0); | ||
2385 | } | ||
2386 | mat4 translateBefore4(vec3 z0) { | ||
2387 | return mat4 | ||
2388 | (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0)); | ||
2389 | } | ||
2390 | mat4 lookat(vec3 z0,vec3 z1,vec3 z2) { | ||
2391 | return (transpose (mat4 | ||
2392 | (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1))))) | ||
2393 | ,ext0_Float_3 (cross (normalize ((z0) - (z1)) | ||
2394 | ,normalize (cross (z2,normalize ((z0) - (z1)))))) | ||
2395 | ,ext0_Float_3 (normalize ((z0) - (z1))) | ||
2396 | ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3 | ||
2397 | (z0))); | ||
2398 | } | ||
2399 | mat4 perspective(float z0,float z1,float z2,float z3) { | ||
2400 | return mat4 | ||
2401 | (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan | ||
2402 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
2403 | ((z2) / (2.0))))))) | ||
2404 | ,0.0 | ||
2405 | ,0.0 | ||
2406 | ,0.0) | ||
2407 | ,vec4 (0.0 | ||
2408 | ,((2.0) * (z0)) / (((z0) * (tan | ||
2409 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
2410 | ,0.0 | ||
2411 | ,0.0) | ||
2412 | ,vec4 ((((z3) * ((z0) * (tan | ||
2413 | ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan | ||
2414 | ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan | ||
2415 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
2416 | ((z2) / (2.0))))))) | ||
2417 | ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan | ||
2418 | ((z2) / (2.0)))))) / (((z0) * (tan | ||
2419 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
2420 | ,(0.0) - (((z1) + (z0)) / ((z1) - (z0))) | ||
2421 | ,-1.0) | ||
2422 | ,vec4 (0.0 | ||
2423 | ,0.0 | ||
2424 | ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0))) | ||
2425 | ,0.0)); | ||
2426 | } | ||
2427 | mat4 rotMatrixY(float z0) { | ||
2428 | return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0) | ||
2429 | ,vec4 (0.0,1.0,0.0,0.0) | ||
2430 | ,vec4 (sin (z0),0.0,cos (z0),0.0) | ||
2431 | ,vec4 (0.0,0.0,0.0,1.0)); | ||
2432 | } | ||
2433 | mat4 rotMatrix; | ||
1506 | mat4 rotMatrixX(float z0) { | 2434 | mat4 rotMatrixX(float z0) { |
1507 | return mat4 (vec4 (1.0,0.0,0.0,0.0) | 2435 | return mat4 (vec4 (1.0,0.0,0.0,0.0) |
1508 | ,vec4 (0.0,cos (z0),sin (z0),0.0) | 2436 | ,vec4 (0.0,cos (z0),sin (z0),0.0) |
@@ -1513,7 +2441,17 @@ Pipeline | |||
1513 | return (z1) * (vec4 (z0,z0,z0,1.0)); | 2441 | return (z1) * (vec4 (z0,z0,z0,1.0)); |
1514 | } | 2442 | } |
1515 | void main() { | 2443 | void main() { |
1516 | gl_Position = (MVP) * (scale (0.4,(rotMatrixX (1.3)) * (vi1))); | 2444 | r1_Float = vec4 (1.0,0.0,0.0,0.0); |
2445 | r2_Float = vec4 (0.0,1.0,0.0,0.0); | ||
2446 | r3_Float = vec4 (0.0,0.0,1.0,0.0); | ||
2447 | rotMatrix = ((perspective | ||
2448 | (0.1,100.0,0.5235987755982988,1.0)) * (lookat | ||
2449 | (vec3 (3.0,1.3,0.3) | ||
2450 | ,vec3 (0.0,0.0,0.0) | ||
2451 | ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY | ||
2452 | ((0.1308996938995747) * (Time))); | ||
2453 | gl_Position = (rotMatrix) * (scale | ||
2454 | (0.4,(rotMatrixX (1.3)) * (vi1))); | ||
1517 | vo1 = vi2; | 2455 | vo1 = vi2; |
1518 | } | 2456 | } |
1519 | """ | 2457 | """ |
@@ -1538,7 +2476,7 @@ Pipeline | |||
1538 | """ | 2476 | """ |
1539 | } | 2477 | } |
1540 | , Program | 2478 | , Program |
1541 | { programUniforms = fromList [ ( "MVP" , M44F ) ] | 2479 | { programUniforms = fromList [ ( "Time" , Float ) ] |
1542 | , programStreams = | 2480 | , programStreams = |
1543 | fromList | 2481 | fromList |
1544 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) | 2482 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) |
@@ -1552,10 +2490,67 @@ Pipeline | |||
1552 | vec4 texture2D(sampler2D s,vec2 uv) { | 2490 | vec4 texture2D(sampler2D s,vec2 uv) { |
1553 | return texture(s,uv); | 2491 | return texture(s,uv); |
1554 | } | 2492 | } |
1555 | uniform mat4 MVP; | 2493 | uniform float Time; |
1556 | in vec4 vi1; | 2494 | in vec4 vi1; |
1557 | in vec2 vi2; | 2495 | in vec2 vi2; |
1558 | smooth out vec2 vo1; | 2496 | smooth out vec2 vo1; |
2497 | vec4 r1_Float; | ||
2498 | vec4 r2_Float; | ||
2499 | vec4 r3_Float; | ||
2500 | vec4 ext0_Float_3(vec3 z0) { | ||
2501 | return vec4 ((z0).x,(z0).y,(z0).z,0.0); | ||
2502 | } | ||
2503 | vec3 neg_VecSFloat3(vec3 z0) { | ||
2504 | return - (z0); | ||
2505 | } | ||
2506 | mat4 translateBefore4(vec3 z0) { | ||
2507 | return mat4 | ||
2508 | (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0)); | ||
2509 | } | ||
2510 | mat4 lookat(vec3 z0,vec3 z1,vec3 z2) { | ||
2511 | return (transpose (mat4 | ||
2512 | (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1))))) | ||
2513 | ,ext0_Float_3 (cross (normalize ((z0) - (z1)) | ||
2514 | ,normalize (cross (z2,normalize ((z0) - (z1)))))) | ||
2515 | ,ext0_Float_3 (normalize ((z0) - (z1))) | ||
2516 | ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3 | ||
2517 | (z0))); | ||
2518 | } | ||
2519 | mat4 perspective(float z0,float z1,float z2,float z3) { | ||
2520 | return mat4 | ||
2521 | (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan | ||
2522 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
2523 | ((z2) / (2.0))))))) | ||
2524 | ,0.0 | ||
2525 | ,0.0 | ||
2526 | ,0.0) | ||
2527 | ,vec4 (0.0 | ||
2528 | ,((2.0) * (z0)) / (((z0) * (tan | ||
2529 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
2530 | ,0.0 | ||
2531 | ,0.0) | ||
2532 | ,vec4 ((((z3) * ((z0) * (tan | ||
2533 | ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan | ||
2534 | ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan | ||
2535 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
2536 | ((z2) / (2.0))))))) | ||
2537 | ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan | ||
2538 | ((z2) / (2.0)))))) / (((z0) * (tan | ||
2539 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
2540 | ,(0.0) - (((z1) + (z0)) / ((z1) - (z0))) | ||
2541 | ,-1.0) | ||
2542 | ,vec4 (0.0 | ||
2543 | ,0.0 | ||
2544 | ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0))) | ||
2545 | ,0.0)); | ||
2546 | } | ||
2547 | mat4 rotMatrixY(float z0) { | ||
2548 | return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0) | ||
2549 | ,vec4 (0.0,1.0,0.0,0.0) | ||
2550 | ,vec4 (sin (z0),0.0,cos (z0),0.0) | ||
2551 | ,vec4 (0.0,0.0,0.0,1.0)); | ||
2552 | } | ||
2553 | mat4 rotMatrix; | ||
1559 | mat4 rotMatrixX(float z0) { | 2554 | mat4 rotMatrixX(float z0) { |
1560 | return mat4 (vec4 (1.0,0.0,0.0,0.0) | 2555 | return mat4 (vec4 (1.0,0.0,0.0,0.0) |
1561 | ,vec4 (0.0,cos (z0),sin (z0),0.0) | 2556 | ,vec4 (0.0,cos (z0),sin (z0),0.0) |
@@ -1566,7 +2561,17 @@ Pipeline | |||
1566 | return (z1) * (vec4 (z0,z0,z0,1.0)); | 2561 | return (z1) * (vec4 (z0,z0,z0,1.0)); |
1567 | } | 2562 | } |
1568 | void main() { | 2563 | void main() { |
1569 | gl_Position = (MVP) * (scale (0.4,(rotMatrixX (1.4)) * (vi1))); | 2564 | r1_Float = vec4 (1.0,0.0,0.0,0.0); |
2565 | r2_Float = vec4 (0.0,1.0,0.0,0.0); | ||
2566 | r3_Float = vec4 (0.0,0.0,1.0,0.0); | ||
2567 | rotMatrix = ((perspective | ||
2568 | (0.1,100.0,0.5235987755982988,1.0)) * (lookat | ||
2569 | (vec3 (3.0,1.3,0.3) | ||
2570 | ,vec3 (0.0,0.0,0.0) | ||
2571 | ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY | ||
2572 | ((0.1308996938995747) * (Time))); | ||
2573 | gl_Position = (rotMatrix) * (scale | ||
2574 | (0.4,(rotMatrixX (1.4)) * (vi1))); | ||
1570 | vo1 = vi2; | 2575 | vo1 = vi2; |
1571 | } | 2576 | } |
1572 | """ | 2577 | """ |
@@ -1596,7 +2601,7 @@ Pipeline | |||
1596 | { slotName = "stream4" | 2601 | { slotName = "stream4" |
1597 | , slotStreams = | 2602 | , slotStreams = |
1598 | fromList [ ( "position4" , V4F ) , ( "vertexUV" , V2F ) ] | 2603 | fromList [ ( "position4" , V4F ) , ( "vertexUV" , V2F ) ] |
1599 | , slotUniforms = fromList [ ( "MVP" , M44F ) ] | 2604 | , slotUniforms = fromList [ ( "Time" , Float ) ] |
1600 | , slotPrimitive = Triangles | 2605 | , slotPrimitive = Triangles |
1601 | , slotPrograms = | 2606 | , slotPrograms = |
1602 | [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 ] | 2607 | [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 ] |
diff --git a/testdata/editor-examples/Tetrahedron.lc b/testdata/editor-examples/Tetrahedron.lc index 0aab3e39..cc790218 100644 --- a/testdata/editor-examples/Tetrahedron.lc +++ b/testdata/editor-examples/Tetrahedron.lc | |||
@@ -8,12 +8,15 @@ tetrahedron = | |||
8 | f x = (x + sin x + sin (1.1 * x)) `mod` 4 * 2 | 8 | f x = (x + sin x + sin (1.1 * x)) `mod` 4 * 2 |
9 | 9 | ||
10 | makeFrame (time :: Float) | 10 | makeFrame (time :: Float) |
11 | (projmat :: Mat 4 4 Float) | ||
12 | (vertexstream :: PrimitiveStream Triangle ((Vec 4 Float))) | 11 | (vertexstream :: PrimitiveStream Triangle ((Vec 4 Float))) |
13 | 12 | ||
14 | = imageFrame (emptyDepthImage 1, emptyColorImage navy) | 13 | = imageFrame (emptyDepthImage 1, emptyColorImage navy) |
15 | `overlay` accumulablefragments | 14 | `overlay` accumulablefragments |
16 | where | 15 | where |
16 | projmat = perspective 0.1 100.0 (30 * pi / 180) 1.0 | ||
17 | .*. lookat (V3 3.0 1.3 0.3) (V3 0.0 0.0 0.0) (V3 0.0 1.0 0.0) | ||
18 | .*. rotMatrixY (pi / 24.0 * time) | ||
19 | |||
17 | accumulablefragments | 20 | accumulablefragments |
18 | = vertexstream | 21 | = vertexstream |
19 | & mapPrimitives (\((x)) -> (scale 0.5 (projmat *. x), x)) | 22 | & mapPrimitives (\((x)) -> (scale 0.5 (projmat *. x), x)) |
@@ -24,7 +27,6 @@ makeFrame (time :: Float) | |||
24 | 27 | ||
25 | main = renderFrame $ | 28 | main = renderFrame $ |
26 | makeFrame (Uniform "Time") | 29 | makeFrame (Uniform "Time") |
27 | (Uniform "MVP") | ||
28 | tetrahedronStream | 30 | tetrahedronStream |
29 | 31 | ||
30 | tetrahedronStream = fetchArrays ((map (\v -> V4 v%x v%y v%z 1) tetrahedron)) | 32 | tetrahedronStream = fetchArrays ((map (\v -> V4 v%x v%y v%z 1) tetrahedron)) |
diff --git a/testdata/editor-examples/Tetrahedron.out b/testdata/editor-examples/Tetrahedron.out index 64583387..1f2372ec 100644 --- a/testdata/editor-examples/Tetrahedron.out +++ b/testdata/editor-examples/Tetrahedron.out | |||
@@ -15,8 +15,7 @@ Pipeline | |||
15 | ] | 15 | ] |
16 | , programs = | 16 | , programs = |
17 | [ Program | 17 | [ Program |
18 | { programUniforms = | 18 | { programUniforms = fromList [ ( "Time" , Float ) ] |
19 | fromList [ ( "MVP" , M44F ) , ( "Time" , Float ) ] | ||
20 | , programStreams = | 19 | , programStreams = |
21 | fromList | 20 | fromList |
22 | [ ( "vi1" , Parameter { name = "attribute_0" , ty = V4F } ) ] | 21 | [ ( "vi1" , Parameter { name = "attribute_0" , ty = V4F } ) ] |
@@ -28,14 +27,79 @@ Pipeline | |||
28 | vec4 texture2D(sampler2D s,vec2 uv) { | 27 | vec4 texture2D(sampler2D s,vec2 uv) { |
29 | return texture(s,uv); | 28 | return texture(s,uv); |
30 | } | 29 | } |
31 | uniform mat4 MVP; | 30 | uniform float Time; |
32 | in vec4 vi1; | 31 | in vec4 vi1; |
33 | smooth out vec4 vo1; | 32 | smooth out vec4 vo1; |
33 | vec4 r1_Float; | ||
34 | vec4 r2_Float; | ||
35 | vec4 r3_Float; | ||
36 | vec4 ext0_Float_3(vec3 z0) { | ||
37 | return vec4 ((z0).x,(z0).y,(z0).z,0.0); | ||
38 | } | ||
39 | vec3 neg_VecSFloat3(vec3 z0) { | ||
40 | return - (z0); | ||
41 | } | ||
42 | mat4 translateBefore4(vec3 z0) { | ||
43 | return mat4 | ||
44 | (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0)); | ||
45 | } | ||
46 | mat4 lookat(vec3 z0,vec3 z1,vec3 z2) { | ||
47 | return (transpose (mat4 | ||
48 | (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1))))) | ||
49 | ,ext0_Float_3 (cross (normalize ((z0) - (z1)) | ||
50 | ,normalize (cross (z2,normalize ((z0) - (z1)))))) | ||
51 | ,ext0_Float_3 (normalize ((z0) - (z1))) | ||
52 | ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3 | ||
53 | (z0))); | ||
54 | } | ||
55 | mat4 perspective(float z0,float z1,float z2,float z3) { | ||
56 | return mat4 | ||
57 | (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan | ||
58 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
59 | ((z2) / (2.0))))))) | ||
60 | ,0.0 | ||
61 | ,0.0 | ||
62 | ,0.0) | ||
63 | ,vec4 (0.0 | ||
64 | ,((2.0) * (z0)) / (((z0) * (tan | ||
65 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
66 | ,0.0 | ||
67 | ,0.0) | ||
68 | ,vec4 ((((z3) * ((z0) * (tan | ||
69 | ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan | ||
70 | ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan | ||
71 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
72 | ((z2) / (2.0))))))) | ||
73 | ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan | ||
74 | ((z2) / (2.0)))))) / (((z0) * (tan | ||
75 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
76 | ,(0.0) - (((z1) + (z0)) / ((z1) - (z0))) | ||
77 | ,-1.0) | ||
78 | ,vec4 (0.0 | ||
79 | ,0.0 | ||
80 | ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0))) | ||
81 | ,0.0)); | ||
82 | } | ||
83 | mat4 rotMatrixY(float z0) { | ||
84 | return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0) | ||
85 | ,vec4 (0.0,1.0,0.0,0.0) | ||
86 | ,vec4 (sin (z0),0.0,cos (z0),0.0) | ||
87 | ,vec4 (0.0,0.0,0.0,1.0)); | ||
88 | } | ||
34 | vec4 scale(float z0,vec4 z1) { | 89 | vec4 scale(float z0,vec4 z1) { |
35 | return (z1) * (vec4 (z0,z0,z0,1.0)); | 90 | return (z1) * (vec4 (z0,z0,z0,1.0)); |
36 | } | 91 | } |
37 | void main() { | 92 | void main() { |
38 | gl_Position = scale (0.5,(MVP) * (vi1)); | 93 | r1_Float = vec4 (1.0,0.0,0.0,0.0); |
94 | r2_Float = vec4 (0.0,1.0,0.0,0.0); | ||
95 | r3_Float = vec4 (0.0,0.0,1.0,0.0); | ||
96 | gl_Position = scale | ||
97 | (0.5 | ||
98 | ,(((perspective (0.1,100.0,0.5235987755982988,1.0)) * (lookat | ||
99 | (vec3 (3.0,1.3,0.3) | ||
100 | ,vec3 (0.0,0.0,0.0) | ||
101 | ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY | ||
102 | ((0.1308996938995747) * (Time)))) * (vi1)); | ||
39 | vo1 = vi1; | 103 | vo1 = vi1; |
40 | } | 104 | } |
41 | """ | 105 | """ |
diff --git a/testdata/editor-examples/Texturing.lc b/testdata/editor-examples/Texturing.lc index d4b17f03..05478d4e 100644 --- a/testdata/editor-examples/Texturing.lc +++ b/testdata/editor-examples/Texturing.lc | |||
@@ -1,9 +1,13 @@ | |||
1 | makeFrame (projmat :: Mat 4 4 Float) | 1 | makeFrame (time :: Float) |
2 | (vertexstream :: PrimitiveStream Triangle (Vec 4 Float,Vec 2 Float)) | 2 | (vertexstream :: PrimitiveStream Triangle (Vec 4 Float,Vec 2 Float)) |
3 | 3 | ||
4 | = imageFrame (emptyDepthImage 1, emptyColorImage navy) | 4 | = imageFrame (emptyDepthImage 1, emptyColorImage navy) |
5 | `overlay` fragments | 5 | `overlay` fragments |
6 | where | 6 | where |
7 | projmat = perspective 0.1 100.0 (30 * pi / 180) 1.0 | ||
8 | .*. lookat (V3 3.0 1.3 0.3) (V3 0.0 0.0 0.0) (V3 0.0 1.0 0.0) | ||
9 | .*. rotMatrixY (pi / 24.0 * time) | ||
10 | |||
7 | sampler = Sampler LinearFilter MirroredRepeat $ Texture2DSlot "Diffuse" | 11 | sampler = Sampler LinearFilter MirroredRepeat $ Texture2DSlot "Diffuse" |
8 | fragments = | 12 | fragments = |
9 | vertexstream | 13 | vertexstream |
@@ -13,6 +17,6 @@ makeFrame (projmat :: Mat 4 4 Float) | |||
13 | & accumulateWith (DepthOp Less True, ColorOp NoBlending (V4 True True True True)) | 17 | & accumulateWith (DepthOp Less True, ColorOp NoBlending (V4 True True True True)) |
14 | 18 | ||
15 | main = renderFrame $ | 19 | main = renderFrame $ |
16 | makeFrame (Uniform "MVP") | 20 | makeFrame (Uniform "Time") |
17 | (fetch "stream4" (Attribute "position4", Attribute "vertexUV")) | 21 | (fetch "stream4" (Attribute "position4", Attribute "vertexUV")) |
18 | 22 | ||
diff --git a/testdata/editor-examples/Texturing.out b/testdata/editor-examples/Texturing.out index 6b1b8109..96240bd5 100644 --- a/testdata/editor-examples/Texturing.out +++ b/testdata/editor-examples/Texturing.out | |||
@@ -16,7 +16,7 @@ Pipeline | |||
16 | , programs = | 16 | , programs = |
17 | [ Program | 17 | [ Program |
18 | { programUniforms = | 18 | { programUniforms = |
19 | fromList [ ( "Diffuse" , FTexture2D ) , ( "MVP" , M44F ) ] | 19 | fromList [ ( "Diffuse" , FTexture2D ) , ( "Time" , Float ) ] |
20 | , programStreams = | 20 | , programStreams = |
21 | fromList | 21 | fromList |
22 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) | 22 | [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) |
@@ -30,15 +30,80 @@ Pipeline | |||
30 | vec4 texture2D(sampler2D s,vec2 uv) { | 30 | vec4 texture2D(sampler2D s,vec2 uv) { |
31 | return texture(s,uv); | 31 | return texture(s,uv); |
32 | } | 32 | } |
33 | uniform mat4 MVP; | 33 | uniform float Time; |
34 | in vec4 vi1; | 34 | in vec4 vi1; |
35 | in vec2 vi2; | 35 | in vec2 vi2; |
36 | smooth out vec2 vo1; | 36 | smooth out vec2 vo1; |
37 | vec4 r1_Float; | ||
38 | vec4 r2_Float; | ||
39 | vec4 r3_Float; | ||
40 | vec4 ext0_Float_3(vec3 z0) { | ||
41 | return vec4 ((z0).x,(z0).y,(z0).z,0.0); | ||
42 | } | ||
43 | vec3 neg_VecSFloat3(vec3 z0) { | ||
44 | return - (z0); | ||
45 | } | ||
46 | mat4 translateBefore4(vec3 z0) { | ||
47 | return mat4 | ||
48 | (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0)); | ||
49 | } | ||
50 | mat4 lookat(vec3 z0,vec3 z1,vec3 z2) { | ||
51 | return (transpose (mat4 | ||
52 | (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1))))) | ||
53 | ,ext0_Float_3 (cross (normalize ((z0) - (z1)) | ||
54 | ,normalize (cross (z2,normalize ((z0) - (z1)))))) | ||
55 | ,ext0_Float_3 (normalize ((z0) - (z1))) | ||
56 | ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3 | ||
57 | (z0))); | ||
58 | } | ||
59 | mat4 perspective(float z0,float z1,float z2,float z3) { | ||
60 | return mat4 | ||
61 | (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan | ||
62 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
63 | ((z2) / (2.0))))))) | ||
64 | ,0.0 | ||
65 | ,0.0 | ||
66 | ,0.0) | ||
67 | ,vec4 (0.0 | ||
68 | ,((2.0) * (z0)) / (((z0) * (tan | ||
69 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
70 | ,0.0 | ||
71 | ,0.0) | ||
72 | ,vec4 ((((z3) * ((z0) * (tan | ||
73 | ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan | ||
74 | ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan | ||
75 | ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan | ||
76 | ((z2) / (2.0))))))) | ||
77 | ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan | ||
78 | ((z2) / (2.0)))))) / (((z0) * (tan | ||
79 | ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0)))))) | ||
80 | ,(0.0) - (((z1) + (z0)) / ((z1) - (z0))) | ||
81 | ,-1.0) | ||
82 | ,vec4 (0.0 | ||
83 | ,0.0 | ||
84 | ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0))) | ||
85 | ,0.0)); | ||
86 | } | ||
87 | mat4 rotMatrixY(float z0) { | ||
88 | return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0) | ||
89 | ,vec4 (0.0,1.0,0.0,0.0) | ||
90 | ,vec4 (sin (z0),0.0,cos (z0),0.0) | ||
91 | ,vec4 (0.0,0.0,0.0,1.0)); | ||
92 | } | ||
37 | vec4 scale(float z0,vec4 z1) { | 93 | vec4 scale(float z0,vec4 z1) { |
38 | return (z1) * (vec4 (z0,z0,z0,1.0)); | 94 | return (z1) * (vec4 (z0,z0,z0,1.0)); |
39 | } | 95 | } |
40 | void main() { | 96 | void main() { |
41 | gl_Position = scale (0.5,(MVP) * (vi1)); | 97 | r1_Float = vec4 (1.0,0.0,0.0,0.0); |
98 | r2_Float = vec4 (0.0,1.0,0.0,0.0); | ||
99 | r3_Float = vec4 (0.0,0.0,1.0,0.0); | ||
100 | gl_Position = scale | ||
101 | (0.5 | ||
102 | ,(((perspective (0.1,100.0,0.5235987755982988,1.0)) * (lookat | ||
103 | (vec3 (3.0,1.3,0.3) | ||
104 | ,vec3 (0.0,0.0,0.0) | ||
105 | ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY | ||
106 | ((0.1308996938995747) * (Time)))) * (vi1)); | ||
42 | vo1 = vi2; | 107 | vo1 = vi2; |
43 | } | 108 | } |
44 | """ | 109 | """ |
@@ -64,7 +129,7 @@ Pipeline | |||
64 | , slotStreams = | 129 | , slotStreams = |
65 | fromList [ ( "position4" , V4F ) , ( "vertexUV" , V2F ) ] | 130 | fromList [ ( "position4" , V4F ) , ( "vertexUV" , V2F ) ] |
66 | , slotUniforms = | 131 | , slotUniforms = |
67 | fromList [ ( "Diffuse" , FTexture2D ) , ( "MVP" , M44F ) ] | 132 | fromList [ ( "Diffuse" , FTexture2D ) , ( "Time" , Float ) ] |
68 | , slotPrimitive = Triangles | 133 | , slotPrimitive = Triangles |
69 | , slotPrograms = [ 0 ] | 134 | , slotPrograms = [ 0 ] |
70 | } | 135 | } |