首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenGL纹理贴图

OpenGL纹理贴图
EN

Stack Overflow用户
提问于 2010-07-16 06:31:06
回答 1查看 734关注 0票数 0

我用openGL在屏幕上绘制了两个对象,一个是使用GLU对象的球体,另一个是纹理贴图的星形。无论z坐标如何,纹理贴图的星形似乎总是在前面绘制。这是正常的openGL行为吗?有没有办法防止这种情况发生?

但是我想知道纹理贴图对象出现在前面是正常的吗?我不这么认为但我不确定..。

EN

回答 1

Stack Overflow用户

发布于 2012-02-13 19:13:06

这不是worldwind中的bug,这实际上是我们想要的行为。使用glVertex2f()与使用glVertex3f()和设置z= 0相同。因此,它只是在离观察者非常近的平面上绘制恒星(也取决于您的投影)。

要解决您的问题,可以使用glDepthMask(0)禁用深度写入,然后绘制星形,调用glDepthMask(1),然后绘制球体,球体现在将位于星形的前面。

也可以在星形上使用glDepthFunc(GL_GREATER)或在球体上使用glDisable(GL_DEPTH_TEST)来快速达到相同的效果。

要使任何事情变得更复杂(例如星形与球体相交),您需要使用矩阵将星形放置在所需位置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3260609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档