小编mtf*_*ney的帖子

纹理化glutSolidSphere

我需要为glutSolidSphere添加一个地球纹理.问题是我无法弄清楚如何使纹理在整个球体上伸展并仍然能够旋转.

我们正在使用纹理.

glTexGeni(GL_S, GL_TEXTURE_GEN_MODE,GL_OBJECT_LINEAR);
glTexGeni(GL_T, GL_TEXTURE_GEN_MODE,GL_OBJECT_LINEAR);

glEnable(GL_TEXTURE_2D);

glEnable(GL_TEXTURE_GEN_S);
glEnable(GL_TEXTURE_GEN_T);

//drawcode...
Run Code Online (Sandbox Code Playgroud)

在param中使用GL_SPHERE_MAP而不是GL_OBJECT_LINEAR使纹理看起来正确,但它们无法旋转.

我用于纹理的参数是

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
Run Code Online (Sandbox Code Playgroud)

我知道GL_REPEAT会对纹理进行平铺,而使用GL_CLAMP会在对象上给我一次纹理,但我不能让它在整个球体上延伸.

有谁知道如何正确构建glutSolidSphere?

opengl textures

4
推荐指数
1
解决办法
5629
查看次数

标签 统计

opengl ×1

textures ×1