如何纹理 Opengl glut 对象(C++)
Posted
技术标签:
【中文标题】如何纹理 Opengl glut 对象(C++)【英文标题】:How to texture Opengl glut objects (C++) 【发布时间】:2013-01-17 22:41:39 【问题描述】:我已经尝试并成功地从 bmp 文件加载纹理,并使用纹理绘制四边形和三角形。但是我需要将加载的纹理应用于使用 glutSolidDodecahedron 和 glutSolidSphere 绘制的对象。我怎样才能做到这一点?如果可能,请包含一些代码
注意:我必须使用这些功能,我不能从头开始绘制它们。
【问题讨论】:
【参考方案1】:glutSolidDodecahedron
和 glutSolidSphere
都没有指定纹理坐标,至少根据快速网络搜索出现的任何文档都没有。我快速浏览了 FreeGLUT 的实现,它们确实没有指定纹理坐标。
如果可以使用着色器,则可以从顶点的 3D 位置导出 2D 纹理坐标。球体和十二面体是非常规则的形状,因此您可以简单地进行球面投影(将顶点位置转换为球面坐标并丢弃半径分量)。
【讨论】:
固定函数 OpenGL 也提供位置相关的纹理坐标生成。见 glTexGen以上是关于如何纹理 Opengl glut 对象(C++)的主要内容,如果未能解决你的问题,请参考以下文章
在C++、OpenGL、Glut中,如何将image.c绑定到一个纹理上,其中image.c来自Gimp>Export>C source code