Sign in to follow this  
Stimpy1983

[AGAL / Stage3D] Outline / Silhouette Shader

Recommended Posts

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:

[url="http://blogs.aerys.in/jeanmarc-leroux/2012/01/23/single-pass-cel-shading/#comment-1593"]http://blogs.aerys.i...g/#comment-1593[/url]

And i have try to implement it in AGAL, with this Result:
[code]
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"
[/code]

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

Greeting Stimpy Edited by Stimpy1983

Share this post


Link to post
Share on other sites
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?!

Share this post


Link to post
Share on other sites
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 [url="http://en.wikipedia.org/wiki/Sobel_operator"]sobel filter[/url] to detect the edges.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this