首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenGl - texture glutSolidSphere?

OpenGl - texture glutSolidSphere?
EN

Stack Overflow用户
提问于 2012-01-07 13:34:58
回答 1查看 2.2K关注 0票数 0

如何将纹理应用于glutSolidSphere?

这是我尝试过的方法,但它不起作用:

代码语言:javascript
复制
GLuint textureid;
    glGenTextures(1, &textureid);
    glBindTexture(GL_TEXTURE_2D, textureid);
    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, "stone.tga");
// Planet
    glDisable(GL_LIGHTING);
    glBindTexture(GL_TEXTURE_2D, textureid);
    glutSolidSphere(35.0f, 30, 17);
    glEnable(GL_LIGHTING);

有人可以指导我如何加载纹理和启用它。

我听说glutSolidSphere已经发射了纹理坐标,所以我不需要在那里做任何特殊的事情。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-07 13:56:14

您的问题是您实际上并没有使用glTexImage2D创建纹理。最后一个参数应该是像素通道颜色的byte[],顺序为红、绿、蓝、Alpha (由其他参数- GL_UNSIGNED_BYTEGL_RGBA指定),而不仅仅是文件名。

OpenGL不知道文件是什么,不知道如何从系统特定的文件系统中读取文件,也不知道如何解析TGA文件格式。它需要原始的颜色数据,所以您需要加载和解析图像,并将byte[]传递给OpenGL (从技术上讲,第一个元素的指针作为void*)。有一些several guides为你提供了解析TGA文件所需的最少代码,但你也可以使用像FreeImage这样的库来加载你的纹理,而且它不仅仅适用于TGA。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8767667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档