locked
インデックスバッファについて RRS feed

  • 質問

  • こんにちは

     

    接触しているポリゴンのマテリアルを得ようとしています

     

    そこで、XNAのインデックスバッファについて質問なんですが

    Meshが1つMeshPartが2つあり

    MeshPart[1]のStartIndexが1100場合は

     

    MeshPart[0]の範囲は0~1099で

    MeshPart[1」の範囲は1100~終わりまでと考えていいのでしょうか?

     

    それともMeshPart[1]の最初のIndexが1100なだけであって

    1101はMeshPart[0]かも知れないよって事でしょうか?

    2008年11月3日 5:46

回答

  • ModelMeshで宣言されたインデックスバッファはModelMeshPartで共有されており、
    その使用範囲はそれぞれのMeshPartのStartIndexからStartIndex + meshPart.PrimitiveCount * 3 - 1になります。

    >それともMeshPart[1]の最初のIndexが1100なだけであって

    >1101はMeshPart[0]かも知れないよって事でしょうか?


    それはあり得ません。
    ただし、MeshPart0が使っているインデックス値の範囲がインデックスバッファの先頭になるという定義は
    フレームワーク側ではしていません。ですから、前述のようにそれぞれのMeshPartのパラメーターから
    インデックス使用範囲を計算するべきです。
    2008年11月6日 1:10

すべての返信

  • ModelMeshで宣言されたインデックスバッファはModelMeshPartで共有されており、
    その使用範囲はそれぞれのMeshPartのStartIndexからStartIndex + meshPart.PrimitiveCount * 3 - 1になります。

    >それともMeshPart[1]の最初のIndexが1100なだけであって

    >1101はMeshPart[0]かも知れないよって事でしょうか?


    それはあり得ません。
    ただし、MeshPart0が使っているインデックス値の範囲がインデックスバッファの先頭になるという定義は
    フレームワーク側ではしていません。ですから、前述のようにそれぞれのMeshPartのパラメーターから
    インデックス使用範囲を計算するべきです。
    2008年11月6日 1:10
  • 回答ありがとうございます!

     

    不安が取り除けたので、早速実装に移ったところ

    無事、マテリアルごとの当たり判定をとることが出来ました

     

    いつもながら、ありがとうございます

    2008年11月9日 3:12