slightly better dots
This commit is contained in:
@@ -5,35 +5,32 @@ $input v_uv0
|
||||
|
||||
float circle(vec2 uv, float radius)
|
||||
{
|
||||
radius *= 0.8;
|
||||
float distSq = uv.x * uv.x + uv.y * uv.y;
|
||||
float result = distSq > radius * radius;
|
||||
return 1.0 - result;
|
||||
float result = distSq / (radius * radius);
|
||||
return result < 1.0;
|
||||
// return clamp(1.0 - result, 0.0, 1.0);
|
||||
}
|
||||
|
||||
float circles(vec2 uv, float level, float subLevel)
|
||||
{
|
||||
vec2 offsetUv = uv + (0.5 + level * 0.5);
|
||||
vec2 bigUv = (offsetUv % 1.0) - 0.5;
|
||||
float base = 0.0;
|
||||
if (subLevel > 0.25)
|
||||
{
|
||||
vec2 smallUv = (((offsetUv + 0.25) % 2.0) * 2.0) - 0.5;
|
||||
base += circle(smallUv, 0.5);
|
||||
}
|
||||
if (subLevel > 0.5)
|
||||
{
|
||||
vec2 smallUv = (((offsetUv - 0.75) % 2.0) * 2.0) - 0.5;
|
||||
base += circle(smallUv, 0.5);
|
||||
}
|
||||
if (subLevel > 0.75)
|
||||
{
|
||||
vec2 smallUv = (((offsetUv + 1.25) % 2.0) * 2.0) - 0.5;
|
||||
base += circle(smallUv, 0.5);
|
||||
}
|
||||
base += circle(bigUv, lerp(0.25, 0.5, 1.0 - subLevel));
|
||||
vec2 offsetUv = uv + 0.5;
|
||||
vec2 baseUv = (offsetUv % 1.0) - 0.5;
|
||||
vec2 step1Uv = ((offsetUv + vec2(0.5, 0.5)) % 1.0) - 0.5;
|
||||
vec2 step2Uv = ((offsetUv + vec2(0.5, 0.0)) % 1.0) - 0.5;
|
||||
vec2 step3Uv = ((offsetUv + vec2(0.0, 0.5)) % 1.0) - 0.5;
|
||||
|
||||
return base;
|
||||
float step = subLevel * 3.0;
|
||||
float step1 = clamp(step, 0.0, 1.0);
|
||||
float step2 = clamp(step - 1, 0.0, 1.0);
|
||||
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);
|
||||
|
||||
return min(sum, 1.0);
|
||||
}
|
||||
|
||||
void main()
|
||||
|
||||
Reference in New Issue
Block a user