1つの大きなレベルのモデルと複数の小さなレベルのモデルのどちらが良いですか?


8

XNA 4でゲームを作成していて、廊下のようなものを作りたいと思っています。1つの大きなソリッドモデルを使用する方が良いですか、それとも複数の小さなパーツ(窓、階段、ドア...)を使用する方が良いと思いますか?

回答:


8

グラフィックスレンダリングに関しては、1つの大きなメッシュは、いくつかの小さなメッシュよりも高速に描画できます。

廊下のようなものについて話している場合、それをドアと床といくつかの壁として送り込んでも、GPUにとってそれほど集中的ではないでしょう。メッシュが小さいと、配置をいじるのも簡単になります。

図面がボトルネックになる場合は、検討してください。


1
高速である必要はありません。Oblivionの世界を見てみましょう。これは、プレーヤーに表示するセクションを選択できないため、これを愚かで非常に遅いものとしてレンダリングします。
大量

1
彼の例は廊下でした。もし彼が「全世界」と言っていたら、私はそれを述べたでしょう。:P
共産ダック

よく話されて、私の悪い
ピーターØlsted

はい、私のレベルのシーンは廊下でリンク
Vodáček

そのシーンには、間違いなくいくつかの要素があります。3DMax、ブレンダーなどでシーンを変更するのは本当に大変です。そして、「共産主義のアヒル」のように、それがボトルネックになり、あなたがそのモデルであり、他に何もないことが確かである場合、おそらく(パフォーマンスが本当に重要である場合)、それを行うことができます。
PeterØlsted、2011年

5

ドアを開けられないようにしたくない場合を除いて、ドアを別のモデルとして保持することをお勧めします。

ウィンドウが透明である場合は、レンダリングのために適切に深度ソートできるように、別のモデルにすることもできます。

他のすべては、最高のパフォーマンスを得るために、そしてそれらが結合している部分の亀裂をなくすために、おそらく単一のモデルとテクスチャでなければなりません。


3

レベルのディテールが多すぎる場合は、レベルをいくつかに分割し、錐台カリングを適用して、現在表示されているメッシュのみを描画する必要があります。


私はすでにこの方法を使用していますが、それはモデル全体(メッシュではなく)でのみ機能すると思いますが、描画コードに依存している可能性があります。
Vodáček

モデル全体に​​依存するかメッシュに依存するかは、レンダラー、またはカリングの実装方法に依存します。頂点は頂点です。
deceleratedcaviar

1

コードの再利用性と柔軟性が得られるため、ほとんどの場合、小さなパーツを使用することには価値があります。廊下または同様のものに多く(少なくとも40のような数を意味する)の小さいパーツが含まれていない場合、大きくてソリッドなモデルを使用した場合のパフォーマンスの向上はごくわずかです(オブジェクトを何度も描画する場合を除いて)フレームあたり)。

パフォーマンスに関心がある場合は、ライティングを事前に計算するか、実際に違いが出るようなある種の頂点配列(頂点バッファー?)を使用することをお勧めします。(これらのことがXNAで可能である場合-私はXNAについてよく知りません)

ps:この投稿の最初の段落は、描画についてのみ正しいです(たとえば、廊下の部分に個別の物理モデルを使用することについてではありません)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.