我们在Unity开发过程中通常会碰到锯齿的问题,尤其是一些直边斜过来的时候,如图:

image.png

抗锯齿在实际项目中必不可少,本文梳理一下Unity中各抗锯齿方案:
MSAA-----多重采样抗锯齿----MultiSampling Anti-Aliasing
FXAA-----快速近似抗锯齿----Fast Approximate Anti-Aliasing
SSAA-----超级采样抗锯齿----Super Sampling Anti-Aliasing
FSAA-----全屏抗锯齿----Full Scene Anli-Aliasing
MSAA----多重采样抗锯齿----MultiSampling Anti-Aliasing
CSAA-----覆盖采样抗锯齿----CoverageSampling Anti-Aliasing
CFAA-----可编程过滤抗锯齿----Custom Filter Anti-Aliasing
MLAA----形态抗锯齿(统称,包含FXAA、SMAA等)----Morphological Anti-Aliasing
TAA------时间性抗锯齿----Temporal AA(TXAA,TSMAA,TSSAA)
CTAA-----电影时间抗锯齿----Cinematic Temporal Anti-Aliasing
SMAA----增强型子像素形态抗锯齿----Enhanced Subpixel Morphological Anti-Aliasing
MFAA----多帧采样抗锯齿----MultiFrame Sampling Anti-Aliasing
EQAA-----增强型抗锯齿----Enhanced Quality AA
DLSS-----深度学习超采样----Deep Learning AA

MSAA

MSAA基本上只对画面中物体的边缘进行放大、混合的抗锯操作,因为边缘是锯齿最明显的地方(注意不是所有的边缘)。在光栅化阶段,判断一个三角形是否被像素覆盖的时候会计算多个覆盖样本,但是在pixel shader着色阶段计算像素颜色的时候每个像素还是只计算一次。
我们一般说的4x、8x,就是放大倍数,放得越大,供混合的采样越充份,效果越好,但是处理速度也就越慢。
Unity自带的设置中的2倍、4倍、8倍就是MSAA。实测项目中MSAA会导致复杂模型内部边缘闪烁问题,最终未开启MSAA。

image.png

8倍MSAA效果:

image.png

FXAA

FXAA是屏幕后处理的边缘模糊技术。但是和MSAA不同,MSAA提边缘是在图形管线的前段(跟深度有关)。FXAA是种后处理技术,后处理技术一般在画面完成后,通过像素颜色检测边缘(色彩差异太大时,不是边缘也被认为成边缘,精度有问题)。后处理技术一般没倍数概念,因为不存在放大。
效果上FXAA接近MSAA的4倍效果,但在一些细节上会比4倍MSAA差一点。
FXAA作为性能最好的抗锯齿效果,直接加入使用了。FXAA插件地址或者直接AssetStore去搜,免费的:https://pan.baidu.com/s/1gs_5MaukJ71AFas2ZsPQug 提取码: fdjn
FXAA效果:

image.png

SSAA

场景要以最终分辨率的两倍渲染到缓冲区,并平均四个像素的块以生成最终图像。甚至可以使用更高的分辨率和不同的采样模式来进一步改善效果。这种方法消除了锯齿,但也会稍微模糊整个图像。
简单说就是原来渲染1024x768分辨率的,我直接x2或者更高,最后缩小到1024x768来渲染。
SSAA是最暴力的抗锯齿方案,这种做法在数学上是最完美的抗锯齿。但是劣势也很明显,光栅化和着色的计算负荷都比原来多了4倍,render target的大小也涨了4倍。效率非常差,实际项目中效果确实最好,但在某些移动端机型会造成严重的发热情况。
SSAA的代码可以直接去这篇取,放相机上即可。
SSAA效果:

image.png

简单常用的基本就上述三种,使用起来比较简洁。


官方的后处理插件PostProcessing抗锯齿用法:
1.在Package Manager中找到Post Processing并安装

image.png

2.给相机添加Post-process Layer

image.png

3.修改需要影响的物体层,并选择抗锯齿方案,物体别忘了改到对应的层

image.png

image.png

4.Post-process插件提供了3种抗锯齿方案:FXAA,SMAA,TAA。

FXAA

其中FXAA是如上所述效率最高1个DrawCalls,效果最差的,主要针对抗锯齿要求不太高的项目,甚至还能在FXAA基础上选Fast Mode进一步提升效率。

SMAA

SMAA是类似FXAA的滤镜类抗锯齿,性能消耗约为FXAA的2倍左右,也算比较好的,SMAA的核心原理来源于MLAA。MLAA的基本思路是:检测每帧图像上的边缘(通常可对亮度、颜色、深度或者法线进行边缘检测),然后对这些边缘进行模式识别,归类出Z、U、L三种形状,根据形状对边缘进行重新矢量化(re-vectorization),并对边缘上的像素根据覆盖面积计算混合权重,将其与周围的颜色进行混合,从而达到平滑锯齿的目的。

image

SMAA在MLAA的基础上加入了针对尖锐几何特征的处理,并加入了对角线模式识别,加入了对局部对比度的考虑,改善了距离搜索算法。总体上是效果和性能的中和产物,个人尝试了一下简单的面片这个抗锯齿效果最好,4个DrawCalls。

TAA

TAA据说(未考证)是目前业内游戏大厂使用最多,最广泛的抗锯齿。使用运动矢量组合两帧,以确定在何处对前一帧进行采样。在每一帧对屏幕区域内的像素进行一个抖动操作,这样当连续的多个帧的数据混合起来以后,就相当于对每个像素进行了多次采样,他将采样点从单帧分布到多个帧上,使得每一帧并不需要多次采样增加计算量,但TAA往往会盲目地跟随移动物体的运动矢量,从而造成屏幕上的细节模糊不清。
据说(未考证)大厂基本会自己根据自己的项目写TAA的效果。如果物体运动过快会导致画面糊、残影,性能方面好像各有说辞,3个DrawCalls,这里如果是小团队,建议这几个方案都试试根据项目需求录取吧。

Post Processing除了抗锯齿之外还提供了很多其他的后处理效果,小伙伴们可以自行百度试试(这应该是TA的事情)。

http://www.taodudu.cc/news/show-2342985.html

相关文章:

  • android bitmap 去锯齿,bitmap缩放时抗锯齿
  • CSS 幻术 | 抗锯齿
  • java 图片怎么设置抗锯齿,图片变形的抗锯齿处理方法
  • c语言编程 消除直线锯齿,C语言 抗锯齿像素渲染
  • html canvas缩放抗锯齿,Html5 canvas drawImage:如何应用抗锯齿
  • 计算机图形学中的抗锯齿
  • java 锯齿_Java2D图形抗锯齿
  • java画图抗锯齿_Android编程画图之抗锯齿解决方法
  • ◮OpenGL-抗锯齿
  • 抗锯齿原理
  • 第5章-着色基础-5.4-锯齿和抗锯齿
  • 【高级渲染特性】抗锯齿技术介绍
  • 深入剖析MSAA多重采样抗锯齿(multisample anti-aliasing)
  • glsl 抗锯齿锯齿_什么是抗锯齿?
  • 图像处理 抗锯齿放大_什么是抗锯齿,它如何影响我的照片和图像?
  • HDAO one error
  • HDAO去中心化社区自治平台,助力明星项目启航
  • JAVA拉取Hive的数据导入到MySQL中
  • 关于DES加密内部收费版
  • 【PC端】jQuery+PHP实现浏览更多内容(jquery.more.js插件)
  • Cryengine渲染引擎剖析(转)
  • 全局光照:光线追踪、路径追踪与GI技术进化编年史
  • 除了加速上币,OKEx在DeFi热潮中还能做什么?
  • 浅谈Hibernate的flush机制
  • Spring笔记
  • 优家益购——JavaWeb项目(Jsp+Servlet+MySQL+tomcat)
  • 基于数据报表处理系统(VUE+SSM+MySQL)
  • CryEngine3渲染引擎剖析
  • 技术美术知识学习4200:SSAO算法
  • 【《Real-Time Rendering 3rd》 提炼总结】(八) 第九章 · 全局光照:光线追踪、路径追踪与GI技术进化编年史

Unity 抗锯齿方案梳理相关推荐

  1. Unity抗锯齿设置

    Unity抗锯齿设置 问题 方法 方法一 方法二 方法三 方法四 方法五 方法六 参考 问题 有时候在Unity中的模型边缘.棱角会出现锯齿的情况. 如图: 方法 一般情况,下面有以下几种方法: 方法 ...

  2. Unity抗锯齿,Unity3D模型花闪烁等效果优化。

    Unity抗锯齿,Unity3D模型花闪烁等效果优化. 最近在做全息投影项目,模型闪烁,锯齿明显,自己总结了一些优化方法. 方法一:在场景内摄像机上挂载如下抗锯齿脚本.摄像机改为Skybox或者Sol ...

  3. Unity 抗锯齿Antialiasing

    直接放到相机上用即可,可以有效降低锯齿(相对于其他插件而言),另外这个脚本跟NatCorder录制视频冲突,具体原因后续再详查. 最近突然发现PC端用Antialiasing修改窗口分辨率时会黑屏,后 ...

  4. php画图抗锯齿,GD绘图抗锯齿方案[PHP]

    最近在使用PHP gblib生成分享图片的过程中,使用了imagefilledellipse 画圆环用来显示进度,发现锯齿特别严重; 遂google,发现了pChart2这个开源图表库,其demo效果 ...

  5. Unity游戏画面参数解析与应用:垂直同步、动态模糊、抗锯齿

    前言 最近会在B站刷到一些关于 30帧暴涨90帧! 高 中 低端显卡运行3A大作优化指南[干货向] 游戏画质设置教程 等等这样关于画面与性能调整的的视频,看完之后受益良多,UP主们经过实际测试获取到宝 ...

  6. 关于三角形重心坐标插值/锯齿/抗锯齿/延迟渲染中的抗锯齿问题

    我们都知道,在渲染流水线中,顶点着色器对输入的顶点数据进行处理(如顶点的坐标变换和光照计算)以后,GPU会进行进行齐次除法并将顶点从三维空间转换到二维的屏幕坐标,接着将这些所需要的着色数据发送到光栅化 ...

  7. 各种抗锯齿效果的记录

    抗锯齿介绍 SSAA :超级采样抗锯齿 描述 最早期的全屏抗锯齿,方法简单直接, 超级采样抗锯齿就是把当前分辨率成倍提高(如当前分辨率为1024×768,开启2倍的SSAA后,画面放大到2048×15 ...

  8. 【技美百人计划】图形 4.4 抗锯齿概论

    笔记 锯齿是怎么产生的 左图:想要的效果 右图:表现的效果 抗锯齿分类 ● 前向渲染: SSAA.MSAA.CSAA.RGSS等 ● 延迟渲染: FXAA.MLAA.SMAA等 ● 时域上的抗锯齿: ...

  9. 【技术美术图形部分】简述主流及新的抗锯齿技术

    电脑的世界里没有曲线,都是三角面组成一个个模型的,因此一定会出现走样(锯齿)的情况,只是严重与否的问题,而AA也是实时渲染最难解决的问题之一. Sampling&Artifacts Lectu ...

  10. 电影级高画质!3D游戏抗锯齿技术解析

    几乎无法区分的现实和虚拟 泡泡网显卡频道8月24日 近几年来显卡技术的发展速度可谓是突飞猛进,不仅仅是性能的提升,更多的新特效也令我们的游戏世界更加精彩更加逼真.近日人气明星姚晨在微博上发出一张水面照 ...

最新文章

  1. Appium的Java封装
  2. AngularJS学习笔记(二) 表单验证案例(ng-repeat/filter)
  3. PHP开启session的函数,ThinkPHP中session函数详解
  4. x的平方根—leetcode69
  5. IE Cookie 文件格式
  6. JAVA实现飞机大战详解
  7. PHP处理微信昵称emoji表情符号和特殊颜文字符
  8. 尝试说透网关和路由器的异同
  9. 网络游戏(MMORPG) 好玩的原因
  10. maven的jar包引入成功却仍然爆红
  11. lay-verify的失效情况
  12. springboot整合poi基于excel模板下载的功能实现
  13. 职业教育利益相关者的相关论述及研究不足
  14. 所有城市及经纬度数据(2021-8-28)
  15. T3备份提示原先格式化该文件时所用扇区大小为512
  16. [Tomcat]配置默认访问端口及Tomcat默认访问项目
  17. 弹性云服务器有什么用
  18. 计算机丢失codex.dll,进击的要塞出现codex.dll文件丢失
  19. matlab二维图像重采样,使用网格插值对图像重采样
  20. 2022年天梯赛题目记录

热门文章

  1. 爸爸去哪儿第三季之刘诺一8.1第四期
  2. html怎么设置目录中间的虚线,Word目录里面的虚线怎么打方法
  3. word中 插入公式及交叉引用
  4. 社会性动物1: 从众的原因,如何避免
  5. 抽样与抽样分布——中心极限定理、点估计
  6. 实习转正述职报告PPT模板
  7. excel 查找重复值方法
  8. CBR编码与VBR编码
  9. 七参数空间直角坐标系坐标转换
  10. 一种人脸识别活体检测方法:基于背景的活体判断方法