- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个简单的 OpenGL 应用程序,我在屏幕上显示了 2 个对象:
1) 粒子系统,其中每个粒子都使用 glTexImage2D() 调用进行纹理映射。在 drawEvent 函数中,我将其绘制为具有 4 个 glVertex3f 的 GL_TRIANGLE_STRIP。
2) 从目标文件加载的 3D 文本,其中使用 glNewList/glGenLists 加载每个点并将每个点存储为 glVertex。我通过调用 glCallList 来绘制它。
问题是,一旦我调用 glTexImage2D() 将我的粒子映射到 .bmp 文件,3D 文本就不会显示在屏幕上。粒子看起来很好。 (这不是预期的)
如果我不调用 glTexImage2D,我会同时看到 3D 文本和粒子系统。在这种情况下,粒子系统看起来很糟糕,因为我没有使用任何纹理贴图。 (这是预期的)
有谁知道为什么使用调用列表和 glTexImage2D 可能会相互冲突?
编辑 我也忘了提:我确实调用了 glBindTexture(GL_TEXTURE_2D, this->texture);在调用粒子系统之前在 drawLoop 中。
EDIT2 我只在系统启动时调用 glTexImage2D() 一次(当我对位图进行纹理映射时)
最佳答案
glTexImage2D 将纹理上传到视频 ram(简单地说)。
如果 OpenGL 允许您在列表中放置一个 glTexImage2D 调用,它也必须将像素数据存储在列表中。现在如果你执行这个列表会发生什么?您可以将相同的图像数据上传到相同的纹理中。
这没有意义,因此被排除在外。
如果您想在绘制调用之间更改纹理,请使用 glBindTexure。该调用设置了当前纹理。它要快得多。
关于通过 glTexImage2D 上传图像:每个纹理只执行一次。在程序开始时(如果程序很小)或每次从磁盘加载新内容时。
关于c++ - OpenGL:glTexImage2D 与 glGenLists 和 glCallList 冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/791687/
可以在 iOS 上使用显示列表 (glGenLists) 吗?我正在为 iPhone 平台做一些 openGL ES,我想获得更多性能,所以我认为显示列表是个好主意。 最佳答案 我担心他们不是,至少不
我正在使用 OpenGL,并且在使用 glGenLists 时遇到了问题。每次我调用它时,都会出现段错误。我写了一个简单的程序来测试它是否是我使用的外部库,但发现它不是。这是一个简单的程序: #inc
可能有点强制症,但我觉得在 OpenGL 中很烦人,glGenLists glGenTextures直接返回列表的ID使用引用参数反馈ID。 GLuint glGenLists(GLsizei ran
我有一个简单的 OpenGL 应用程序,我在屏幕上显示了 2 个对象: 1) 粒子系统,其中每个粒子都使用 glTexImage2D() 调用进行纹理映射。在 drawEvent 函数中,我将其绘制为
目前,我正在尝试将显示列表与 OnPaint() 分开,但 glGenLists(1) 返回 0。 使用显示列表有什么前提吗? 函数 glGenLists(1) 是否仅在 OnXxx() 事件线程中存
我是一名优秀的程序员,十分优秀!