type
status
date
slug
summary
tags
category
icon
password
属性插值的透视修正,图像API和硬件层面已经处理了。
不过出于学习的目的还是可以研究一下。
顶点属性的插值发生在光栅化阶段
插值基于重心坐标。
而计算重心坐标,需要知道顶点坐标,关键在于,是什么空间下的顶点坐标?
如果是已屏幕空间坐标计算重心坐标,由于透视投影,插值会出问题。我们更想要计算的透视投影之前,3D空间中对应点的重心坐标。
但是如果这样,就需要求出3d空间的重心坐标,直觉上来讲,我们还需要还原这个点在3D空间中的坐标,然后再根据空间中的三个顶点坐标对P点的属性进行插值。这很麻烦。
如果我们能直接求到投影之前的3D空间的重心坐标,就可以直接进行属性插值了。
三角形从view 空间 ,经过投影矩阵变换,再进行透视除法,转移到NDC空间。在映射到Screen空间
view空间到NDC空间,进行了顶点相对位置产生变化,重心坐标发生了变化。
NDC空间到Screen空间。只是进行了缩放,重心坐标没有发生变化。
也就是说,我们只要找到view空间和NDC空间中重心坐标的映射关系,就可以解决插值问题。
notion image
notion image
notion image
notion image
notion image
小练习:一个像素风格的溶解 我的PBR流程建模作品