@@ -41,27 +41,6 @@ VertDataOut VSDefault(VertDataIn v_in)
41
41
return vert_out;
42
42
}
43
43
44
- float3 sdCircle (float2 uv, float r, float2 offset) {
45
-
46
- float x = uv.x - offset.x,
47
- y = uv.y - offset.y;
48
- return length (float2 (x,y)) - r;
49
- }
50
-
51
- float2 toPolar (float2 cartesian){
52
- float cdistance = length (cartesian);
53
- float angle = atan2 (cartesian.y, cartesian.x);
54
- return float2 (angle / 3.14159265 , cdistance);
55
- }
56
-
57
- float2 rotate (float2 samplePosition, float rotation){
58
- const float PI = 3.14159 ;
59
- float angle = rotation * PI * 2 * -1 ;
60
- float sine, cosine;
61
- sincos (angle, sine, cosine);
62
- return float2 (cosine * samplePosition.x + sine * samplePosition.y, cosine * samplePosition.y - sine * samplePosition.x);
63
- }
64
-
65
44
float sdBox (float2 p, float2 b )
66
45
{
67
46
float2 d = abs (p)-b;
@@ -100,12 +79,9 @@ float opOnionTri(float2 p,float r, float cr)
100
79
return abs (sdEquilateralTriangle (p,cr)) - r;
101
80
}
102
81
103
- float3 drawScene2 (float2 uv,float4 bg) {
104
- float3 outer_col = float3 (r1,g1,b1);
105
- float3 inner_col = float3 (r2,g2,b2);
82
+ float drawScene2 (float2 uv) {
106
83
float cr = rsize;
107
84
float res;
108
- float2 uv2 = toPolar (uv);
109
85
110
86
if (idsd>0.0 ) {
111
87
res = sdEquilateralTriangle (uv,cr);
@@ -123,25 +99,25 @@ float3 drawScene2(float2 uv,float4 bg) {
123
99
}
124
100
125
101
res = smoothstep (0 .,cr*0.4 ,res);
126
- float inner_blur = smoothstep (0.0 ,0.06 ,2.0 * abs (res));
127
- outer_col = lerp (inner_col, outer_col, inner_blur);
128
- outer_col = lerp (outer_col,bg.rgb,res);
129
- return outer_col;
130
-
102
+ return res;
131
103
}
132
104
133
105
float4 PassThrough (VertDataOut v_in) : TARGET
134
106
{
135
- float2 uv = v_in.uv;
136
- float4 orig = image.Sample (textureSampler, uv);
137
- uv -= 0.5 ;
138
- float2 mousePos = float2 (mouse_x,mouse_y);
139
- uv -= mousePos - 0.5 ;
140
- float aspect_ratio = float (width)/float (height);
141
- uv.x *= aspect_ratio;
142
- //uv =rotate(uv,toPolar(mousePos).y-itime*.25);
143
- float3 col = drawScene2 (uv,orig);
144
- return float4 (col,1.0 );
107
+ float3 outer_col = float3 (r1,g1,b1);
108
+ float3 inner_col = float3 (r2,g2,b2);
109
+ float2 uv = v_in.uv;
110
+ float4 orig = image.Sample (textureSampler, uv);
111
+ uv -= 0.5 ;
112
+ float2 mousePos = float2 (mouse_x,mouse_y);
113
+ uv -= mousePos - 0.5 ;
114
+ float aspect_ratio = float (width)/float (height);
115
+ uv.x *= aspect_ratio;
116
+ float res = drawScene2 (uv);
117
+ float inner_blur = smoothstep (0.0 ,0.06 ,2.0 * abs (res));
118
+ outer_col = saturate (lerp (inner_col, outer_col, inner_blur));
119
+ outer_col = lerp (outer_col,orig.rgb,res);
120
+ return float4 (outer_col,1.0 );
145
121
}
146
122
147
123
technique Draw
0 commit comments