次のようなことが可能になる、z-orderシステムを実装するための最良のアプローチは何でしょうか。
A、B、C、Dの4つの長方形があります。
長方形Aは長方形Bと重なります。
長方形Bは長方形Cと重なります。
長方形Cは長方形Dと重なります。
長方形Dは長方形Aと重なります。
段ボール箱のように。サイクリックオーバーラップと呼ばれていると思います。
私はこれが奇妙な質問であることを知っています、しかし私はただ疑問に思っていました... :)
次のようなことが可能になる、z-orderシステムを実装するための最良のアプローチは何でしょうか。
A、B、C、Dの4つの長方形があります。
長方形Aは長方形Bと重なります。
長方形Bは長方形Cと重なります。
長方形Cは長方形Dと重なります。
長方形Dは長方形Aと重なります。
段ボール箱のように。サイクリックオーバーラップと呼ばれていると思います。
私はこれが奇妙な質問であることを知っています、しかし私はただ疑問に思っていました... :)
段ボール箱の例では、段ボール片がカメラに向かって正確に配置されていないことがわかります。本質的に、それは互いに重なり合うわずかに傾斜した平面の(かなり平らな)3D構造です。段ボール箱に関しては、平面ではなく、箱を閉じるためにわずかに曲がっています。MSペイントの疑似パースペクティブ:
これは、平面が重なるように平面を傾けることにより、3Dで可能になります。これは、画家のアルゴリズムが失敗する場合であり、 Zバッファが、どのオブジェクトが実際に他のオブジェクトを遮っているのかを解決するのに役立つ理由の1つです。
純粋な2Dの世界で作業していて、平面を傾けて疑似3D効果を実現できない場合は、平面を細分化し、に使用するのとは異なるZレベルを使用して重なり合うパーツを描画する必要があります。ボックスの残りの部分-基本的に独自のクリッピングを行います。
ある種のZバッファのトリックを実行して同じことをエミュレートすることでうまくいくかもしれませんが、基本的には3Dの問題には3D構造を使用する必要があります。