色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

可視化深度精度

星星科技指導員 ? 來源:NVIDIA ? 作者:Nathan Reed ? 2022-04-30 07:41 ? 次閱讀

深度精度是每一個圖形程序員遲早都要面對的難題。關于這個主題已經寫了很多文章和論文,在不同的游戲、引擎和設備中可以找到各種不同的深度緩沖格式和設置。

由于它與透視投影交互的方式, GPU 硬件深度映射有點晦澀難懂,研究這些方程可能不會讓事情立即變得顯而易見。為了獲得它如何工作的直覺,畫一些圖片是很有幫助的。

這篇文章有三個主要部分。在第一部分中,我試圖為非線性深度映射提供一些動機。其次,我提供了一些圖表來幫助理解非線性深度映射在不同情況下是如何工作的,直觀且直觀。第三部分是 Paul Upchurch 和 Mathieu Desbrun ( 2012 )關于浮點舍入誤差對深度精度影響的提高透視渲染的精度主要結果的討論和再現。

為什么是 1 / z

GPU 硬件深度緩沖區通常不會存儲對象在相機前面的距離的線性表示,這與您第一次遇到這種情況時天真的期望相反。相反,深度緩沖區存儲的值與世界空間深度的倒數成比例。我想簡要介紹一下這次大會。

在本文中,我使用d表示深度緩沖區中存儲的值(在[0 , 1]中),并使用z表示世界空間深度,即沿視圖軸的距離,以世界單位(如米)表示。一般而言,它們之間的關系如下:

pYYBAGJZPfqAGgCjAAAHoXuXaz4472.png

在此公式中,a和b是與近平面和遠平面設置相關的常數。換言之,d始終是1/z.從表面上看,您可以想象將d作為您喜歡的z的任何函數。那么,為什么會有這種特殊的選擇呢?有兩個主要原因。First,1/z自然適合透視投影的框架。這是保證保持直線的最普通的變換類,這使得硬件光柵化變得很方便,因為三角形的直邊在屏幕空間中保持筆直。可以生成的線性重映射1/z通過利用硬件已經執行的透視圖劃分:

pYYBAGJZPfSAGbkKAAAbZS2hT9c230.png

當然,這種方法的真正威力在于投影矩陣可以與其他矩陣相乘,從而允許您將多個變換階段組合在一個矩陣中。

第二個原因是1/z在屏幕空間中是線性的,如埃米爾·佩爾松所述。因此,在柵格化的同時,在三角形上插值d是很容易的,而像分層 Z 緩沖區、早期 Z 消隱和深度緩沖區壓縮這樣的事情都要容易得多。

繪制深度圖

方程是硬的;這里有一些照片!

poYBAGJZPgGAFFE9AACNgsbu3ro800.png

閱讀這些圖表的方法是從左到右,然后從下到下。從d開始,繪制在左軸上。因為d可以是1/z,您可以將 0 和 1 放置在此軸上任意位置。勾號表示不同的深度緩沖區值。為了便于說明,我正在模擬一個 4 位標準化整數深度緩沖區,因此有 16 個等距記號。

水平追蹤刻度線,直到它們擊中目標的位置1/z曲線,然后向下至底部軸。這就是世界空間深度范圍中不同值的位置。

圖 1 顯示了 D3D 和類似 API 中使用的“標準”深度映射。您可以立即看到1/z曲線會導致靠近近平面的值聚集在一起,而靠近遠平面的值分布得非常分散。

也很容易看出為什么近平面對深度精度有如此深遠的影響。拉近近飛機將使d射程向上飛向飛機的漸近線1/z曲線,導致更不平衡的值分布:

poYBAGJZPcCAEDeaAAAxrJVNWO0651.jpg

類似地,在這種情況下,很容易看出為什么將遠平面一直推到無窮遠沒有那么大的效果。這只是意味著將d范圍稍微向下擴展到

latex.php?latex=%5Cfrac%7B1%7D%7Bz%7D%3D0&bg=ffffff&fg=000&s=0&c=20201002

:

pYYBAGJZPcCAGVqKAAAqEEuGMZI778.jpg

浮點深度呢?下圖添加了與具有三個指數位和三個尾數位的模擬浮點格式相對應的記號:

pYYBAGJZPcGAd92cAAArONBl3gE535.jpg

[0 , 1]中現在有 40 個不同的值——比以前的 16 個值多了一點,但它們中的大多數都無用地聚集在不需要更高精度的近平面上。

現在廣為人知的一個技巧是反轉深度范圍,將近平面映射到d=1,將遠平面映射到d=0:

poYBAGJZPcSABP25AAAwCM_xWlo720.jpg

好多了!現在,浮點的準對數分布在某種程度上抵消了1/z非線性,使您在近平面的精度與整數深度緩沖區相似,并大大提高了其他地方的精度。當你向遠處移動時,精度只會慢慢降低。

反向 -Z 技巧可能已經被獨立地重新發明了好幾次,但至少可以追溯到 Eugene Lapidous 和 Guofang Jiao (不幸的是,沒有可用的開放訪問鏈接)撰寫的 SIGGRAPH ‘ 99 論文低成本圖形硬件的最佳深度緩沖。最近,馬特·佩蒂尼奧。和布拉諾·凱門以及埃米爾·佩爾松的創造廣闊的游戲世界 SIGGRAPH 2012 年講座在帖子中重新推廣了這一概念。

之前的所有圖表均假定[0 , 1]為投影后深度范圍,這是 D3D 約定。那 OpenGL 呢?

pYYBAGJZPcWAdOQZAAAuJ1_uMZE719.jpg

默認情況下, OpenGL 假定投影后深度范圍為[-1 , 1]。這對整數格式不起作用,但是用浮點,所有的精度都在中間被無用地卡住。(該值被映射到[0 , 1]以便稍后存儲在深度緩沖區中,但這并沒有幫助,因為到[-1 , 1]的初始映射已經破壞了該范圍最遠一半的所有精度。)根據對稱性,反轉 -Z 技巧在這里沒有任何作用。

幸運的是,在桌面 OpenGL 中,您可以通過廣泛支持的ARB_clip_control擴展(現在也是 OpenGL 4 . 5 中的核心glClipControl)來解決這個問題。不幸的是,在德國,你運氣不好。

舍入誤差的影響

The 1/z映射和浮點與整數深度緩沖區的選擇是精度故事的重要部分,但不是全部。即使您有足夠的深度精度來表示要渲染的場景,也很容易最終得到由頂點變換過程的算術錯誤控制的精度。

如前所述,厄普丘奇和德斯布倫對此進行了研究,并提出了兩項主要建議,以盡量減少舍入誤差:

使用一個無限遠的平面。

將投影矩陣與其他矩陣分開,并在頂點著色器中的單獨操作中應用它,而不是將其組合到視圖矩陣中。

Upchurch 和 Desbrun 通過分析技術提出了這些建議,其基礎是將舍入誤差視為每次算術運算中引入的小隨機擾動,并通過轉換過程將其跟蹤到一階。我決定使用直接模擬來檢查結果。

這是我的源代碼 – Python 3 . 4 和 NumPy 。它的工作原理是生成一系列隨機點,按深度排序,在近平面和遠平面之間線性或對數間隔。然后,它使用 32 位浮點精度將點通過視圖和投影矩陣以及透視分割,并可選地將最終結果量化為 24 位整數。

最后,它遍歷序列并計算兩個相鄰點(最初具有不同深度)由于映射到相同深度值而變得不可區分或實際交換順序的次數。換句話說,它測量深度比較錯誤發生的速率,這與不同場景下的 Z- 戰斗等問題相對應。

以下是近距離= 0 . 1 ,遠距離= 10K ,線性間隔深度為 10K 時獲得的結果。(我也嘗試了對數深度間距和其他近/遠比率,雖然詳細數字各不相同,但結果的總體趨勢是相同的。)

在表中,“不可區分”表示不可區分(兩個相鄰深度映射到相同的最終深度緩沖區值),“交換”表示兩個相鄰深度交換順序。

很抱歉沒有繪制這些,但是有太多的維度,使其易于繪制!不管怎樣,看看這些數字,一些普遍的結果是清楚的。

在大多數設置中,浮點深度緩沖區和整數深度緩沖區之間沒有區別。算術誤差淹沒了量化誤差。這在一定程度上是因為 float32 和 int24 在[0 . 5 , 1]中具有幾乎相同大小的 ulp (因為 float32 具有 23 位尾數),因此實際上在絕大多數深度范圍內幾乎沒有額外的量化誤差。

在許多情況下,分離視圖矩陣和投影矩陣(遵循 Upchurch 和 Desbrun 的建議)確實會帶來一些改進。雖然這并沒有降低總體錯誤率,但它似乎確實將互換變成了無法區分的東西,這是朝著正確方向邁出的一步。

一個無限遠的平面在錯誤率上的差別很小。 Upchurch 和 Desbrun 預測絕對numerical誤差會減少 25% ,但這似乎并沒有轉化為comparison誤差率的降低。

不過,以上幾點實際上并不重要,因為這里真正重要的結果是:反向 Z 映射基本上是神奇的。過來看:

在本測試中,帶浮動深度緩沖器的反向 -Z 給出零錯誤率。現在,如果您繼續收緊輸入深度值的間距,當然可以使其產生一些錯誤。不過,與其他任何選項相比,帶浮點數的反向 Z 更精確,令人可笑。

帶整數深度緩沖區的反向 -Z 與任何其他整數選項一樣好。

反向 Z 消除了預合成與單獨視圖/投影矩陣以及有限與無限遠平面之間的區別。換句話說,使用 reversed-Z ,您可以將投影矩陣與其他矩陣組合,并且可以使用您喜歡的遠平面,而不會影響精度。

我認為這里的結論是明確的。在任何透視投影情況下,只需使用帶反轉 Z 的浮點深度緩沖區!如果不能使用浮點深度緩沖區,則仍應使用 reversed-Z 。它不是解決所有精度問題的靈丹妙藥,尤其是在構建包含極端深度范圍的開放環境時。但這是一個很好的開始。

關于作者

Nathan Reed自 2008 年以來一直從事游戲和游戲相關領域的計算機圖形編程工作。目前,他致力于 Adobe 的 3D 和沉浸式工具。以前,他在 343 工業(光環無限)、索尼的吸盤沖壓工作室(臭名昭著的筑島幽靈)和 NVIDIA 工作。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • NVIDIA
    +關注

    關注

    14

    文章

    5022

    瀏覽量

    103263
  • python
    +關注

    關注

    56

    文章

    4799

    瀏覽量

    84817
收藏 人收藏

    評論

    相關推薦

    光學系統的3D可視化

    **摘要 ** 為了從根本上了解光學系統的特性,對其組件進行可視化并顯示光的傳播情況大有幫助。為此,VirtualLab Fusion 提供了顯示光學系統三維可視化的工具。這些工具還可用于檢查元件
    發表于 01-06 08:53

    什么是大屏數據可視化?特點有哪些?

    大屏數據可視化是指通過大屏幕展示大量數據和信息,以直觀、可視化的方式幫助用戶理解和分析數據。這種展示方式通常用于展示復雜的數據集、實時監控系統、企業管理儀表盤等。以下是關于 大屏數據可視化 的詳細
    的頭像 發表于 12-16 16:59 ?218次閱讀

    如何找到適合的大屏數據可視化系統

    選擇合適的大屏數據可視化系統是企業或組織在數字轉型過程中至關重要的一步。一個優秀的大屏數據可視化系統能夠實時呈現關鍵業務數據,提升決策效率,同時提供直觀、易于理解的視覺呈現,助力企業洞察數據背后
    的頭像 發表于 12-13 15:47 ?137次閱讀

    智慧能源可視化監管平臺——助力可視化能源數據管理

    博達可視化大屏設計平臺在智慧能源領域的價值體現在實時監控、數據可視化、決策支持和效率提升等方面。借助該平臺,企業可以輕松搭建智慧能源類可視化大屏,更加精確和高效地管理生產和生活,實現能源的可持續發展。
    的頭像 發表于 11-29 10:00 ?377次閱讀
    智慧能源<b class='flag-5'>可視化</b>監管平臺——助力<b class='flag-5'>可視化</b>能源數據管理

    智慧樓宇可視化的優點

    智慧樓宇可視化是指通過數據可視化技術來展示和分析樓宇的各種數據,為樓宇管理者和用戶提供直觀、清晰的信息展示和決策支持。以下是智慧樓宇可視化的優點,詳細介紹其在樓宇管理和運營中的重要作用: 1.實時
    的頭像 發表于 11-19 14:25 ?197次閱讀

    大屏數據可視化 開源

    在當今信息爆炸的時代,數據已經成為各個行業決策制定和業務發展的關鍵。為了更直觀、準確地理解和利用海量數據, 大屏數據可視化 成為一種強大的工具。通過將數據以圖表、圖形等形式展示在大屏幕上,不僅
    的頭像 發表于 06-27 16:06 ?428次閱讀
    大屏數據<b class='flag-5'>可視化</b> 開源

    如何實現園區大屏可視化

    孿生可視化 構建平臺利用Web三維可視化技術對現實場景進行仿真,實現園區級業務場景 的可視化呈現,助力企業快速完成項目的實施。實現園區場景立體可先,極致可視。那么,今天古河云科技就來給
    的頭像 發表于 06-19 15:39 ?445次閱讀
    如何實現園區大屏<b class='flag-5'>可視化</b>?

    態勢數據可視化技術有哪些

    智慧華盛恒輝態勢數據可視化技術是一種將數據以圖形、圖像、動畫等視覺形式展現出來的技術,特別是在處理和分析態勢數據時,該技術能夠將復雜的數據轉化為直觀、易于理解的視覺表現。以下是態勢數據可視化技術
    的頭像 發表于 06-11 15:47 ?388次閱讀

    智慧大屏是如何實現數據可視化的?

    智慧大屏,作為數據可視化的重要載體,已在城市管理、交通監控、商業運營等領域廣泛應用。本文旨在闡述智慧大屏實現數據可視化的關鍵技術和方法,包括數據源管理、數據處理、視覺編碼、用戶界面與交互設計等。
    的頭像 發表于 06-04 15:02 ?639次閱讀
    智慧大屏是如何實現數據<b class='flag-5'>可視化</b>的?

    大屏數據可視化的作用和意義

    大屏數據可視化是指利用大屏幕設備展示數據信息,通過圖表、圖像、動畫等視覺手段將數據呈現出來,以便用戶能夠直觀、清晰地理解數據背后的含義和關聯。在信息化時代,數據已經成為企業決策和運營的重要依托,而
    的頭像 發表于 06-03 17:56 ?702次閱讀

    數據可視化:企業數字建設效果的呈現

    數據可視化即通過圖表的形式將數據的內在信息有邏輯性地呈現給用戶,使用戶更容易發現數據中蘊藏的規律,找出問題,進而做出決策;另一方面,數據可視化項目也是一張重要的名片,是企業數字建設效果的呈現。本文
    的頭像 發表于 04-29 10:18 ?476次閱讀
    數據<b class='flag-5'>可視化</b>:企業數字<b class='flag-5'>化</b>建設效果的呈現

    FUXA基于Web的過程可視化軟件案例

    FUXA——基于Web的過程可視化軟件
    發表于 04-24 18:32 ?2次下載

    態勢數據可視化技術有哪些

    智慧華盛恒輝態勢數據可視化技術是一種將復雜、動態的態勢數據以直觀、易于理解的方式展現出來的技術手段。以下是幾種主要的態勢數據可視化技術: 網絡安全態勢指標可視化分析系統及方法,針對安全態勢指標不準
    的頭像 發表于 04-22 15:17 ?420次閱讀

    態勢可視化系統軟件

    智慧華盛恒輝態勢可視化是一種對特定環境中一段時間內的持續動作和改變的目標實體的感知、認知和理解,并最終以直觀、靈活、逼真的方式展示總體狀態的技術。 智慧華盛恒輝可視化技術是戰場環境表達的最重要形式
    的頭像 發表于 04-22 14:48 ?337次閱讀

    可視化全程追溯,可視化資產管理系統

    摘要:本文將從應用價值、系統功能、資產盤點、資產出入庫、資產定位以及系統實現能效等幾個方面,闡述新導物聯可視化資產管理系統為企業提供的優勢,以提升資產管理的效率和準確度。 一、應用價值 可視化資產
    的頭像 發表于 01-11 13:54 ?543次閱讀
    <b class='flag-5'>可視化</b>全程追溯,<b class='flag-5'>可視化</b>資產管理系統
    主站蜘蛛池模板: 好吊射视频988gaocom| 日本少妇内射视频播放舔| 我们中文在线观看免费完整版| 电影果冻传媒在线播放| 深夜释放自己污在线看| 国内免费视频成人精品| 18禁在线无遮挡羞羞漫画| 琪琪色在线播放| 国产欧美一区二区三区在线看| 亚洲伊人网站| 轻轻cao| 国模沟沟一区二区三区| 76人遣返航班上71人呈阳性| 肉动漫无修3D在线观看| 黄色日本女人| CHINSEFUCKGAY无套| 亚洲 成人网| 奶水太多h室友| 国产乱对白精彩在线播放 | 青青热久久综合网伊人 | 九色PORNY真实丨首页| 99久久香蕉| 午夜一级视频| 男女午夜性爽快免费视频不卡| 国产精品久久久久无码AV色戒| 在线广播收听| 视频一区亚洲视频无码| 考好老师让你做一次H| 国产传媒18精品A片在线观看| 又黄又爽又无遮挡在线观看免费| 日韩欧美中文字幕一区| 久久有码中文字幕| 国产精品一区二区免费| adc我们的永久网址| 亚洲欧洲免费三级网站| 日韩 无码 手机 在线| 老司机福利在 线影院| 国产亚洲精品在线视频| 成人国产三级在线播放| 印度最猛性ⅹxxxxx| 午夜国产福利|