feat: ignore some values in auto random

This commit is contained in:
2026-05-21 00:32:03 +02:00
parent bb84350591
commit 7dbce62182
7 changed files with 99 additions and 19 deletions
+8 -9
View File
@@ -9,21 +9,20 @@ out vec4 fragColor;
#include inc_map.glsl
uniform sampler2D iTex0;
uniform int iAutoRand;
uniform vec3 iGroup2_4[7];
void main() {
bool visible = iAutoRand < 1 && iGroup2_4[0].x > 0;
bool invert = iAutoRand < 1 && iGroup2_4[0].y > 0;
bool rect = iAutoRand < 1 && iGroup2_4[0].z > 0;
bool visible = iGroup2_4[0].x > 0;
bool invert = iGroup2_4[0].y > 0;
float rect = iGroup2_4[0].z;
vec2 uv2 = vUV;
if (visible) {
vec2 p1 = iAutoRand < 1 ? vec2(iGroup2_4[6].xy) : vec2(0);
vec2 p2 = iAutoRand < 1 ? vec2(iGroup2_4[1].xy) : vec2(0);
vec2 p3 = iAutoRand < 1 ? vec2(iGroup2_4[3].xy) : vec2(0);
vec2 p4 = iAutoRand < 1 ? vec2(iGroup2_4[5].xy) : vec2(0);
vec2 p1 = vec2(iGroup2_4[6].xy);
vec2 p2 = vec2(iGroup2_4[1].xy);
vec2 p3 = vec2(iGroup2_4[3].xy);
vec2 p4 = vec2(iGroup2_4[5].xy);
p2.x = 1 - p2.x;
p3.y = 1 - p3.y;
@@ -38,7 +37,7 @@ void main() {
if (visible) {
float mask = step(0, uv2.x) * step(-1, -uv2.x) * step(0, uv2.y) * step(-1, -uv2.y);
color *= mix(mask, 1 - mask, invert ? 1 : 0);
color = mix(color, mix(color, color + mask * vec4(1), step(uv2.x, 0.01) + step(uv2.y, 0.01) + step(1 - uv2.y, 0.01) + step(1 - uv2.x, 0.01)), rect ? 1 : 0);
color = mix(color, color + mask * vec4(1), rect * (step(uv2.x, 0.01) + step(uv2.y, 0.01) + step(1 - uv2.y, 0.01) + step(1 - uv2.x, 0.01)));
}
fragColor = color;