壁は平面として作成するか、ボックスとして作成する必要がありますか?


22

壁が飛行機または箱のような利点は何ですか?メッシュコライダーの代わりにボックスコライダーのあるプレーンを使用する必要がありますか?

回答:


15

考慮しなければならないことがいくつかあります。

注:以下で説明する最適化のメリットは、大量の壁でのみ重要になります。その時点で、ゲーム内に壁を作るためにバイナリ空間分割(BSP)のような別のソリューションを検討するのが賢明かもしれません。これにより、レンダリング(正しく設計されている場合)および物理(衝突するものとしないものの非常に適切な定義があるため)に対してレベルが高度に最適化されます。

レンダリング

ボックスは、プレーンよりもレンダリングに時間がかかります。より多くの頂点と三角形があるため、頂点シェーダーとラスタライザーをより多くのデータで実行する必要があります。したがって、可視性の観点から必要な場合にのみボックスを使用してください。プレーヤーが見る必要があるものに必要な顔を削除します。

物理

可能な場合でBoxColliderはなく、常にを使用するMeshCollider必要があります。MeshColliderメッシュの面ごとに(または凸包として)衝突を適用し、レイキャスティングと物理学を遅くする必要があります(ただし、1つのボックスでは無視できる量です)。もう一つのことBoxCollidersは、プレイヤーが本当に速く進んでいるときに、それらを段階的に進めるのがはるかに難しいということです。連続的な衝突があっても、壁を通して物事が相次いでいることに気付いた場合は、いつでも拡張することができますBoxColliders

生産性

MeshColliders(すべてのBoxColliders寸法を調整する必要がないため)を使用して飛行機の作業を大幅に高速化する場合は、必要なパフォーマンスが得られれば、それらを使用するだけでよい場合があります。


10

「コバーン」のポイントを少し拡大する:

レンダリング:平面のみとして壁をレンダリングする場合、平面(より正確にはその面)にはレンダリングされた側面が1つしかないため、壁は片側からのみ表示されます。そのため、プレーヤーが壁の周りを移動できる場合、すべての側面をカバーするために複数の飛行機が必要になります。つまり、いずれにしても箱になってしまいます。

物理:単純なジオメトリコライダー(球体、ボックスなど)は、メッシュのすべての面を個別にチェックする必要がないため、フルメッシュコライダーに比べて計算が常に高速です。代わりに、「単純な」レイキャストを使用したり、距離を計算したりできます(球体の中心から球体のサイズを引いた距離など)。

別の「飛行機コライダー」(Unityにはない)を持つ他の物理エンジンには、「より良い」ものはありません。飛行機はパフォーマンス面でわずかに速いかもしれませんが、実際に衝突することなく飛行機を通過する問題に遭遇するかもしれません。次に、ここで説明するように、より厚いコライダー(プレーンではなくボックス)を使用するか、Continous Collission Detection(CCD)に移動します


ほとんどの場合、バックフェースカリングをオフにすることができます。
バリント

2
@Bálintはい。その場合、ユーザーは反対側からも壁を見ることがありますが、その場合は照明が正しくありません(代わりに、彼/彼女が立っている側ではなく、反対側/部屋からの光源によって送信される光)。
フィリップオールガイア

2番目のポイントでは、実際にそれが賛成か反対か、そして何のために指定したのではありません。平面は、ボックスよりも幾何学的に単純に見えますが、それはあなたのポイントですか?
バクリウ

@Bakuriu私の知る限り、Unityには「飛行機コライダー」がないため、「ボックス」が最も近いものです。他の物理エンジンに関するメモを追加しました。
フィリップアルガイアー

4

レンダリングに関するもう1つのこと:独自のシャドウマッピングの実装を使用している場合、ボックスで作られた壁は、平面で表示できるピーターパンニングにより、平面で作られた壁よりも優れている場合があります。

症状の説明は次のとおりです。

http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-16-shadow-mapping/#peter-panning


ピーターパンとは何ですか?
ピチウアナ

私が提供したリンクをたどりましたか?自明であるべきです。
Djindjidj

0

深さの差が小さすぎて出血するため、軽い出血を助けるためにしっかりさせるのが最善の影があるといつも言われました。

私は間違っている可能性がありますが、私はすべての壁とそのようなものを両面にします。壁はほんの数頂点になるので、それを飛行機にすることでそれほど節約するべきではありません。

私はいくつかの側面を残していますが、そのほとんどは、軽い出血を助けるために周りにたくさんのものがある周辺のものの下部または上部です。

私は物理学についても同じことをしますが、すべてを実際に考えているわけではありませんが、壁を壁として、平面を平面として使用するのは正しいように思えましたが、それは私だけです

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