怎样解决锯齿上的问题?
这个东西在VR里面会是一个非常严重的问题。
大家都知道Unity里面摄像机可以设render pass,包括有前向渲染Forward Rendering和延迟渲染Deferred Rendering。
在VR里面我们怎么去选择这个呢?
你在做一个小游戏的时候,可能根本不会care这个东西。
用前向渲染和用后向渲染,显卡都是能够满足目标的。
如果你用前向渲染,它**就自带了一个MSAA的效果,锯齿问题就不是那么严重。
但后向渲染其实就是一个非常尴尬的事情,如果游戏玩的多的可能都知道,现在有抗锯齿的FXAA,其实是基于一个图像分析,这个图像分析在VR里面用处并不是很大,或者说即使加上了对于锯齿的改善并不是很明显。
空间剪裁
在3D渲染的时候,3d渲染有锯齿,因为GPU的能力,要解决的问题是每帧喂给它要渲染的东西太多就会导致应用的帧率下降(在mobile上计算量太大以至于长时间满负荷也会导致发热量大,电池消耗过快)。因此,对于一个场景中的所有物体,3d渲染引擎,在提交给GPU渲染之前,需要有空间裁剪的方式来快速的去除相机看不到的物体。较基础的也是每个3D引擎必有的是基于相机的平截头体(frustum)的裁剪,也因为只通过平截头体来裁剪的话,西安渲染,大空间的场景会需要消耗很多的CPU资源,3d渲染技巧,所以才产生了其他的如二叉树(Quake使用)、四叉树、八叉树(GB lightspeed使用)以及门(portal)等技术。这些都在平截头体裁剪前发生,用来快速的去除相机看不到的物体。然后剩下的物体再跟平截头体做裁剪计算,如果通过的话才进入GPU进行真正的渲染。