2013-10-25 51 views
0

我正在使用XNA绘制三维图元。如何使用XNA将纹理应用于三角形条?

我有一个TriangleStrip描述了一个立方体(我希望我使用了图2中所示的三角形this paper)。对于那些你想检查数学:

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?

第三个问题:如何为不同的面分配/应用不同的纹理?

回答

0

我现在无法查看它,但您也必须加载内容 此外,如果您正在绘制多边形,请使用BasicEffect。您应该只使用SpriteBatch进行精灵绘图(即:使用其绘图方法)。 考虑帮助自己与谷歌...; d只取上的Microsoft Developer Network看看......几乎一切有关语法解释的功能:http://msdn.microsoft.com/en-us

但是这将是很容易得出一个模型或通过Cinema4D或Blender进行网格划分......并在其上加载纹理。没有工作要做;更多的努力/更快,更准确的变化成为可能。

希望我帮你够好;)

+1

如果你从MS文档中得到任何东西,你是比我更好的人。他们给出了一个quad的例子,但没有进一步的。而且我无法找到任何关于如何改变中画素材的方法。 –

+0

不要忘记投票...这些文件没有完整的解释...只是片段...你必须看多一个或开始思考:“我怎么能在我的程序中使用它?”。只是在他们的帮助下尝试一下);但是你有点儿不对......那些更像是想要刷新你的想法:D – user31911

+0

绘制方法...你知道事情正在被绘制的地方...; D我想要你应该删除你开始xD的新项目的暑期和评论 – user31911