【发布时间】:2016-02-07 22:38:15
【问题描述】:
我正在尝试为多边形光栅化算法实现 Z 缓冲区(深度缓冲区)。我所有的多边形都是三角形,我知道组成三角形的三个点 (x,y,z) 也形成一个平面。如果我有顶点的 (x,y,z) 值,我将如何计算三角形面上每个位置的深度?
【问题讨论】:
我正在尝试为多边形光栅化算法实现 Z 缓冲区(深度缓冲区)。我所有的多边形都是三角形,我知道组成三角形的三个点 (x,y,z) 也形成一个平面。如果我有顶点的 (x,y,z) 值,我将如何计算三角形面上每个位置的深度?
【问题讨论】:
在 OpenGl 或 WebGl 中,在 rasterization 之后应用 z 缓冲区,即针对每个像素,而不是针对三角形的每个顶点。在这种情况下,您需要为每个像素保存 z 值,然后只获取这个最大 z 值的像素。这是在pipeline 中自动完成的。
如果您只想为顶点计算 z 缓冲区,则需要您自己的算法。例如,获取三角形顶点的最大 z 值并按此值对三角形进行排序。
也可以查看link 了解更多信息。
【讨论】: