Rex Xu | 73e3ce7 | 2016-04-27 18:48:17 +0800 | [diff] [blame] | 1 | #version 420 |
John Kessenich | 39374da | 2015-05-15 21:32:46 +0000 | [diff] [blame] | 2 | |
John Kessenich | 04bb8a0 | 2015-12-12 12:28:14 -0700 | [diff] [blame] | 3 | in mat3x4 m1; |
4 | in mat3x4 m2; | ||||
5 | in float f; | ||||
6 | in vec3 v3; | ||||
7 | in vec4 v4; | ||||
John Kessenich | 39374da | 2015-05-15 21:32:46 +0000 | [diff] [blame] | 8 | |
John Kessenich | 04bb8a0 | 2015-12-12 12:28:14 -0700 | [diff] [blame] | 9 | out vec4 color; |
John Kessenich | 39374da | 2015-05-15 21:32:46 +0000 | [diff] [blame] | 10 | |
11 | void main() | ||||
12 | { | ||||
John Kessenich | 04bb8a0 | 2015-12-12 12:28:14 -0700 | [diff] [blame] | 13 | mat3x4 sum34; |
Rex Xu | 73e3ce7 | 2016-04-27 18:48:17 +0800 | [diff] [blame] | 14 | dmat3x4 dm; |
John Kessenich | 04bb8a0 | 2015-12-12 12:28:14 -0700 | [diff] [blame] | 15 | vec3 sum3; |
16 | vec4 sum4; | ||||
John Kessenich | 39374da | 2015-05-15 21:32:46 +0000 | [diff] [blame] | 17 | |
John Kessenich | 04bb8a0 | 2015-12-12 12:28:14 -0700 | [diff] [blame] | 18 | sum34 = m1 - m2; |
19 | sum34 += m1 * f; | ||||
20 | sum34 += f * m1; | ||||
21 | sum34 /= matrixCompMult(m1, m2); | ||||
22 | sum34 += m1 / f; | ||||
23 | sum34 += f / m1; | ||||
24 | sum34 += f; | ||||
25 | sum34 -= f; | ||||
Rex Xu | 73e3ce7 | 2016-04-27 18:48:17 +0800 | [diff] [blame] | 26 | dm = dmat3x4(sum34); |
27 | sum34 = mat3x4(dm); | ||||
John Kessenich | 39374da | 2015-05-15 21:32:46 +0000 | [diff] [blame] | 28 | |
John Kessenich | 04bb8a0 | 2015-12-12 12:28:14 -0700 | [diff] [blame] | 29 | sum3 = v4 * m2; |
30 | sum4 = m2 * v3; | ||||
John Kessenich | 39374da | 2015-05-15 21:32:46 +0000 | [diff] [blame] | 31 | |
John Kessenich | 04bb8a0 | 2015-12-12 12:28:14 -0700 | [diff] [blame] | 32 | mat4x3 m43 = transpose(sum34); |
33 | mat4 m4 = m1 * m43; | ||||
34 | |||||
35 | sum4 = v4 * m4; | ||||
36 | |||||
37 | color = sum4; | ||||
38 | |||||
Rex Xu | 73e3ce7 | 2016-04-27 18:48:17 +0800 | [diff] [blame] | 39 | ++sum34; |
40 | --sum34; | ||||
John Kessenich | 04bb8a0 | 2015-12-12 12:28:14 -0700 | [diff] [blame] | 41 | |
42 | sum34 += mat3x4(f); | ||||
43 | sum34 += mat3x4(v3, f, v3, f, v3, f); | ||||
44 | |||||
45 | color += sum3 * m43 + sum4; | ||||
John Kessenich | 39374da | 2015-05-15 21:32:46 +0000 | [diff] [blame] | 46 | } |