我有一個模型,它只有一個紋理,我想將這些紋理合併到一個紋理中,因此我可以爲每個模型/網格使用一個紋理。如何將紋理合併爲一個在XNA + C#中?
有沒有一個很好的算法呢?首選C#,首選XNA4。
在此先感謝: 彼得
我有一個模型,它只有一個紋理,我想將這些紋理合併到一個紋理中,因此我可以爲每個模型/網格使用一個紋理。如何將紋理合併爲一個在XNA + C#中?
有沒有一個很好的算法呢?首選C#,首選XNA4。
在此先感謝: 彼得
雖然不容易實現,你可以做,合併紋理成一個模型處理器。
您可以使用此代碼知道如何做到這一點:
A.收拾紋理:
http://create.msdn.com/en-US/education/catalog/sample/sprite_sheet
B.要改變你的模型使用新的質地:
http://create.msdn.com/en-US/education/catalog/sample/custom_model_importer
我認爲最好的辦法是做這個模型中的編輯器。
如果你真的想,你可以很容易地在像素着色器中做到這一點。您基本上需要編寫一個着色器,它接受兩個紋理並將它們合併,然後將着色器繪製到紋理渲染目標。如果你不確定如何做到這一點,我建議你開始閱讀着色器編程,因爲它是3D圖形編程的一個組成部分。
或者你可以使用多重紋理和避免合併texturse:http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series4/Multitexturing.php
不幸的是你是正確的。我想知道[紋理地圖](http://en.wikipedia.org/wiki/Texture_atlas)可能會有所幫助。 –