我仍在研究我的“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-buffering,光线投射(?!),平面方程,视图矢量等等 - 我想我需要一个简单易懂的答案,所以这就是为什么我问这个。谢谢。
p.s2:我不太介意重叠或相交多边形......所以也许画家的算法确实可能很好。但是:到底是什么?如何确定多边形的距离?多边形有很多点。