找回密码
 立即注册
查看: 508|回复: 1

Unity 相机 相机的抗锯齿详解

[复制链接]
发表于 2021-4-19 13:01 | 显示全部楼层 |阅读模式
简介:上一节讲了相机的通用参数,其中抗锯齿设置有三个选项,FXAA,TAA,SMAA,还有一种抗锯齿,不在相机上设置,在渲染管线中设置 叫做 MSAA,我们本节来详细说一下。
版本:Unity2019.4.12f1  HDRP 7.5.1
准备


  • 什么是锯齿
    我们的屏幕是由一行一行的像素组成的方阵,在渲染物体的时候当遇到斜线的时候时候,系统一般情况下需要就近取像素,离斜线最近的像素被使用,这时就会出现锯齿。

锯齿的产生


  • 什么是抗锯齿
    抗锯齿简单理解就是通过一种模糊的方式将斜线造成的锯齿平滑掉。
  • 关闭渲染管线中的 MSAA
    在菜单栏的  Edit -> ProjectSettings 窗口内的 HDRP 标签内关闭

关闭管线中的MASS

    关闭相机上的抗锯齿

关闭相机上的抗锯齿

    在场景中放置一个斜着的方形物体,我们这里放置一个斜着的长方体,关闭相机的抗锯齿。

场景中放置一个斜着的长方体,可以看到有锯齿出现

FXAA


  • 以基于最后的屏幕后处理的方式来处理锯齿
    由于是基于最后的输出图片,所以无法分辨物体的边缘,容易平滑掉一部分细节。但是消耗低,效率高,一般画质可以接受

开启 FXAA 后的边缘明显平滑,但是图中绿框内的部分细节也被模糊了

TAA 时间缓冲抗锯齿

    可以根据前后帧的缓冲来处理锯齿,比 FXAA 更有效更准确,但是需要开启运动适量在菜单栏的 Edit -> ProjectSettings 窗口内的 HDRP 标签内开启运动矢量

开启运动矢量

    使用 TAA 后,会多出一个 TAASharpenStrength的属性,这个属性的作用是锐化抗锯齿的结果,值越大越锐化,越小越平滑,当值最大时 会产生黑线

较小的锐化值


较大的锐化值

    由于TAA 是根据前后帧缓冲来计算的,所以调节完锐化参数后,要等1到两秒才会显示效果

TAA 抗锯齿效果,同时保留了物体内部的细节

SMAA  亚像素抗锯齿

    同样是后处理的方式来进行抗锯齿,SMAA 在图像的边界中查找图案,并根据找到的图案混合这些边界上的像素。这种抗锯齿方法的效果比 FXAA 更为清晰,非常适合于平面、卡通或干净利落的艺术风格。

SMAA抗锯齿效果

MSAA 多重采样抗锯齿


    MSAA 不是后处理类型的抗锯齿,它在渲染物体的时候就直接对物体的边缘像素进行模糊来实现抗锯齿。

    开启 MSAA 时 无法使用 SSR(屏幕空间反射),屏幕空间阴影,TAA,镜头失真效果,以及由贴花拼凑的法线缓冲区

  • 开启 MSAA
    在菜单栏的  Edit -> ProjectSettings 窗口内的 HDRPDefaultSetting 标签内开启

    HDRPDefaultSetting 的选项开启


在菜单栏的  Edit -> ProjectSettings 窗口内的 HDRP 标签内开启,可以选择 2倍 4倍和8倍,倍数越高消耗也越高。

HDRP Rendering设置内的开启

    关闭相机上的抗锯齿,观察结果

关闭相机上的抗锯齿

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2021-4-19 13:02 | 显示全部楼层
太专业的知识,表示看不懂
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-9-21 00:36 , Processed in 0.065670 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表