小议Vertex的传出到fragment的输入的变化

发表于2018-06-03
评论5 2.5k浏览

问题:

我们在vertex里面,一般会把模型的顶点坐标进行相应的计算(如转换到投影坐标系),以及计算好与光影效果相关的向量,然后在fragment里面用这些值做相应的运算。但是,fragment用到的值却并不是vertex直接传过来的。

 

讨论:

首先,看一下这张图。(此图来自于网络)

 

渲染一个三角形可能会用到多个片段,比如三角形的中心的片元,用的数据是哪个呢?毕竟一个三角形只有3个顶点。

实际上,数据在输入到具体的某个片段会被插值运算。下图为法线的变化。


意义:

这样做的意义何在呢?试想,你想做个表面光滑的杯子,如果片段用的值是上面某个具体顶点的值,那算光照的时候会非常不准确。而片段的输入采用插值的做法,将很大程度省掉面数。

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引