2011-10-03 69 views
1

对不起,如果这是一个简单的修复,但我似乎无法找到解决方案。JOGL纹理是半透明的

我创建了一个通过制作四个四边形进行纹理化的框。但是,当我旋转框以查看其渲染方式时,应该不应该看到的纹理显示在其他纹理的顶部。

我认为这与它们渲染的顺序有关。我首先渲染盒子的正面,这样当我向后旋转时,正面纹理会显示在背面。

我记得看到有关'剔除'的内容,但找不到任何文档。任何帮助指出我在正确的方向将不胜感激!

+0

你能不能给我们稍微详细说说你画一个框,但你还别说4个面,而一箱?通常有六个,你确定你在正确的地方画了你的脸吗?如果你只是使用颜色而不是纹理来区分脸部会发生什么? – DJClayworth

回答

0

这听起来(虽然看起来会更好,这意味着一些代码),而不是一个深度测试问题,而不是剔除问题。你确定你启用了深度测试(glEnable(GL_DEPTH_TEST))并检索了一个深度缓冲区的上下文吗?

+0

@DJClayworth不,他们为什么要这样做?如果你先画正面,如果深度测试被禁用,背面和背面始终可以在每个视角的正面看到。也许您会谈到背面剔除已启用的情况,但首先,这不是默认情况,第二种情况,背面扑杀应该而是用于优化目的而不是用于隐藏表面去除,因为后者仅适用于像立方体这样的简单凸面对象。 –

+0

对不起,我的错。我读深度测试作为深度削减。 – DJClayworth

1

首先确保您启用了深度测试,并且方框中的“z”值也是正确的。你的问题似乎是你使用相同的深度值的四边形或只是深度测试禁用。

快速搜索给了我这个链接。希望它会有所帮助。 http://www.leolol.com/drupal/tutorials/3d-graphics-jogl-opengl-etc/jogl-lesson-4-3d-shapes-and-rotation-opengl

PS:你的这个帖子标题不支持您的问题:(

+0

我对2D项目启用了深度测试,导致它们根本不透明。您的评论让我走上了正轨! – dac2009