[AGAL / Stage3D] Outline / Silhouette Shader

Started by
2 comments, last by bwhiting 11 years, 9 months ago
Hi Everybody,

i search for a good Outline Shader - So that i draw the Outline of my Mesh. I don't need complete Toon Shading or things like that. Just a Outline from my Mesh.

I have found this paper:

http://blogs.aerys.i...g/#comment-1593

And i have try to implement it in AGAL, with this Result:

va0 = VertexPosition
va3 = VertexNormal
vc0 = WorldToScreenMatrix
vc4 = CameraPosition
vc20 = Constants (.y = 0.04)

vertexShaderAssemblerColor.assemble(Context3DProgramType.VERTEX,
"sub vt0, va0,vc4\n" +
"dp3 vt1, va3, vt0\n" +
"slt vt2, vc20.x,vt1\n" +
"mov vt3, vc20.y\n" +
"mul vt4, vt2, va3.xyz\n" +
"mul vt4, vt4, vt3\n" +
"add vt5, va0, vt4\n"+
"m44 op ,vt5 vc0\n"

fc20 = Constants,x= 0.1
fc8 = Color

Context3DProgramType.FRAGMENT,
"tex ft0 v1 fs0<2d,linear,repeat,linear,mipnone>\n" +
"slt ft1 v4.x fc20.x\n" +
"mul ft2 ft1 fc8\n"


so, but there nothing happens - Or a white screen. Have somebody some cool Outline Shader or know what is wrong with my?

Greeting Stimpy
Advertisement
I have figured out, that my code can't be working because all my Normals look up. So i have a plane 2d mesh , not a picture - a mesh , but all my vertexes are on the X/Y Axis. All my Normals are going up. The shader takes the angle between cam position and normal, if i understood right. So that can't be working....

Have somebody an idea how to draw an outline for a mesh where the normals are all in the same direction?!
You need some value to distinguish between your model and the background. Often the depth and normal is take, but an alpha value (character = 1, background =0) will do the job too. Then use a sobel filter to detect the edges.
was going to suggest using edge detections too, rendering back-facing polys will also work if you do that with a slightly enlarged version of the model.
both have their costs through.

This topic is closed to new replies.

Advertisement