前言
学习Shader的过程中发现模型锯齿严重,于是去Edit——Project Settings——Quality选项下将反锯齿设置为了8X Multi Sampling。结果没有任何改变,如图:
解决办法
将摄像机的渲染路径(Rendering Path)设置为前向渲染(ForwardBase)就行,因为Unity默认的延迟渲染(Deffered Rendering)不支持多重采样抗锯齿(MSAA),如图:
可以看到模型边缘变平滑了许多。
为什么多重采样抗锯齿不能在延迟渲染模式下工作?
延迟渲染依赖于每个片段存储的数据,这是通过纹理来完成的。这与多重采样抗锯齿不兼容,因为抗锯齿技术依赖于子像素数据。虽然三角形的边缘仍然可以从多重采样抗锯齿中受益,但延迟渲染的数据仍然是混叠的。你将不得不依靠一个后处理过滤器来进行抗锯齿。
参考资料
有关延迟渲染可以参考
Unity Rendering (13) :Deffered Shading 作者:Catlike Coding
中文版地址:
Unity 渲染教程(十三):延迟渲染 译者:崔嘉艺(milan21)审校:王磊(未来的未来)
额外参考:
前向渲染和延迟渲染的区别 作者:Lavender