2

基本的には、スロット マシンのリール (白い円柱モデル) を外側に複数の等間隔のテクスチャでカバーしようとしています。プログラムは Windows 専用で、コンテンツ パイプラインを使用する代わりに、実行時にテクスチャが動的に読み込まれます。(Microsoft の例からの XNA を使用した Windows ベースのマルチスクリーン セットアップ)

私がオンラインで見つけることができる例のほとんどは XNA3 用であり、この時点ではまだ意味不明に思えます。

だから私は誰かが複数のテクスチャを持つ円柱のようなオブジェクトのゲーム内テクスチャリングに関して提供できる助けを探しています.

XNA (特に 4.0) でテクスチャリングがどのように機能するかを適切に説明できる優れた本があるのではないでしょうか?

ありがとう

4

1 に答える 1

2

いくつかのオプションがあります。それは、モデルが実行時に読み込まれるか生成されるか、および複数のテクスチャが 1 つに結合されるか個別に保持されるかという 2 つの点に依存します。

アート スキルを持っているか、アーティストを知っている場合、おそらく最も簡単な方法は、必要な数のテクスチャ (複数のマテリアル) を使用して円柱にテクスチャ マッピングするよう依頼することです。必要なテクスチャごとに 1Modelつのメッシュ ( ModelMesh) と 1 つのマテリアル ( ) が必要です。ModelMeshPartこれは、円柱が常に固定数のテクスチャを持っていることを前提としています!. 次に、実行時にテクスチャを交換するには、ModelMesh.Effectsコレクションを反復処理し、それぞれを にキャストして、そのプロパティBasicEffectを設定しTextureます。

モデルを変更できない場合は、モデルを生成する必要があります。AppHub サイトにこの例があります: http://create.msdn.com/en-US/education/catalog/sample/primitives_3d。おそらくテクスチャ座標を生成しないため、追加する必要があります。円柱ごとに 5 つの画像が必要な場合は、セグメントの数が 5 の倍数であることを確認し、V 座標が円柱を 1 周するときに 0 から 1 まで 5 回移動する必要があります。この手法でテクスチャを個別に維持するには、円柱を 5 つのチャンクで描画し、そのたびGraphicsDevice.Textures[0]に を現在のテクスチャに設定する必要があります。

どちらの手法でも、1 回の描画呼び出しで円柱を描画できますが、 と を使用してテクスチャを 1 つにマージする必要がありTexture2D.GetDataますTexture2D.SetData。これはより効率的になりますが、実際には手間をかける価値はありません。とにかく、ある種のクレイジーなスロット マシン パーティクル システムを作成しない限り、そうではありません。

于 2011-08-18T12:35:34.377 に答える