族谱网 头条 人物百科

深度缓冲

2020-10-16
出处:族谱网
作者:阿族小谱
浏览:413
转发:0
评论:0
发展即使深度缓冲区有足够大的分辨率,但是如果z缓冲区中距离精度不随距离均匀分布的话图像质量也可能会出现问题。距离较近的部分通常精度较高,这样近距离的物体显示质量也较高。通常这是所期望得到的结果,但是当物体距离变得较远时可能会出现人为误差。一种能够得到更加均匀分布精度的深度缓冲变体是w缓冲。在场景开始的时候,必须将深度缓冲区初始化为一个特定的值,通常初始化为1.0,这是因为1.0是深度范围0到1的上限,它意味着在整个视体(viewingfrustum)之内没有任何物体。通常认为深度缓冲概念的发明主要归功于艾德文·卡特姆,虽然WolfgangStraßer也在1974年所写的博士论文中提到了同样的思想。在最近几年的PC图形卡上,深度缓冲管理需要使用大量的内存带宽。人们采用了各种各样的方法减少深度缓冲的影响,其中的方法有无损数据压缩(因为压缩/解压所消耗的计算机资源要比带宽的占用更加合算)。另外...

发展

即使深度缓冲区有足够大的分辨率,但是如果z缓冲区中距离精度不随距离均匀分布的话图像质量也可能会出现问题。距离较近的部分通常精度较高,这样近距离的物体显示质量也较高。通常这是所期望得到的结果,但是当物体距离变得较远时可能会出现人为误差。一种能够得到更加均匀分布精度的深度缓冲变体是w缓冲。

在场景开始的时候,必须将深度缓冲区初始化为一个特定的值,通常初始化为1.0,这是因为1.0是深度范围0到1的上限,它意味着在整个视体(viewing frustum)之内没有任何物体。

通常认为深度缓冲概念的发明主要归功于艾德文·卡特姆,虽然Wolfgang Straßer也在1974年所写的博士论文中提到了同样的思想。

在最近几年的PC图形卡上,深度缓冲管理需要使用大量的内存带宽。人们采用了各种各样的方法减少深度缓冲的影响,其中的方法有无损数据压缩(因为压缩/解压所消耗的计算机资源要比带宽的占用更加合算)。另外还使用了极快的硬件工具清除深度信息,这种方法完全取代了“一帧正、一帧负”这种利用有符号数巧妙地绕过帧间深度信息清除的技巧。

z消隐

在渲染过程中,z消隐是根据深度信息对像素的早期剔除。当渲染隐藏表面所需要的计算量很大的时候,这种方法可以提升处理性能。z消隐是深度缓冲的一个直接结果,在这种方法中每个待定像素的深度都要与相同位置的现存像素的深度进行比较。

使用深度缓冲区,一旦像素的深度已经确定,那么就可以对这个像素进行裁剪,这样如果该像素不可见的话就可以完全跳过照明与纹理处理的过程,并且需要消耗许多时间的像素浓淡工具通常也会跳过对于裁剪掉的像素的处理。这样z消隐就成为了在填充速度、光照、纹理或者像素浓淡处理是主要瓶颈的场合的一种很好的优化工具。

尽管深度缓冲可以处理未经排序的几何体,但是按照深度不断增加的方式(与画家算法排序方式相反)对多边形进行排序,每个像素就可以只渲染一次。对于填充速度有限但是有大量重复绘制场合,这种方法就可以提高处理性能。

数学基础

待渲染的照相机空间中的深度经常定义为近距near到远距far之间的z值,在透视变换之后,得到新的z"值:

z′=far+nearfar− − -->near+1z(− − -->2⋅ ⋅ -->far⋅ ⋅ -->nearfar− − -->near){\displaystyle z"={\frac {{\mathit {far}}+{\mathit {near}}}{{\mathit {far}}-{\mathit {near}}}}+{\frac {1}{z}}({\frac {-2\cdot {\mathit {far}}\cdot {\mathit {near}}}{{\mathit {far}}-{\mathit {near}}}})}

其中z{\displaystyle z}是照相机空间的值,它有时候也表示为w或者w"。

结果z"是在 -1到1之间归一化之后的值,其中近距near平面位于 -1处,远距far平面位于1处。在这个范围之外的相应点在视图体之外,不需要进行渲染。

为了实现深度缓冲,在整个屏幕空间上的对当前多边形顶点之间进行插值来计算z"的值,通常这些中间数值在深度缓冲区中用定点数格式保存。距离近距near平面越近,z"值越密;距离越远,z"值越稀。这样距离照相机越近精度越高。near平面距离照相机越近,则远距离位置的精度越低。near平面距离照相机太近是在远距离物体产生人为误差的一个常见因素。

w缓冲

为了实现w缓冲,通常照相机空间中的z值或者w值都保存成浮点数格式,但是这些数值无法根据顶点在整个屏幕上进行线性插值——通常对它的倒数进行插值,然后再取倒数。这样得到的结果w值与z"不同,它们在near平面与far平面之间均匀分布。

根据应用的不同z缓冲与w缓冲生成的图像质量也有所不同。

Javascript

当在JavaScript中使用标签的时候,可以将下面的程序作为深度缓冲的公式。

参见

艾德文·卡特姆-- 深度缓冲概念的发明人

三维计算机图形

不规则深度缓冲

Z-order

Notes

Note 1: see W.K. Giloi, J.L. Encarnação, W. Straßer. "The Giloi’s School of Computer Graphics". Computer Graphics 35 4:12–16.


免责声明:以上内容版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。感谢每一位辛勤著写的作者,感谢每一位的分享。

——— 没有了 ———
编辑:阿族小谱
发表评论
写好了,提交
{{item.label}}
{{commentTotal}}条评论
{{item.userName}}
发布时间:{{item.time}}
{{item.content}}
回复
举报
点击加载更多
打赏作者
“感谢您的打赏,我会更努力的创作”
— 请选择您要打赏的金额 —
{{item.label}}
{{item.label}}
打赏成功!
“感谢您的打赏,我会更努力的创作”
返回

更多文章

更多精彩文章
打赏
私信

推荐阅读

· 缓冲国
缓冲国的例子吐谷浑:唐朝和吐蕃之间南诏:唐朝和吐蕃之间大理:在吐蕃和宋朝之间
· 光深度
公式光深度表现的是光束在介质中传播的路径上被散射或吸收而被移除的量。如果I0{\displaystyleI_{0}}是辐射源的强度,I{\displaystyleI}是通过路径后,观测者测到的强度,则光深度ττ-->{\displaystyle\tau}被下列的方程式定义为:从基础原则的演算在核子物理,原子云的光深度可以从原子的量子力学特性来计算。它的形式是:ττ-->=d2νν-->N2cℏℏ-->ϵϵ-->0Aγγ-->,{\displaystyle\tau={\frac{d^{2}\nuN}{2c\hbar\epsilon_{0}A\gamma}},}此处d{\displaystyled}表示跃迁偶极矩,γγ-->{\displaystyle\gamma}:转换的自然线宽,νν-->{\displaystyle\nu}:频率,N{\di...
· 塞浦路斯联合国缓冲区
相关条目三八线柏林墙深圳河
· 色彩深度
索引颜色24-bit真彩色(16,777,216色)182KB8-bit索引颜色(256色)38KB4-bit索引颜色(16色)19KB电脑自动选择一张图片中最常见的颜色,制成颜色表,一同储存在图片中。索引颜色通常是8-bit(256色),使用8-bit压缩出来的图片,看起来跟真彩色差不多,档案大小则变得很小。
· 深度操作系统
历史与发展Deepin系统源于HiweedLinux(Hiwix)系统,Hiwix0.1最早发布于2004年2月28日,是一款比Ubuntu历史还要悠久的Linux发行版。Deepin系统经历了Hiwix、HiweedLinux和LinuxDeepin多次更名的同时,默认使用的桌面环境上也不断的变化,Deepin早期曾使用过IceWM、xfce、LXDE和Gnome,但是最终确定使用自行开发的DeepinDesktopEnvironment。关于基于的底层系统上,也经历了Morphix、Debian和Ubuntu的多次变化。发行版本第五届开发者与用户大会上,深度科技副总经理王勇表示为了让用户更快的体验正能量,Deepin不再像早期一样一年发行两次,也不再跟随一年发行一次的步调,而是改为准备就绪后才发行,版本号也不再与年份有相关,并且三个月会进行一次小幅更新。深度发展之软件项目Deepin桌...

关于我们

关注族谱网 微信公众号,每日及时查看相关推荐,订阅互动等。

APP下载

下载族谱APP 微信公众号,每日及时查看
扫一扫添加客服微信