gpt4 book ai didi

c++ - OpenGl - 纹理 glutSolidSphere?

转载 作者:行者123 更新时间:2023-11-28 08:12:07 28 4
gpt4 key购买 nike

如何将纹理应用于 glutSolidSphere?

这是我已经尝试过但不起作用的方法:

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 已经发出纹理坐标,所以我不需要在那里做任何特别的事情。

最佳答案

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

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

关于c++ - OpenGl - 纹理 glutSolidSphere?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8767667/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com