这一篇博客要写很长的时间,只能让我慢慢的总结,让我好好考虑一下!
锯齿:锯齿的来源是因为场景的定义在三维空间中是连续的,而最终显示的像素则是一个离散的二维数组。所以判断一个点到底没有被某个像素覆盖的时候单纯是一个“有”或者“没有"问题,丢失了连续性的信息,导致锯齿。
抗锯齿:其实就是清理模型导入引擎后产生的毛边效果。
1、面临的问题:
最近公司的小伙伴,做VR展厅项目,有锯齿,而且UI字体不清晰。那么如何解决?
1-1、锯齿解决办法:
要判断是模型还是图片问题
- 1、一个是图片本身的,进入会自动压缩,把图片在Unity3D的修改面板中改为GUI的。
2、质量设置,在编辑(edit)菜单找project setting---quality,在弹出的面板里找Anti-Aliasing选择4x或更高。
- 3、给摄像头加个SSAO特效,类似全局光照效果.
1-2、UI字体模糊解决办法:
TextMeshPro这款插件是用来做文字特效的。
1-3、AO:环境光遮蔽
AO是来描绘物体和物体相交或靠近的时候遮挡周围漫反射光线的效果,可以解决或改善漏光、飘和阴影不实等问题,解决或改善场景中缝隙、褶皱与墙角、角线以及细小物体等的表现不清晰问题,综合改善细节尤其是暗部阴影,增强空间的层次感、真实感,同时加强和改善画面明暗对比,增强画面的艺术性。可以说:
AO特效在直观上给我们玩家的感受主要体现在画面的明暗度上,未开启AO特效的画面光照稍亮一些;而开启AO特效之后,局部的细节画面尤其是暗部阴影会更加明显一些。
1-4、SSAO:(Screen-Space Ambient Occlusion:屏幕空间环境光遮蔽)
通过采样象素周围的信息,利用“逐象素场景深度计算”技术计算得出的深度值直接参与运算。SSAO是一个纯粹的渲染技术,或者说,是一个算法.每个像素工作方式始终一致无CPU占用,完全通过GPU执行与流行显卡的管线整合相当容易.
SSAO会利用GPU计算出指定像素的空间坐标,然后以此坐标为基点,在周围选择数个采样点进行采样,然后将采样点的空间坐标投影回屏幕坐标,对深度缓冲进行采样,最后得到采样点的深度值,再进行后续计算,最终得到一个遮挡值。
此人研究SSAO
2、影响渲染的其他因素:
2-1、模型的面数是关键
武器面数
武器模型控制在150个三角面,187个顶点以内。贴图控制在1张,最大256*256,最好128*128。
场景面数
场景(地形、建筑、其他装饰物)面数控制在10000面左右,贴图控制在最多2张512*512。
主角面数
主角模型控制在900-1300个三角面(以最终导入unity3d中的三角面数量为准)。贴图控制在1张,最好256×256,最多512×512。
小怪面数
小怪模型控制在600-900个三角面(以最终导入unity3d中的三角面数量为准)。贴图控制在1张,最大256×256。
注意:所有单个模型不准出现超过20000三角面的情况,否则导出时可能会出错。
2、主流的抗锯齿有MSAA以及FXAA,SSAA, TXAA
什么是MSAA
MSAA是多重采样抗锯齿”,可以使画面更加平滑
什么是FXAA
快速近似抗锯齿,它是传统MSAA效果的一种高性能近似值,相比于MSAA,FXAA的目标是速度更快、显存占用更低,还有着不会造成镜面模糊和亚像素模糊(表面渲染不足一个像素时的闪烁现象)的优势,代价就是精度和质量的损失。
简单说:在同一画质下,FXAA的画面帧数比MSAA高.