当前位置: 首页 > news >正文

三维渲染中顺序无关的半透明混合(OIT)(二——Stencil Route)

1、A-Buffer算法。

在谈到Stencil Route之前,需要先讨论A-Buffer算法。A-Buffer是一种图形学(渲染方向)上的用于可见面分析(Visble Surface Detection)的技术,是Z-Buffer的衍生方法。

Z-Buffer是用于剔除 不透明 物体的算法。假设某个像素有A B C三个不透明物体重叠,A在最上面,B在中间,C在最底下,那么Z-Buffer的结果就是A,意味着B、C都被A遮蔽了,因此可以针对该像素点剔除。[ref:A-Buffer简介 - 鸟临窗语报天晴 - 博客园]

A-Buffer算法需要比Z-Buffer更多的内存。其中Z—Buffer仅需为每个像素位置一个基本的深度值即可。而A-Buffer为每个像素提供了可多达16个链式(chain)的数据,

在上图中表示的一个半透明对象的A—Buffer存储策略,其中depth<0表示其存在多个半透明的面,每个节点存储下一个面的深度信息。【A-Buffer Method - GeeksforGeeks】

2、抗锯齿

注意这个深度信息还可以存储某个投影点在该像素的所占面积,这可以用于实现狂锯齿效果。所谓抗锯齿,就是某个像素的颜色是相邻颜色的混合,而不是只取对应像素的。在线面的边角它们是不能完全占有这个像素的。比如下图中第6号点。

比如MSAA的抗锯齿算法,它采用的是周边8个像素并进行采样,

 3、Stencil Route算法

Stencil Route是一种深度模版的路由,可以采用多种手段进行实现,一般采用A_Buffer算法实现深度存储和计算。

相比于上次说的Depth Peeling,有两个不同的分析结果,第一个是在 【stencil_routed_a-Buffer_sigg07.ppt】中,其提到ABuffer算法的效率会低,情况如下图。另外一份报告Stencil Route的效率可能比Depth Peeling快,以为相比于多次渲染,排序效率更高。

最后A-Buffer算法可能不是DX或者OpenGL自带的,而是需要自己实现的算法。

http://www.lryc.cn/news/494572.html

相关文章:

  • (SAST检测规则-3)固定的 SessionID 缺陷详解
  • 【安卓开发】【Android Studio】项目构建(Build)时报错:Integer Overflow
  • STM32主要功能
  • MacOS 如何连接 Linux NFS 服务器
  • 【英特尔IA-32架构软件开发者开发手册第3卷:系统编程指南】2001年版翻译,2-39
  • 摄影相关常用名词
  • 02.06、回文链表
  • Shell脚本小练习
  • 四轮转向轮式里程计设计(python)
  • 多方法做配对样本t检验(三)
  • Vue 将推出「无虚拟DOM」版本,又是新的前端框架趋势?
  • 阿里云ECS服务器磁盘空间不足的几个文件
  • 从0开始linux(38)——线程(1)线程概念
  • Ubuntu源码安装gitlab13.7集群多前端《二》
  • 身份证OCR 识别 API 接口的发展前景
  • Spring boot之BeanDefinition介绍
  • 30分钟学会正则表达式
  • Python 自动化办公的 10 大脚本
  • Python蒙特卡罗MCMC:优化Metropolis-Hastings采样策略Fisher矩阵计算参数推断应用—模拟与真实数据...
  • 成绩排序
  • MySQL底层概述—7.优化原则及慢查询
  • R““有什么作用在C++中,举例说明
  • linux中top 命令返回数据解释
  • 深入理解二叉树及其变体:平衡二叉树、红黑树、B-树和B+树
  • C++ 编程技巧之StrongType(1)
  • 芯片测试-smith圆图
  • HTML技术深度解析:构建现代网页的基石
  • Leecode刷题C语言之判断是否可以赢得数字游戏
  • Ubuntu 关机命令
  • 数据采集中,除了IP池的IP被封,还有哪些常见问题?