1.背景
(1)随着DirectX 12和Vulkan的出现,渲染的底层方法和逻辑几乎被彻底颠覆。将整个底层计算全部开放出来。开发者们过去很多想做而做不到功能,现在的硬件几乎都可以支持;
(2)硬件算力的提升,基于一个Warp或Wavefront的算力非常强大,而且相互之间的数据通讯和同步也非常方便。
(3)实践领域比理论领域更累。需要不断地跟进最前沿的知识和体系,特别是在硬件发生革命的时候,各种新的算法和方法就如雨后春笋般出现了。比如实时光线追踪技术。
2.实时光线追踪技术
1.背景和原理
(1)相当于硬件提供了一个功能,我们输入几何结构,硬件会帮助我们构建好BVH结构;
(2)这时输入一条光线,硬件会告诉我们有没有命中一个物体,如果命中,会提供一个回调函数,如果没有命中,也会提供一个回调函数,然后由程序员进行处理。
2.作用
(1)大部分游戏用实时光线追踪来实现高光反射功能;
(2)实际上,实时光线追踪技术不仅能够解决高光的问题,而且会彻底改变整个光照体系,进而可以实现实时全局光照GI效果。
(3)比如在虚幻5中,Lumen的效果令人震撼,这就是硬件的能力解放出来了。
一.新的全局光照方法GI
各种借助硬件实现全局光照的方法,整个游戏的画面有一次质的飞跃。
1.SSGI
最高效的 屏幕空间全局光照(Scree-Space Global Illumination),可以在屏幕空间快速形成GI信息。
2.基于有向距离场 (SDF) 的GI
3.基于将世界分成各个体素 (Voxel) 的GI方法
比如SVOGI (Sparse Voxel Octree GI)
还有VXGI,RSM (Reflective Shadow Map) 和RTX GI。
4.虚幻引擎的Lumen技术
1.非常复杂的工程问题
并不是一个单一算法,而是多种算法的组合,最后产生了我们想要的效果,Lumen是一个非常复杂工程问题。
详细内容,后面单独详细讲解
2.Lumen大概的总结
(1)屏幕空间,SSGI
(2)1.8m以内,基于距离场SDF的GI
(3)1.8-200M,基于体素Voxel的GI
(4)200m之外,立方体映射。
5.一场巨大的光照革命正在发生,这个时代已经到来了。
如果想要进入图形学行业,一定要密切关注这个领域,因为这个领域现在正在蓬勃发展,有大量的前沿技术和观点不断被人提出。如果几个月不看论文或者不和同行交流,就会有些落伍。
二.复杂材质的渲染
比如毛发渲染、3S的皮肤材质,现在都被推到了一个非常高的维度。
1.毛发渲染
由于Geometry Shader技术的发达,可迅速生成无数的细节,而且可以实现非常复杂的光影效果。
2.3S材质
(1)SSS,即Sub-Surface-Scattering,次表面散射的材质
用于表现光在物体内部会发生色散的材质,透出一种很有质感的颜色,比如玉石,皮肤,蜡烛等,3S也可以用液体的表现,应用范围很广。
(2)可以利用现代硬件强大的算力,模拟光在材质中的反射和折射效果。
(3)由于硬件的发展,对于3S材质来说,最近这两年的新方法和论文也非常多。
3.BSDF~双向散射分布函数(Bidirectional scattering distribution function)
(1)迪士尼对自己经典的BRDF的进一步优化升级
细节不过多说,可以参考这一篇
zhuanlan.zhihu.com/p/407007915
三.阴影~Virtual Shadow Map
1.Virtual Texture 虚拟纹理
将游戏环境中所有要用到的纹理全部打包到一张巨大的纹理上,这个纹理就叫做“Virtual Texture”。
需要使用的时候将纹理调出来使用,不用的时候就将纹理卸载掉。
2.Virtual Shadow Map 虚拟阴影贴图
1.详细逻辑
(0)思想和Virtual Texture有异曲同工之妙。
(1)在对一个很大的区域生成Cascade Shadow时,该方法会计算哪些地方真正需要生成Shadow Map,所生成的Shadow Map的密度是多少
(2)然后在一块完整的虚拟的Shadow Map中,分配所需要的空间,分块来生成Shadow Map。
(3)相机进行渲染时,每次命中一个物体,就可以知道应该取哪个Shadow Map的值,然而再去获取Shadow Map的值。
2.优点
能够解决Cascade Shadow在有些场合下空间利用率不高、占用空间过大的问题。