Update dispersion shader
This commit is contained in:
1 parent
29a733d547
commit
016a140891
1 file changed
+3
-9
@@ -87,10 +87,6 @@ float circleMap(float x) {
|
||||
return 1.0 - sqrt(1.0 - x * x);
|
||||
}
|
||||
|
||||
float2 normalToTangent(float2 normal) {
|
||||
return float2(normal.y, -normal.x);
|
||||
}
|
||||
|
||||
half4 main(float2 coord) {
|
||||
float2 halfSize = size * 0.5;
|
||||
float2 centeredCoord = coord - halfSize;
|
||||
@@ -109,7 +105,7 @@ half4 main(float2 coord) {
|
||||
float4 maxGradRadius = float4(min(halfSize.x, halfSize.y));
|
||||
float4 gradRadius = min(cornerRadius * 1.5, maxGradRadius);
|
||||
float2 normal = gradSdRoundedRectangle(centeredCoord, halfSize, gradRadius);
|
||||
float2 tangent = normalToTangent(normal);
|
||||
float2 tangent = float2(normal.y, -normal.x);
|
||||
|
||||
half4 dispersedColor = half4(0.0);
|
||||
half4 weight = half4(0.0);
|
||||
@@ -121,14 +117,12 @@ half4 main(float2 coord) {
|
||||
half rMask = step(0.5, t);
|
||||
half gMask = step(0.25, t) * step(t, 0.75);
|
||||
half bMask = step(t, 0.5);
|
||||
half4 mask = half4(rMask, gMask, bMask, 0.0);
|
||||
half4 mask = half4(rMask, gMask, bMask, 1.0);
|
||||
dispersedColor += color * mask;
|
||||
weight += mask;
|
||||
}
|
||||
dispersedColor /= weight;
|
||||
|
||||
dispersedColor.a = image.eval(coord).a;
|
||||
return dispersedColor;
|
||||
return dispersedColor / weight;
|
||||
}"""
|
||||
|
||||
@Language("AGSL")
|
||||
|
||||
Reference in new issue
Block a user