如何纹理 Opengl glut 对象(C++)

Posted

技术标签:

【中文标题】如何纹理 Opengl glut 对象(C++)【英文标题】:How to texture Opengl glut objects (C++) 【发布时间】:2013-01-17 22:41:39 【问题描述】:

我已经尝试并成功地从 bmp 文件加载纹理,并使用纹理绘制四边形和三角形。但是我需要将加载的纹理应用于使用 glutSolidDodecahedron 和 glutSolidSphere 绘制的对象。我怎样才能做到这一点?如果可能,请包含一些代码

注意:我必须使用这些功能,我不能从头开始绘制它们。

【问题讨论】:

【参考方案1】:

glutSolidDodecahedronglutSolidSphere 都没有指定纹理坐标,至少根据快速网络搜索出现的任何文档都没有。我快速浏览了 FreeGLUT 的实现,它们确实没有指定纹理坐标。

如果可以使用着色器,则可以从顶点的 3D 位置导出 2D 纹理坐标。球体和十二面体是非常规则的形状,因此您可以简单地进行球面投影(将顶点位置转换为球面坐标并丢弃半径分量)。

【讨论】:

固定函数 OpenGL 也提供位置相关的纹理坐标生成。见 glTexGen

以上是关于如何纹理 Opengl glut 对象(C++)的主要内容,如果未能解决你的问题,请参考以下文章

如何将纹理应用到四边形以纹理立方体?

在C++、OpenGL、Glut中,如何将image.c绑定到一个纹理上,其中image.c来自Gimp>Export>C source code

将纹理应用到线框

对纹素中心进行采样不会给出正确的结果,OpenGL,C++

OpenGL/Glew C++ 纹理不适用

使用 GLUT 在立方体上的 OpenGL 多纹理映射