| @@ -40,8 +40,31 @@ mat4 cluster = mat4(12.0, 5.0, 6.0, 13.0, | |||||
| void main() | void main() | ||||
| { | { | ||||
| vec4 col = pass_Color; | vec4 col = pass_Color; | ||||
| #if defined GL_ES | |||||
| int dx = int(mod(gl_FragCoord.x, 4.0)); | |||||
| int dy = int(mod(gl_FragCoord.y, 4.0)); | |||||
| /* Cluster */ | |||||
| float t; | |||||
| if (dx == 0) | |||||
| { | |||||
| if (dy == 0) t = cluster[0][0]; else if (dy == 1) t = cluster[0][1]; else if (dy == 2) t = cluster[0][2]; else t = cluster[0][3]; | |||||
| } | |||||
| else if (dx == 1) | |||||
| { | |||||
| if (dy == 0) t = cluster[1][0]; else if (dy == 1) t = cluster[1][1]; else if (dy == 2) t = cluster[1][2]; else t = cluster[1][3]; | |||||
| } | |||||
| else if (dx == 2) | |||||
| { | |||||
| if (dy == 0) t = cluster[2][0]; else if (dy == 1) t = cluster[2][1]; else if (dy == 2) t = cluster[2][2]; else t = cluster[2][3]; | |||||
| } | |||||
| else | |||||
| { | |||||
| if (dy == 0) t = cluster[3][0]; else if (dy == 1) t = cluster[3][1]; else if (dy == 2) t = cluster[3][2]; else t = cluster[3][3]; | |||||
| } | |||||
| #else | |||||
| float t = cluster[int(mod(gl_FragCoord.x, 4.0))] | float t = cluster[int(mod(gl_FragCoord.x, 4.0))] | ||||
| [int(mod(gl_FragCoord.y, 4.0))]; | [int(mod(gl_FragCoord.y, 4.0))]; | ||||
| #endif | |||||
| t = (t + 0.5) / 17.0; | t = (t + 0.5) / 17.0; | ||||
| col.x += fract(t - col.x) - t; | col.x += fract(t - col.x) - t; | ||||
| col.y += fract(t - col.y) - t; | col.y += fract(t - col.y) - t; | ||||