- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用顶点数组在 OpenGL 中创建一个长方体,但我的纹理似乎有点不对劲。
这是我的代码:
float halfW = getW() / 2;
float halfH = getH() / 2;
GLubyte myIndices[]={
1, 0, 2, //front
2, 0, 3,
4, 5, 7, //back
7, 5, 6,
0, 4, 3, //left
3, 4, 7,
5, 1, 6, //right
6, 1, 2,
7, 6, 3, //up
3, 6, 2,
1, 0, 5, //down
5, 0, 4
};
float myVertices[] = {
-halfW, -halfH, -halfW, // Vertex #0
halfW, -halfH, -halfW, // Vertex #1
halfW, halfH, -halfW, // Vertex #2
-halfW, halfH, -halfW, // Vertex #3
-halfW, -halfH, halfW, // Vertex #4
halfW, -halfH, halfW, // Vertex #5
halfW, halfH, halfW, // Vertex #6
-halfW, halfH, halfW // Vertex #7
};
float myTexCoords[]= {
1.0, 1.0, //0
0.0, 1.0, //1
0.0, 0.0, //2
1.0, 0.0, //3
0.0, 0.0, //4
1.0, 0.0, //5
1.0, 1.0, //6
0.0, 1.0 //7
};
问题来了:
正面和背面渲染良好,但顶部、底部、左侧和右侧出现倾斜。
我哪里错了?
最佳答案
您的纹理坐标和顶点索引看起来不对。由于顶点 #2(坐标为 halfW、halfH、-halfW)具有纹理坐标 (0, 0),因此顶点 #6(坐标为 halfW、halfH、halfW)不应具有纹理坐标 (1, 1)。它所做的是将纹理坐标为 (0, 0) 和 (1, 1) 的顶点放在同一条边上,这会导致麻烦。
立方体的问题是每个顶点一个 2D 纹理坐标不足以将纹理映射到像这样的立方体上(无论您尝试放置它们,最终都会出现奇怪的结果边)。
解决方案是要么添加额外的三角形,以便没有边与另一边共享顶点,要么查看 Cube Maps在 3D 中指定纹理坐标的位置(就像顶点一样)。我建议使用 Cube Maps,因为它可以避免添加冗余顶点。
关于c++ - 我的长方体哪里出了问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16125594/
我正在尝试在 python 中给定边界内的 3D 长方体空间中生成 2000 个随机点。人们会怎样做呢? 最佳答案 import random xrange = (-1000.0, 1000.0) y
我正在尝试在 python 中给定边界内的 3D 长方体空间中生成 2000 个随机点。人们会怎样做呢? 最佳答案 import random xrange = (-1000.0, 1000.0) y
我对 HTML、CSS 有基本的了解。我想像这样用这 3 个 3D 长方体创建一个 HTML 页面 上图中的 3D 长方体对我来说看起来很复杂。那么有人可以建议如何使用 HTML 和 CSS 创建这个
我是一名优秀的程序员,十分优秀!