Implement varying width in bezierQuad
This commit is contained in:
+14
-3
@@ -8,12 +8,23 @@ float x = gBoundingBox.x;
|
|||||||
float y = gBoundingBox.y;
|
float y = gBoundingBox.y;
|
||||||
float z = gBoundingBox.z;
|
float z = gBoundingBox.z;
|
||||||
|
|
||||||
|
float w = 0.1;
|
||||||
|
|
||||||
|
float f (float a, float b)
|
||||||
|
{
|
||||||
|
float c = 1 / (1 - 2*b) ;
|
||||||
|
return c * (a - 0.5) + 0.5 ;
|
||||||
|
}
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
|
|
||||||
//float d = x - y - 1 + 2* sqrt(y);
|
//float d = x - y - 1 + 2* sqrt(y);
|
||||||
float d = sqrt(x) + sqrt(y) - 1;
|
float d = sqrt(x) + sqrt(y) - 1;
|
||||||
// if ( d < -0.1 || d > 0.1) { discard; }
|
float e = sqrt(f(x,w)) + sqrt(f(y,w)) - 1;
|
||||||
|
if ( d < 0 || e > 0) { discard; }
|
||||||
fColor = gColor;
|
fColor = gColor;
|
||||||
if ( d < -z*0.1 || d > z*0.1) { fColor = vec4 (0,1,0,1); }
|
// if ( d < 0) { fColor = vec4 (0,1,0,1); }
|
||||||
if ( d < -0.1 || d > 0.1) { fColor = vec4 (0,0,1,1); }
|
// if ( e > 0) { fColor = vec4 (0,0,1,1); }
|
||||||
|
// if ( d < z*z*0.0 || d > z*z*0.1+ 0.5) { fColor = vec4 (0,1,0,1); }
|
||||||
|
// if ( d < -0.1 || d > 0.1) { fColor = vec4 (0,0,1,1); }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,11 +11,14 @@ void main()
|
|||||||
vec3 pb = gl_in[1].gl_Position.xyz;
|
vec3 pb = gl_in[1].gl_Position.xyz;
|
||||||
vec3 pc = gl_in[2].gl_Position.xyz;
|
vec3 pc = gl_in[2].gl_Position.xyz;
|
||||||
|
|
||||||
|
// vec3 pa = vec3(paa.xy + 0.1 * (paa.xy - pca.xy), paa.z);
|
||||||
|
// vec3 pc = vec3(pca.xy + 0.1 * (pca.xy - paa.xy), pca.z);
|
||||||
|
|
||||||
gBoundingBox = vec3 (1,0,1);
|
gBoundingBox = vec3 (1,0,1);
|
||||||
gColor = vColor[0];
|
gColor = vColor[0];
|
||||||
gl_Position = vec4 (pa, 1);
|
gl_Position = vec4 (pa, 1);
|
||||||
EmitVertex();
|
EmitVertex();
|
||||||
gBoundingBox = vec3 (0,0,-0.9);
|
gBoundingBox = vec3 (0,0,0);
|
||||||
gColor = vColor[1];
|
gColor = vColor[1];
|
||||||
gl_Position = vec4 (pb, 1);
|
gl_Position = vec4 (pb, 1);
|
||||||
EmitVertex();
|
EmitVertex();
|
||||||
|
|||||||
@@ -121,7 +121,7 @@ worldPictures w
|
|||||||
where tst x y sc t = translate x y $ scale sc sc $ color white $ text t
|
where tst x y sc t = translate x y $ scale sc sc $ color white $ text t
|
||||||
|
|
||||||
testPic :: World -> [Picture]
|
testPic :: World -> [Picture]
|
||||||
testPic w = [setLayer 1 $ onLayerL [99] $ color red $ bezierQuad (-90,0) (90,-50) (-200,200) ]
|
testPic w = [setLayer 1 $ onLayerL [99] $ color red $ bezierQuad (-200,200) (-200,-200) (200,200) ]
|
||||||
-- $ uncurry translate (mouseWorldPos w)
|
-- $ uncurry translate (mouseWorldPos w)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user