Mat*_*lzl 2 c++ opengl 3d rendering
我刚开始加载一些obj文件并用opengl渲染它.当我渲染这些网格时,我得到了这个结果(见图片).我认为它有某种深度问题,但我不能自己弄明白.这是渲染的参数:
// Dark blue background
glClearColor(0.0f, 0.0f, 0.4f, 0.0f);
// Enable depth test
glEnable( GL_DEPTH_TEST );
// Cull triangles which normal is not towards the camera
glEnable(GL_CULL_FACE);
Run Code Online (Sandbox Code Playgroud)
我使用这个教程代码作为模板.https://code.google.com/p/opengl-tutorial-org/source/browse/#hg%2Ftutorial08_basic_shading
问题很简单,你正在做FRONT或BACK剔除.
目标文件包含CCW(Counter-Clock-Wise)或CW(Clock-Wise)坐标,因此从左到右或从右到左书写.你的openGL代码期望它反过来,所以它隐藏了你向后看的表面.
要检查这可以解决您的问题,只需取出glEnable(GL_CULL_FACE);
因为这似乎正在产生问题.
此外,您可以使用glCullFace(ENUM);
ENUM必须GL_FRONT
或GL_BACK
.如果你不是至少有两种情况都看不到你的网格(两种情况都意味着:GL_FRONT
或者GL_BACK
你只看到部分网格),这就是你的代码解释.obj的问题.或.obj使用不严格的表面向量.(CCW和CW的混合)
归档时间: |
|
查看次数: |
391 次 |
最近记录: |