Thread: Shader Trouble
View Single Post
  #1  
Old 09-23-2012, 11:55 PM
leoaered leoaered is offline
Member
 
Join Date: Sep 2012
Posts: 5
Unhappy Shader Trouble

I'm trying to send the model view projection matrix from the CPU side into my shader, but it's not working as expected. I have two objects loaded into my scene, without any transformations: 'box.wrl' and 'ground.osgb'.

1) Sending over the projection matrix seems to mess up the order of rendering.
Code:
uniform vec4 S1, S2, S3, S4;
void main()
{
	gl_Position =  mat4(S1, S2, S3, S4) * gl_ModelViewMatrix * gl_Vertex;
	//gl_Position = ftransform();
}
When I pass in viz.MainWindow.getProjectionMatrix(), the scene looks OK, just the ground is rendered on top of the box. I don't really understand why, since if I use ftransform() or the inbuilt gl_ProjectionMatrix/gl_ModelViewProjectionMatrix the problem goes away. I also don't think there is a problem with the way I'm sending over the matrix, because I tried hardcoding the projection matrix into the vertex shader and had the same issue.

2) I can't get the view matrix to work, or I don't understand how to get it.
Code:
uniform vec4 S1, S2, S3, S4;
void main()
{
	gl_Position =  gl_ProjectionMatrix *  mat4(S1, S2, S3, S4) * gl_Vertex;
	//gl_Position = ftransform();
}
I tried passing viz.MainView.getMatrix() / viz.MainWindow.getMatrix() to no avail. The box doesn't show up properly. What am I missing? The model matrix should be identity because I didn't have any transforms on the objects.

*Sorry for the double post in Vizard 3.0 forum. I realized I posted on the wrong forum, and also have more useful information this time.
Attached Files
File Type: txt test.txt (1.3 KB, 1059 views)
Reply With Quote