1

非常に大きなオブジェクトのように、原点が画面上にない場合、ゲーム マップが XNA に完全に表示されないとします。

私はこれについて血まみれのものを見つけることができません。私はカリングを調べ、これを打ち消すためにいくつかの形でプロジェクトに追加しようとしましたが、役に立ちませんでした.

原点が画面外にあるオブジェクトを描画して、部分的に画面上にある場合でも表示されるようにしたいと考えています。どうすればこれを達成できますか?

私が読んだドキュメンテーションから、カルはこれを行うべきですよね?私の貧弱な脳の問題 (._. )

余談ですが、XNA 用の Ox Engine 内でプリミティブを作成した経験のある方がいらっしゃいましたら、ご連絡をお待ちしております。

編集: Hellfire... この問題は Ox の仕業だと確信しています。クソ牛私の憎しみのすべて

4

2 に答える 2

1

カリングがコンセプトです、はい。

問題が発生する可能性があるのは、ジオメトリをカリングするために使用される計算です。システムはオブジェクトの大きさを自動的に認識しないため、多くの場合 (XNA がオブジェクトを処理する方法は明確ではありません)、原点をカリング ポイントとして使用し、オブジェクトが無限に小さいと想定します (原点がビューポート内にある場合)。オブジェクトは表示されますが、表示されない場合は表示されません)。

そのオブジェクトのバウンディング ボックス (おそらく AABB) を生成または更新するようにエンジンに指示できれば、問題が解決する可能性があります。また、距離などの他の要因が寄与しているかどうかも確認してください (ただし、適切な境界によって通常は距離の問題も修正されます)。

于 2011-03-26T01:57:04.447 に答える
0

XNA フレームワークは、BoundingFrustum クラスを提供します。カメラが見ることができるボリュームを含む境界構造です。このクラスには、他のどのオブジェクトが完全に内側、外側、または部分的に内側と外側にあるかを判断するメソッドがあります。

他のオブジェクトの原点がどこにあるかとは関係ありません。他のオブジェクトの境界構造に対してテストします。

これらのテストは、「Contains、disjoint、intersects」の列挙を返します。切り離された (完全に円錐台の外側にある) ものを選別するだけで、「ハーフイン/ハーフアウト」のものは引き続き描画されます。

于 2011-03-26T13:05:14.927 に答える