зеркало из https://github.com/stride3d/xkslang.git
103 строки
1.9 KiB
GLSL
103 строки
1.9 KiB
GLSL
#version 110
|
|
|
|
uniform float d;
|
|
uniform vec4 bigColor, smallColor;
|
|
uniform vec4 otherColor;
|
|
|
|
varying float c;
|
|
|
|
uniform float threshhold;
|
|
uniform float threshhold2;
|
|
uniform float threshhold3;
|
|
|
|
uniform float minimum;
|
|
|
|
varying vec4 BaseColor;
|
|
|
|
uniform bool b;
|
|
|
|
void main()
|
|
{
|
|
vec4 color = BaseColor;
|
|
vec4 color2;
|
|
|
|
color2 = otherColor;
|
|
|
|
if (c > d)
|
|
color += bigColor;
|
|
else
|
|
color += smallColor;
|
|
|
|
if (color.z < minimum)
|
|
return;
|
|
|
|
color.z++;
|
|
|
|
if (color.z > threshhold)
|
|
discard;
|
|
|
|
color++;
|
|
|
|
// Two path, different rest
|
|
if (color.w > threshhold2) {
|
|
if (color.z > threshhold2)
|
|
return;
|
|
else if (b)
|
|
color.z++;
|
|
else {
|
|
if (color.x < minimum) {
|
|
discard;
|
|
} else {
|
|
color++;
|
|
}
|
|
}
|
|
} else {
|
|
if (b)
|
|
discard;
|
|
else
|
|
return;
|
|
}
|
|
|
|
|
|
// // Two path, shared rest
|
|
// if (color.w > threshhold2) {
|
|
// if (color.z > threshhold2)
|
|
// return;
|
|
// else if (b)
|
|
// color++;
|
|
// else {
|
|
// if (color.x < minimum) {
|
|
// discard;
|
|
// } else {
|
|
// color++;
|
|
// }
|
|
// }
|
|
// } else {
|
|
// if (b)
|
|
// discard;
|
|
// else
|
|
// return;
|
|
// }
|
|
|
|
|
|
// // One path
|
|
// if (color.w > threshhold2) {
|
|
// if (color.z > threshhold2)
|
|
// return;
|
|
// else {
|
|
// if (color.x < minimum) {
|
|
// discard;
|
|
// } else {
|
|
// color++;
|
|
// }
|
|
// }
|
|
// } else {
|
|
// if (b)
|
|
// discard;
|
|
// else
|
|
// return;
|
|
// }
|
|
|
|
gl_FragColor = color * color2;
|
|
}
|