这个系列文章记录我上计算机仿真技术的课程感悟。
局部光照模型
最简单的渲染就是在局部光照的情况下对物体进行的渲染,计算出物体表面的最终呈现的区域像素的颜色。
理解了shader其实算是根据光源光照来对物体表面进行着色的过程。
最简单的flat shading就是通过一个三角形面的三个顶点或者一个四边形片面的三个顶点计算出法线从而根据法线来计算出这个片面的颜色,整个面的颜色就是由法线决定的。虽然这样计算量少,但是会出现区域和区域之间颜色的突变不连续感,不真实。
当然有改进的shading算法,比如算出不同片面相交的顶点的法线,然计算出各个顶点的颜色,再对片面上的进行双线性差值得到片面上采样点的颜色。或者先对各个顶点的法线进行双线性差值得到片面上采样点的法线,再根据法线来算出各采样点的颜色。这样虽然可以降低片面之间颜色的突变,但是增大了计算量。
主要就是在shading中进行插值来进行更加真实的颜色渲染。参考文章如下。
局部光照模型因为只渲染某个物体在光照下的颜色,所以算法相对简单,就是大量的计算,所以很多GPU厂商都将算法固化,直接调用即可。
全局光照模型
全局光照模型和局部光照模型差别很大,因为全局光照关注的是在自然光下场景中所有的颜色渲染。如果按照局部光照模型的做法对每一个物体都单独计算表面的法线啥的,计算量过大,需要设备有强大的计算能力,所以才有了全局光照模型。
主要的思想就是从摄影设备出发,看作是从观察者发出的光线,然后经过物体进行散射,反射和透射等...
参考文章如下。
[1] https://www.jianshu.com/p/13f1f1c86952
[2] https://www.cnblogs.com/cloudseawang/archive/2006/12/13/590634.html
[3] https://www.cnblogs.com/kanekiken/p/7533551.html
网友评论