Jump to content

  • Log In with Google      Sign In   
  • Create Account

[AGAL / Stage3D] Outline / Silhouette Shader


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
3 replies to this topic

#1 Stimpy1983   Members   -  Reputation: 110

Like
0Likes
Like

Posted 23 July 2012 - 09:17 AM

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

Edited by Stimpy1983, 23 July 2012 - 09:23 AM.


Sponsor:

#2 Stimpy1983   Members   -  Reputation: 110

Like
0Likes
Like

Posted 24 July 2012 - 06:37 AM

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?!

#3 Ashaman73   Crossbones+   -  Reputation: 7992

Like
0Likes
Like

Posted 25 July 2012 - 06:36 AM

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.

#4 bwhiting   Members   -  Reputation: 816

Like
0Likes
Like

Posted 25 July 2012 - 06:53 AM

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.




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS