2013-10-25 93 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