我正在使用 XNA 绘制 3d 图元。
我有一个描述立方体的TriangleStrip(我希望。我使用了本文图 2 所示的三角剖分)。对于那些想要检查数学的人:
public readonly VertexPositionTexture[] Vertices =
{
new VertexPositionTexture(new Vector3( 0, 0,0), new Vector2(1,1)),//A
new VertexPositionTexture(new Vector3( 1, 0,0),new Vector2(0,1)),//B
new VertexPositionTexture(new Vector3( 0, 1,0),new Vector2(1,0)),//C
new VertexPositionTexture(new Vector3( 1, 1,0),new Vector2(0,0)),//D
new VertexPositionTexture(new Vector3( 1, 1,1),new Vector2(0,0)),//E
new VertexPositionTexture(new Vector3( 1, 0,0),new Vector2(1,1)),//B'
new VertexPositionTexture(new Vector3( 1, 0,1),new Vector2(0,1)),//F
new VertexPositionTexture(new Vector3( 0, 0,0),new Vector2(1,0)),//A'
new VertexPositionTexture(new Vector3( 0, 0,1),new Vector2(1,1)),//H
new VertexPositionTexture(new Vector3( 0, 1,0),new Vector2(1,0)),//C'
new VertexPositionTexture(new Vector3( 0, 1,1),new Vector2(1,1)),//I
new VertexPositionTexture(new Vector3( 1, 1,1),new Vector2(0,0)),//E'
new VertexPositionTexture(new Vector3( 0, 0,1),new Vector2(0,1)),//H'
new VertexPositionTexture(new Vector3( 1, 0,0),new Vector2(1,1))//F'
};
我的问题是,我不知道如何应用纹理。起初我试图为每张脸应用不同的纹理,但事实证明这是难以捉摸的。我现在要做的是将单个纹理应用于整个立方体。
第一个问题:这是最好的方法吗?了解到我正在尝试创建一个可重用的 Cube 类,我需要将纹理应用于每个面。如果这在单个 TriangleStrip 中是不可能的,那么我现在可以停下来了。
第二个问题:如何正确地将单个纹理应用于 TriangleStrip?
第三个问题:如何为不同的面分配/应用不同的纹理?