码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【高级渲染特性】抗锯齿技术介绍


    什么是锯齿

    图像的边缘有明显的像素边界,看起来不自然,好像锯齿一样

    什么是抗锯齿

    消除或者减轻锯齿

    为什么会出现锯齿

    计算器屏幕上显示的图像由一个个像素组成,绘制斜线的时候需要按照一个方向填充一个个像素的颜色。分辨率越大像素越多,分辨率越小,像素越少。
    像素很少的时候,连续的几个像素看起来就会形成锯齿。分辨越率大锯齿越弱。

    抗锯齿技术可以分3类

    空间抗锯齿(Spatial anti-aliasing)

    从高分辨率的渲染结果里进行采样,填充到低分辨率的结果图像,比如从800x400大小的图形采样像素填充到400x200大小的图像里
    填充低分辨率结果时,计算需要在高分辨率结果里采样的像素,并且采样周边像素,对它们进行混合后作为结果填充到目标像素

    后处理抗锯齿(Post-process anti-aliasing)

    基于图像处理的抗锯齿

    时域抗锯齿(TAA)

    分帧进行抗锯齿

    Spatial anti-aliasing方案

    Supersampling anti-aliasing (SSAA)

    超级采样抗锯齿,又叫全屏采样抗锯齿(full-scene anti-aliasing (FSAA)),第一个被开发出来的抗锯齿技术,有2个缺点
    1 会影响水平、竖直的线,这没必要也导致不清晰
    2 处理整张图性能消耗高,不好用在实时渲染

    Multisample anti-aliasing (MSAA)

    多重采样抗锯齿,每个像素有多个子样本,当前像素的颜色会输出到这些子样本上,当子样本被填满时,所有的子样本做一次均值作为当前像素的最终结果。
    这个功能由硬件支持。4x MSAA的采样方式:4x MSAA的采样方式
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    CSAA and EQAA

    检测多边形哪些地方可能有锯齿,然后只对这些地方进行超级采样

    后处理抗锯齿方案

    MLAA and FXAA

    快速近似抗锯齿,找到图像的边缘,对边缘进行平滑处理
    缺点:相机移动时,高频区域会闪烁

    Temporal anti-aliasing (TXAA)

    NVIDIA提供了一种称作TXAA的抗锯齿技术,实际上就是TAA+MSAA。通过引入额外的深度信息来实现在延迟渲染上使用MSAA,可以用在实时渲染。

    Enhanced subpixel morphological anti-aliasing (SMAA)

    和FXAA类似的原理,但是更精细的边缘检测

    时域抗锯齿TAA

    TAA(Temporal Anti-Aliasing)是时间性抗锯齿,是最常用的图像增强算法之一,这是一种基于着色器的算法,使用运动矢量组合两帧,以确定在何处对前一帧进行采样。
    在每一帧对屏幕区域内的像素进行一个抖动操作,这样当连续的多个帧的数据混合起来以后,就相当于对每个像素进行了多次采样。
    他将采样点从单帧分布到多个帧上,使得每一帧并不需要多次采样增加计算量,但TAA往往会盲目地跟随移动物体的运动矢量,从而造成屏幕上的细节模糊不清。

    参考资料

    https://www.hp.com/us-en/shop/tech-takes/what-is-anti-aliasing
    https://en.wikipedia.org/wiki/Multisample_anti-aliasing
    https://therealmjp.github.io/posts/msaa-overview/
    https://zhuanlan.zhihu.com/p/342211163

  • 相关阅读:
    Materials Studio8.0
    SpringBoot如何集成Log模块呢?
    【1464. 数组中两元素的最大乘积】
    使用免费开源软件 Blender 编辑视频
    计算机毕业设计ssm庆阳红色旅游网站建设s237y系统+程序+源码+lw+远程部署
    ML+LLMs:利用LLMs大语言模型赋能或者结合ML机器学习算法进行具体应用的简介、具体案例之详细攻略
    分布式事务之Seata AT
    Kafka消费者Relance机制和分区机制
    Delphi、C# 和 TypeScript 之父 Anders Hejlsberg(安德斯·海尔斯伯格,海神)赶潮AI
    HashMap是怎么解决哈希冲突的?
  • 原文地址:https://blog.csdn.net/ak47007tiger/article/details/126377664
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号