我正在为我正在开发的游戏构建一个小型 3D 引擎。我已经整理好了基础知识:带有背面剔除的纹理三角形。然而,深度排序被证明是一个难题。
我通过平均构成三角形面的 3 个点来计算面 Z。较长的面有时会与较小的面重叠,因为它们具有较大的 Z 值,因此在深度排序的显示列表中上升。
我该如何解决?如果我只能在编程时获得一些实际帮助,我确信有已知的深度排序技术。我自己构建了渲染管道,因此我可以访问所有必需的数据——三角形、点、纹理、UV 坐标等。
以 3D 程序渲染的大教堂
在我的 3D 引擎中渲染的大教堂