我正在尝试纹理glutSolidTorus()
.
这是我的代码:
glColor3f(1.0f, 1.0f, 1.0f);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, tiring);
glutSolidTorus(.55, 1.8, 25, 25);
glDisable(GL_TEXTURE_2D);
但这不起作用。我怎样才能纹理glutSolidTorus()
?
除了glut*Teapot()
没有任何 GLUT 几何基元提供纹理坐标 https://www.opengl.org/documentation/specs/glut/spec3/node80.html#SECTION000120000000000000000:
11 几何对象渲染
GLUT 包括许多用于生成易于识别的 3D 几何对象的例程。这些例程反映了 OpenGL 程序员指南中描述的 aux 工具包中可用的功能,并包含在 GLUT 中,以允许构建渲染可识别对象的简单 GLUT 程序。这些例程可以作为纯 OpenGL 渲染例程来实现。这些例程不会为其创建的对象生成显示列表。
例程生成适合照明的法线但不生成纹理坐标(茶壶除外)。
您有多种选择:
- 固定功能纹理坐标生成 http://www.glprogramming.com/red/chapter09.html#name7
- 基于着色器的纹理坐标生成
-
重新实现glutSolidTorus() http://cgit.freedesktop.org/mesa/glut/tree/src/glut/glx/glut_shapes.c#n178添加纹理坐标
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)