腾讯游戏开发精粹Ⅱ
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

部分Ⅱ 计算机图形

第5章 实时面光源渲染

5.1 现状介绍

随着基于物理的渲染在实时渲染领域广泛应用,面光源变得越来越重要。面光源与经典的方向光、点光源等光源的区别在于其解为一个积分式,对Microfacet BRDF(Bidirectional Reflectance Distribution Function,双向反射分布函数)无解析解,一些具有代表性的求解方向如下。

● Most Representative Point[1],近似面光源为一个点,从而将面光源退化为点光源进行求解。

● Linearly Transform Cosine(LTC)[2],通过线性变换,将一个不存在解析解的函数近似为另一个可以求解析解的函数。

● Analytic Spherical Harmonic Coefficients for Polygonal Area Lights[3],将BRDF与面光源投影到球谐函数(Spherical Harmonics)后,进行求解。

LTC由于精确性、较好的性能、支持多种类型的光源成为游戏等实时渲染应用程序的首选方案。

然而要将LTC在移动平台的生产项目中使用仍然存在不少挑战。例如,水平面裁切问题,三角形与平面求交从而得到新的多边形,在Shader里实现这样的函数会造成大量的代码分支及寄存器占用。另外,在移动平台上,需要让尽可能多的计算在FP16精度下进行,所以在实现上需要特别关注浮点数的计算精度。本章将对一系列下在实践中遇到的问题展开讨论。