Jump to content

  • Log In with Google      Sign In   
  • Create Account

Problem with depth test


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
6 replies to this topic

#1 manasij7479   Members   -  Reputation: 104

Like
0Likes
Like

Posted 17 March 2014 - 02:33 AM

I am loading a .obj model with assimp.
Simple models work fine, but as soon as I make something like a taurus, I get some back faces appearing.

http://imgur.com/4xKDiYX

The part where I turn depth testing on is:
 

	glEnable(GL_CULL_FACE);
	glCullFace(GL_BACK);
	glFrontFace(GL_CCW);
	
	glEnable(GL_DEPTH_TEST);
	glDepthFunc(GL_LEQUAL);

(I'm clearing both the colour and depth buffer)
Any guess about what I'm messing up?

(I'll post or link more code if needed later)
 


Edited by manasij7479, 17 March 2014 - 02:33 AM.


Sponsor:

#2 sgt_barnes   Members   -  Reputation: 585

Like
1Likes
Like

Posted 17 March 2014 - 09:41 AM

Just for clarification: Back face culling and depth buffer are two completely independent features of OpenGL.

 

I suspect that the two get in the way of each other in your code.

 

Try to disable back face culling and rely solely on the depth buffer. Is it getting better or worse?



#3 3TATUK2   Members   -  Reputation: 730

Like
0Likes
Like

Posted 17 March 2014 - 11:48 AM

Try reversing the winding order?



#4 JohnnyCode   Members   -  Reputation: 214

Like
0Likes
Like

Posted 17 March 2014 - 05:50 PM

post near nad far plane values of your projection matrix. In general, you should tweek them so that f/n is close to 24 bit integer capability. Setting for example near value to 0.0001 and far value to 100000.0 will result in depth inaccuracy.



#5 manasij7479   Members   -  Reputation: 104

Like
0Likes
Like

Posted 18 March 2014 - 04:47 AM


Try to disable back face culling and rely solely on the depth buffer. Is it getting better or worse?

 

If I turn off face culling, I get a lot more black strips. So, I'd say worse.

 

 

Try reversing the winding order?

The model was made in Blender.
If I reverse it when importing, the opposite places will appear coloured.
Can I do something like change it on the fly depending on which face is facing the light source ?

 

post near nad far plane values of your projection matrix. In general, you should tweek them so that f/n is close to 24 bit integer capability. Setting for example near value to 0.0001 and far value to 100000.0 will result in depth inaccuracy.

glm::mat4 p = glm::perspective(60.0f,1000*1.0f/600,0.1f,100.0f);

Much more conservative, I think.


Edited by manasij7479, 18 March 2014 - 04:48 AM.


#6 dpadam450   Members   -  Reputation: 921

Like
0Likes
Like

Posted 18 March 2014 - 11:20 AM

From what I can tell the issue is the model itself. It doesn't look like the taurus should even extend that far to the right if you look at the silhouette from the top and bottom. I think you have another issue. Have you tried looking at an obj of say a car or something online for free? Check out turbosquid and see if one of those works. Seems like there is some kind of issue with the file you have.



#7 tanzanite7   Members   -  Reputation: 1291

Like
0Likes
Like

Posted 19 March 2014 - 05:25 AM

http://imgur.com/4xKDiYX

I do not see any OpenGL error checking - add that: https://www.opengl.org/wiki/GLAPI/glGetError

The render looks distinctively in triangle-draw order - ie, there seems to be no depth testing (the near/far range is good). So, does your framebuffer/rendertarget actually HAVE a depth buffer? glEnable(GL_DEPTH_TEST) can not have any effect when you don't have a depth buffer to begin with.

Edited by tanzanite7, 19 March 2014 - 05:31 AM.





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