slightly better dots
This commit is contained in:
@@ -44,7 +44,7 @@ namespace Game
|
|||||||
double time = TestY <= 5 ? globalTime * 0.1f : 0.0f;
|
double time = TestY <= 5 ? globalTime * 0.1f : 0.0f;
|
||||||
if (TestX == 4 && TestY == 4)
|
if (TestX == 4 && TestY == 4)
|
||||||
{
|
{
|
||||||
bx::mtxTranslate(Transform.M, 0, 0, bx::lerp(2.0f, -30.0f, bx::sin(globalTime* 0.5f) * 0.5 + 0.5));
|
bx::mtxTranslate(Transform.M, 0, 0, bx::lerp(-20.0f, -32.0f, bx::sin(globalTime* 0.5f) * 0.5 + 0.5));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -5,35 +5,32 @@ $input v_uv0
|
|||||||
|
|
||||||
float circle(vec2 uv, float radius)
|
float circle(vec2 uv, float radius)
|
||||||
{
|
{
|
||||||
radius *= 0.8;
|
|
||||||
float distSq = uv.x * uv.x + uv.y * uv.y;
|
float distSq = uv.x * uv.x + uv.y * uv.y;
|
||||||
float result = distSq > radius * radius;
|
float result = distSq / (radius * radius);
|
||||||
return 1.0 - result;
|
return result < 1.0;
|
||||||
|
// return clamp(1.0 - result, 0.0, 1.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
float circles(vec2 uv, float level, float subLevel)
|
float circles(vec2 uv, float level, float subLevel)
|
||||||
{
|
{
|
||||||
vec2 offsetUv = uv + (0.5 + level * 0.5);
|
vec2 offsetUv = uv + 0.5;
|
||||||
vec2 bigUv = (offsetUv % 1.0) - 0.5;
|
vec2 baseUv = (offsetUv % 1.0) - 0.5;
|
||||||
float base = 0.0;
|
vec2 step1Uv = ((offsetUv + vec2(0.5, 0.5)) % 1.0) - 0.5;
|
||||||
if (subLevel > 0.25)
|
vec2 step2Uv = ((offsetUv + vec2(0.5, 0.0)) % 1.0) - 0.5;
|
||||||
{
|
vec2 step3Uv = ((offsetUv + vec2(0.0, 0.5)) % 1.0) - 0.5;
|
||||||
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));
|
|
||||||
|
|
||||||
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()
|
void main()
|
||||||
|
|||||||
Reference in New Issue
Block a user