Hi Anders,

I see two problems with your shader. 

First it looks like you swaped shadow and jitter map coords. I suppose you want 
to generate shadow map coords with texgen. So texgen should produce unit 1 
texture coords. But most probably you should use view space (gl_EyePlane) 
coords for shadow coords.

Second it looks like lighting/ color math is completely absent so resulting 
lighting will be probably random.

Please have a look at Vertex shader in osgShadow::StandardShadowMap.cpp. Its 
quite generic and except jitter part it should contain all what you need for 
single light scenario.

Cheers,
Wojtek Lewandowski



From: Anders Backman 
Sent: Monday, June 07, 2010 3:27 PM
To: OpenSceneGraph Users 
Subject: [osg-users] vertex shader for SoftShadowMap FragmentShader.


Hi all.


Im trying to use a VertexShader to drive the SoftShadowMap implementation of 
the FragmentShader (which is present in the SoftShadowMap.cpp).


Problem is as usual, that when vertex shader is enabled, all automatic stuff 
are disabled, such as texture generation.
Now after browsing archive, surfing the net and looking through the GLSL book, 
I have come to the conclusion that the vertex shader below should be enough to 
drive the Fragmentshader:


void main( void )
{
  gl_Position = ftransform();
  gl_TexCoord[0] = gl_MultiTexCoord0;
  gl_TexCoord[1] = gl_MultiTexCoord1;


  // Emulate glTexGen (on unit 2)
  gl_TexCoord[2].s = dot(gl_Vertex, gl_ObjectPlaneS[2]);
  gl_TexCoord[2].t = dot(gl_Vertex, gl_ObjectPlaneT[2]);
  gl_TexCoord[2].p = dot(gl_Vertex, gl_ObjectPlaneR[2]);
  gl_TexCoord[2].q = dot(gl_Vertex, gl_ObjectPlaneQ[2]);


}


baseTexture - Texture unit = 0
osgShadow_shadowTexture - Texture unit = 1
osgShadow_jitterTexture - Texture unit = 2


But as soon as I enable this vertex shader, the shadow stops working.
I need to write my own vertex shader to calculate vertex pos in eye coordinates 
etc. Im basically trying to merge the shadows with other texturing, such as 
parallax mapping etc.


Any hints on how to write a vertex shader that will replace the fixed 
functionality for the SoftShadowMap Fragment shader (with base texture)??


/Anders

-- 




--------------------------------------------------------------------------------


_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to