- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要将地球纹理添加到 glutSolidSphere。问题是我无法弄清楚如何使纹理在整个球体上拉伸(stretch)并且仍然能够旋转。
我们正在启用纹理。
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...
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);
最佳答案
glutSolidSphere
不提供正确的纹理坐标,并且 OpenGL 内置的纹理生成只允许从顶点位置到顶点纹理坐标的线性映射,这本质上意味着您不能使用它们来纹理具有 2 平面、有界纹理的 3 球体(有关数学解释,请查看流形拓扑和映射理论的主题)。
所以,你可以做什么?有许多可能的解决方案:
glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_NORMAL_MAP);
glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_NORMAL_MAP);
glTexGeni(GL_R, GL_TEXTURE_GEN_MODE, GL_NORMAL_MAP);
关于opengl - 纹理化 glutSolidSphere,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61563227/
我必须在类似“ Spring 质量”的系统的 3D 物理模拟中绘制大量球体。 我想知道一种绘制球体的有效方法,而不必在模拟的每一步都编译显示列表(每一步可能从毫秒到秒不等,具体取决于计算中涉及的物体数
我需要将地球纹理添加到 glutSolidSphere。问题是我无法弄清楚如何使纹理在整个球体上拉伸(stretch)并且仍然能够旋转。 我们正在启用纹理。 glTexGeni(GL_S, GL_TE
嗨,我的程序应该在屏幕中央显示一个纯红色的球体,我得到的只是球体的边界: int main(int argc, char **argv) { glutInit(&argc, argv); gl
当我使用此代码示例时,我得到一个平坦的白色球体。 我期待一个从侧面发光并旋转的球体。 #include #include int angle = 0; int _refreshmillisecon
我需要向 glutSolidSphere 添加地球纹理。问题是我无法弄清楚如何使纹理在整个球体上拉伸(stretch)并且仍然能够旋转。 我们正在启用纹理。 glTexGeni(GL_S, GL_TE
如何将纹理应用于 glutSolidSphere? 这是我已经尝试过但不起作用的方法: GLuint textureid; glGenTextures(1, &textureid);
我正在创建一个行星模拟,其中有 glutSolidSpheres 围绕太阳运行并且应该有跟踪线跟随它,使用 GL_LINE_STRIP 创建。 我遇到的问题是,这条轨迹并没有直接跟随行星在它后面,它看
我是一名优秀的程序员,十分优秀!