This commit is contained in:
Asuro
2025-02-11 01:56:28 +01:00
parent cace7b0ec0
commit 5bda220695
9 changed files with 87 additions and 26 deletions

View File

@@ -6,9 +6,11 @@ $input v_uv0
float circle(vec2 uv, float radius)
{
float distSq = uv.x * uv.x + uv.y * uv.y;
float result = distSq / (radius * radius);
return result < 1.0;
// return clamp(1.0 - result, 0.0, 1.0);
// float result = distSq / (radius * radius);
float result = sqrt(distSq) / radius / 2;
// float result = sqrt(distSq) / radius;
// return result < 1.0;
return clamp(1.0 - result, 0.0, 1.0);
}
float circles(vec2 uv, float level, float subLevel)
@@ -25,18 +27,23 @@ float circles(vec2 uv, float level, float subLevel)
float step3 = clamp(step - 2, 0.0, 1.0);
float sum = 0.0;
sum += circle(baseUv, lerp(0.5, 0.25, subLevel));
sum += circle(step1Uv, 0.25 * step1);
sum += circle(step2Uv, 0.25 * step2);
sum += circle(step3Uv, 0.25 * step3);
// sum += circle(baseUv, lerp(0.5, 0.25, subLevel));
// sum += circle(step1Uv, 0.25 * step1);
// sum += circle(step2Uv, 0.25 * step2);
// sum += circle(step3Uv, 0.25 * step3);
sum = circle(baseUv, lerp(0.5, 0.25, subLevel));
sum = max(sum, circle(step1Uv, 0.25 * step1));
sum = max(sum, circle(step2Uv, 0.25 * step2));
sum = max(sum, circle(step3Uv, 0.25 * step3));
return min(sum, 1.0);
}
void main()
{
float2 dx = ddx(v_uv0);
float2 dy = ddy(v_uv0);
float baseScale = 4.0;
float2 dx = ddx(v_uv0 * baseScale);
float2 dy = ddy(v_uv0 * baseScale);
float2x2 mat = float2x2(dx, dy);
float4 vectorized = float4(dx, dy);
float qq = dot(vectorized, vectorized);
@@ -47,7 +54,7 @@ void main()
float spacing = freq.y * exp2(2.0);
spacing *= 128.0; // TODO: check reference to see how to calculate this!
float spacingLog = log2(spacing);
float spacingLog = max(log2(spacing), 1.0);
int patternScaleLevel = floor(spacingLog);
float patternFractional = spacingLog - patternScaleLevel;