equal
deleted
inserted
replaced
|
1 // conical gradient shader |
|
2 #define M_PI 3.14159265358979323846 |
|
3 uniform sampler1D palette; |
|
4 uniform float angle; |
|
5 uniform vec3 inv_matrix_m0; |
|
6 uniform vec3 inv_matrix_m1; |
|
7 uniform vec3 inv_matrix_m2; |
|
8 |
|
9 vec4 brush() |
|
10 { |
|
11 mat3 mat; |
|
12 |
|
13 mat[0] = inv_matrix_m0; |
|
14 mat[1] = inv_matrix_m1; |
|
15 mat[2] = inv_matrix_m2; |
|
16 |
|
17 vec3 hcoords = mat * vec3(gl_FragCoord.xy, 1); |
|
18 vec2 A = hcoords.xy / hcoords.z; |
|
19 |
|
20 /* float val = fmod((atan2(-A.y, A.x) + angle) / (2.0 * M_PI), 1); */ |
|
21 if (abs(A.y) == abs(A.x)) |
|
22 A.y += 0.002; |
|
23 float t = (atan(-A.y, A.x) + angle) / (2.0 * M_PI); |
|
24 float val = t - floor(t); |
|
25 return texture1D(palette, val); |
|
26 } |
|
27 |