大世界渲染基础
地形,大气,以及云的渲染系统
地形渲染方案
地形管理
根据视距来进行地形的Tessellation,远处的三角形网格密度低而近处高。
而至于具体的Subdivision方法,可以分为如下
- Triangle Based Subdivision
- QuadTree-Based Subdivision
这里关键的一点是要明白T-Junction是什么,该怎么解决。
材质采样
这里要注意TextureArray和3D Texture的区别,不过TextureArray的cache miss率较高,有点费。
Virtual Texture
当前一统天下的方案,大部分现代地形的管理都是通过Virtual Texture来进行。
私货
天空以及大气渲染
在做这方面的渲染时,一定要注意到天空和云要分开来考虑。
- 光与介质的交互方式
- Volume Rendering Equation
- Scattering Type
Rayleigh Scattering : 当参与散射的粒子直径远小于光的波长的时候,波长越短的光自然反射的越厉害,即反射的大部分是蓝光以及紫光。
$\lambda: 波长,h:海拔高度$
参数:
Mie Scattering : 参与散射的粒子直径大于或者接近于光的波长时候会发生的散射现象,这种散射发生时似乎是会对任意波长的光都产生同样的散射效果。
当前业界主流方法
云
除了这种基于物理的算法,往往还有基于2D面片的做法。
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment