c++ - OpenGL 纹理绑定(bind)到对象

标签 c++ opengl

我前几天开始学习OpenGL,我在理解一个东西时遇到了一些困难。我遵循了本教程:https://www.youtube.com/playlist?list=PLEETnX-uPtBXT9T-hD0Bj31DSnwio-ywh直到第五部分,它工作得很好,但是当我试图为它制作另一个单独的三角形和另一个纹理时,这两个三角形具有相同的纹理。我不明白如何将纹理绑定(bind)到对象,该程序为场景中的每个对象绑定(bind)纹理,或者我可能不明白如何正确执行。 这是我的来源:https://github.com/deiandrei/blackunity_opengl_alpha 祝你有美好的一天!

最佳答案

您所说的这些“对象”是什么? OpenGL 不知道“对象”是什么。 OpenGL 只知道点、线和三角形,它所关心的只是在当前启用的状态下一个接一个地绘制。一旦绘制了某些东西,OpenGL 就已经忘记了它。

所以典型的OpenGL程序绘图结构大致是这样的:

glBindTexture(GL_TEXTURE_2D, texture_A);
draw_triangles(); /* the triangles are drawn using texture_A */
draw_lines(); /* the lines are drawn using texture_A */

glBindTexture(GL_TEXTURE_2D, texture_B);
draw_some_other_triangles(); /* the other triangles are drawn using texture_B */

关于c++ - OpenGL 纹理绑定(bind)到对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29961586/

相关文章:

c++ - Microsoft 系统可执行拷贝差异

c++ - 地址是什么数据类型?

algorithm - 三角扇的纹理坐标

c++ - 从文件中读取行数、单词数、字符数

c++ - 为什么编译时间的持续时间至关重要?

c++ - 在 FreeBSD 中编译 C++/OpenGL

c++ - GLM mat4x4 到布局限定符

c - 通过循环遍历 vector 链接列表,使用 opengl1 绘制线条

c++ - 在无窗口 GLX 程序中读取 OpenGL 的默认帧缓冲区

c++ - 将 Unicode 字符写入 OStream