【发布时间】:2009-04-26 21:59:22
【问题描述】:
我有一个简单的 OpenGL 应用程序,其中我在屏幕上显示了 2 个对象:
1) 粒子系统,其中每个粒子都使用 glTexImage2D() 调用进行纹理映射。在 drawEvent 函数中,我将其绘制为带有 4 个 glVertex3f 的 GL_TRIANGLE_STRIP。
2) 从目标文件加载的 3D 文本,其中每个点使用 glNewList/glGenLists 加载,并将每个点存储为 glVertex。我通过调用 glCallList 来绘制它。
问题是,只要我调用 glTexImage2D() 将我的粒子映射到 .bmp 文件,3D 文本就不会显示在屏幕上。粒子看起来不错。 (这不是预期的)
如果我不调用 glTexImage2D,我会看到 3D 文本和粒子系统。在这种情况下,粒子系统看起来很糟糕,因为我没有使用任何纹理贴图。 (这是意料之中的)
有谁知道为什么使用 call list 和 glTexImage2D 可能会相互冲突?
EDIT 我也忘了提到:我确实调用 glBindTexture(GL_TEXTURE_2D, this->texture);在调用粒子系统之前的drawLoop内部。
EDIT2 我只在系统启动时调用 glTexImage2D() 一次(当我对位图进行纹理映射时)
【问题讨论】: