4.4 抗锯齿

一、锯齿是怎么产生的

二、抗锯齿介绍

1.SSAA(super sample anti-aliasing)

拿4xSSAA举例子,假设最终屏幕输出的分辨率是800x600, 4xSSAA就会先渲染到一个分辨率1600x1200的buffer上,然后再直接把这个放大4倍的buffer下采样至800x600。这种做法在数学上是最完美的抗锯齿。但是劣势也很明显,光栅化和着色的计算负荷都比原来多了4倍。

2.MSAA(Multisampling Antialising)

MSAA(Multi-Sampling AA)则很聪明的只是在光栅化阶段,判断一个三角形是否被像素覆盖的时候会计算多个覆盖样本(Coverage sample),但是在pixel shader着色阶段计算像素颜色的时候每个像素还是只计算一次。例如下图是4xMSAA,三角形只覆盖了4个coverage sample中的2个。所以这个三角形需要生成一个fragment在pixel shader里着色,只不过生成的fragment还是在像素中央(位置,法线等信息插值到像素中央)然后只运行一次pixel shader,最后得到的结果在resolve阶段会乘以0.5,因为这个三角形只cover了一半的sample。现代所有GPU都在硬件上实现了这个算法,而且在shading的运算量远大于光栅化的今天,这个方法远比SSAA快很多。顺便提一下之前NV的CSAA,它就是更进一步的把coverage sample和depth,stencil test分开了。

问题:MSAA的一个问题就是和现在大街小巷都是的deferred shading框架并不是那么兼容。因为用deferred shading的时候场景都先被光栅化到GBuffer上去了,不直接做shading。

3.TAA(Temporal Antialiasing)

  • 把多次采样的过程分不到每一帧中去,每一帧都平均前面几帧保存下来的数据
  • 每一帧会有一定的偏移,继承了MSAA采样
  • 用motion vector保存每帧移动的偏移

TemporalAA之前

TemporalAA之后

问题:会有闪烁的情况。

4.FXAA(Fast Approximate Anti-Aliasing)(后处理)

  • 利用边缘检测有效的模糊混合

5.SMAA

主流抗锯齿方案详解(四)SMAA

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/212894.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Django使用】10大章31模块md文档,第5篇:Django模板和数据库使用

当你考虑开发现代化、高效且可扩展的网站和Web应用时,Django是一个强大的选择。Django是一个流行的开源Python Web框架,它提供了一个坚实的基础,帮助开发者快速构建功能丰富且高度定制的Web应用 全套Django笔记直接地址: 请移步这…

TableStructureRec: 表格结构识别推理库来了

目录 引言lineless_table_rec: 无线表格识别库安装使用结果 wired_table_rec:有线表格识别库安装使用结果 写在最后 引言 TableStructureRec 仓库是用来对文档中表格做结构化识别的推理库,包括来自 PaddleOCR 的表格结构识别算法模型、来自阿里读光有线…

yolov3学习总结

目标检测算法 单阶段:不提取出候选框,直接将整个图像输入模型中,算法直接输出检测结果,端到端 yolo,ssd 端到端,输入图像到网络中,然后从网络中输出图像 二阶段:先从图像中提取出…

PCIE链路训练-状态机描述2

Configuration.Lanenum.Accept 如果use_modified_TS1_TS2_Ordered_Set为1,需要注意: (1)tx需要发送Modified TS1而不是正常的TS1; (2)rx端必须检查是否收到Modified TS1(注意一开…

快速在WIN11中本地部署chatGLM3

具体请看智谱仓库github:GitHub - THUDM/ChatGLM3: ChatGLM3 series: Open Bilingual Chat LLMs | 开源双语对话语言模型 或者Huggingface:https://huggingface.co/THUDM/chatglm3-6b 1. 利用Anaconda建立一个虚拟环境: conda create -n chatglm3 pyt…

SSH 下载及安装之 Windows Server

文章目录 1 概述1.1 操作系统截图1.2 下载 2 安装2.1 解压到指定路径2.2 CMD 到 OpenSSH 目录下2.3 安装 sshd 服务2.3 开放端口 222.4 配置开机自启 sshd 服务2.5 配置环境变量 path2.6 测试 3 连接3.1 使用 Xshell 连接3.2 输入登录用户名3.3 输入登录密码3.4 会话已建立 1 概…

Redis打包事务,分批提交

一、需求背景 接手一个老项目,在项目启动的时候,需要将xxx省整个省的所有区域数据数据、以及系统字典配置逐条保存在Redis缓存里面,这样查询的时候会更快; 区域数据字典数据一共大概20000多条,,前同事直接使用 list.forEach…

mac mysql连接中断重新启动办法

遇到如图所示问题,可以用下面的命令重启mysql服务 sudo /usr/local/mysql/support-files/mysql.server start

【Spring Cloud实战】分布式系统控制与组件应用

在现代软件开发中,分布式系统已经成为一种常见的架构模式,被广泛应用于各种规模的企业和组织中。这种架构模式通过将应用程序拆分为独立的组件,并分布在不同的计算机节点上运行,使得系统能够应对高负载和大规模的数据处理需求&…

竞赛 题目:基于深度学习的图像风格迁移 - [ 卷积神经网络 机器视觉 ]

文章目录 0 简介1 VGG网络2 风格迁移3 内容损失4 风格损失5 主代码实现6 迁移模型实现7 效果展示8 最后 0 简介 🔥 优质竞赛项目系列,今天要分享的是 基于深度学习卷积神经网络的花卉识别 该项目较为新颖,适合作为竞赛课题方向&#xff0c…

NSGA-III求解微电网多目标优化调度(MATLAB)

一、NSGA-III简介 NSGA-III算法由Kalyanmoy Deb和Himanshu Jain于 2014年提出。 参考文献:Deb K , Jain H . An Evolutionary Many-Objective Optimization Algorithm Using Reference Point-Based Nondominated Sorting Approach, Part I: Solving Problems With …

在openSUSE-Leap-15.5-DVD-x86_64中使用deepin-wine-6.0.0.19再使用金山打字通2016

在openSUSE-Leap-15.5-DVD-x86_64中使用deepin-wine-6.0.0.19再使用金山打字通2016 在openSUSE Software官网输入关键字deepin-wine搜索得到fedora-deepin-wine6的作者是xuthus5 https://software.opensuse.org/package/fedora-deepin-wine6 在百度贴吧fedora吧的《fedora下的…