我正在尝试为科学应用程序编写一个3D渲染器,它基于矢量而不是像素。我的想法是能够输出到矢量格式,例如SVG,所以我想把所有东西都保存为矢量对象,而不是像素化。对象通常具有透明度。
此刻,我将所有内容分解为3D三角形和线段,并在有重叠的地方进行分割。然后使用深度排序(画家的算法)对场景进行投影和绘制。我按三角形的最小深度排序(其次按关系的最大值排序)。如果在较大的三角形后面有长的细三角形,这可能会按顺序上升,则会失败。
仅为同一组对象绘制一次场景。由于矢量化和透明度,我显然无法使用z缓冲。是否有一种强大且合理快速的方法以正确的z顺序绘制三角形?通常可能有几千个三角形。