私はまだ「javascript 3d エンジン」に取り組んでいます ( stackoverflow 内のリンク)。最初は、すべてのポリゴンが立方体の面だったので、平均 Z で並べ替えるとうまくいきました。しかし、今は「進化」しており、正しい順序でポリゴン (4 つ以上の頂点を含む可能性があります) を描画したいと考えています。つまり、カメラに近いポリゴンが最後に描画されます。
基本的に、それらを回転させて2Dに「遠近法」化する方法は知っていますが、正しい順序で描画する方法はわかりません。
明確にするために:
//my 3d shape = array of polygons
//polygon = array of vertices
//vertex = point with x,y,z
//rotation is around (0,0,0) and my view point is (0,0,something) I guess.
誰でも助けることができますか?
ps: 解決策を探して思いついたいくつかの「キャッチ フレーズ」: Z バッファリング、レイ キャスティング (?!)、平面方程式、ビュー ベクトルなど - 簡単に理解できる答えが必要だと思います。こいつに尋ねた。ありがとう。
p.s2: ポリゴンの重なりや交差についてはあまり気にしません...だから、画家のアルゴリズムは確かに良いかもしれません。しかし:それは正確には何ですか?ポリゴンの距離を決定するにはどうすればよいですか?? 多角形には多くの点があります。