我正在尝试在立方体上映射纹理,该立方体基本上是具有 8 个顶点和 14 个标记的三角形条带:
static const GLfloat vertices[8] =
{
-1.f,-1.f,-1.f,
-1.f,-1.f, 1.f,
-1.f, 1.f,-1.f,
-1.f, 1.f, 1.f,
1.f,-1.f,-1.f,
1.f,-1.f, 1.f,
1.f, 1.f,-1.f,
1.f, 1.f, 1.f
};
static const GLubyte indices[14] =
{
2, 0, 6, 4, 5, 0, 1, 2, 3, 6, 7, 5, 3, 1
};
如您所见,它开始用 4 个索引绘制背面2, 0, 6, 4
,然后用 3 个索引绘制底部,5, 0, 1
然后仅从1, 2, 3
三角形开始,左侧3, 6, 7
是三角形,顶部是三角形,依此类推...
我有点迷失如何在这个立方体上映射纹理。这是我的纹理(你明白了):
我设法使背面纹理化,并且可以以某种方式在前面添加一些东西,但是其他 4 个面完全搞砸了,我有点困惑着色器如何处理与纹理坐标有关的三角形。
我能做到的最好的是:
您可以清楚地看到侧面的三角形。这些是我的纹理坐标:
static const GLfloat texCoords[] = {
0.5, 0.5,
1.0, 0.5,
0.5, 1.0,
1.0, 1.0,
0.5, 0.5,
0.5, 1.0,
1.0, 0.5,
1.0, 1.0,
// ... ?
};
但是每当我尝试添加更多坐标时,它完全是在创造一些不同的东西,我无法解释为什么。知道如何改进吗?