0

Xnaでモデル(.fbx)のUV(テクスチャ座標)を変更することはできますか? モデルをメッシュに分割し、メッシュをメッシュ パーツに分割できることを知っているので、メッシュ パーツを頂点に分割することもできます。説明してください

ありがとうございました。

4

1 に答える 1

1

短い答え; 可能です。

より長いです; あなたは何をしようとしているのですか?

  • テクスチャを少しシフトしたいだけです。これを行うには、既存のTexCoordに追加するfloat2タイプのパラメータUVOffsetを持つシェーダーを記述します。

  • 完全にやり直したい:これがXNAでやりたいことのようなものかどうかはわかりません。3Dモデリングソフトウェアでモデルを編集することを検討することをお勧めします。

  • とにかくしたい:モデルにはメッシュと呼ばれるプロパティがあります。各ModelMeshにはMeshPartsプロパティがあります。各MeshPartsにはVertexBufferがあります。各VertexBufferにはGetData-Methodがあります。

つまり、MeshPartのVertexBufferから頂点をフェッチし、必要に応じて変更し、VertexBuffer.SetDataメソッドを使用して変更を適用できます。

あなたが達成しようとしていることを教えていただければ、より具体的な支援を提供できるかもしれません:)

編集:
このスレッドで見つかったhlslに基づく例:http://xboxforums.create.msdn.com/forums/p/1407/72515.aspx

'texture Texture;'の後に挿入:

float2 UVMultiplier;

'output.TexCoord=input.TexCoord;'を置き換えます と:

output.TexCoord = input.TexCoord * UVMultiplier;
于 2013-02-15T13:57:52.647 に答える