我正在通过实现一个微型软件渲染器来学习可编程渲染管道。我尝试以“硬件”风格实现它。但是,我对 GPU 管道并不熟悉,并且遇到了一些均匀裁剪的问题。
根据这个线程,假设我们有两个点e0
,e1
在 3D 眼睛坐标中,它们被投影到h0(-70, -70, 118, 120)
,h1(-32, -99, -13, -11)
在 4D 齐次裁剪空间中。然后我们在 4D 齐次空间中进行插值,该段在 4D 点h0-h1
被平面w = -x
(z = -1
在 NDC 中)剪裁h(t)=t*h1+(1-t)*h2
,其中t = 0.99
. 不失一般性,假设我们有h0-h(0.99)
一部分(可见的)馈送到光栅化阶段。所以我们需要生成对应的顶点属性h(0.99)
(同顶点着色器的输出格式)。我的问题是如何生成这些新顶点的属性?
更新:我尝试使用 t 作为插值变量来获取 h(t) 的顶点属性,并得到合理的结果。我想知道为什么t
来自 4D 空间可以在 3D 顶点属性中获得良好的插值结果?