物理學與電腦圖形學中的HDR

來源:互聯網
上載者:User

前言:HDR技術已經廣泛用於離線CG渲染、遊戲、電影等方面,能夠顯著的提高情境的對比和真實感。可是背後的物理學與數學原理卻很少有CG藝術家和圖形程式開發人員去關注,非常建議大家閱讀此文,通曉其中的基本原理。這不是一篇教你如何在GPU上實現HDR的文章。

引言

  如今大部圖形軟體都是以24bit顏色為基礎,對每個通道佔據8bit,以指數運演算法則對顏色進行編碼。這種方式的優點在於可以和大部分顯示器裝置相容CCIR-709標準,也就是我們熟悉的sRGB標準,其Gamma值為2.2。但是這種方式的缺點也顯而易見,無法表示位於sRGB範圍之外的顏色,而往往這些顏色是那種很亮或者很暗的那種,損失了對比與動態範圍。

  我們知道,人類的眼睛是最為精密的照相機,可以感知的對比甚於任何一種儀器裝置 —— 從天際遠處微弱的星光,到太陽高高掛的豔陽天,人們都可以同時辨別一個情境中亮處以及暗處的細節。要知道,通常這一亮一暗所表示的對比是相當驚人的。為瞭解釋這個問題,首先我們要知道人眼的構造。人的眼分為感光細胞所在的視網膜和折光部分。人眼適應波長約為380-740nm的電磁波,也就是可見光部分。一般人眼中有三種不同的錐狀細胞和一種杆狀細胞;第一種感受紅色,最敏感點在565納米左右;第二種主要感受綠色,最敏感點在535納米左右;第三種感受藍色,最敏感點在445納米。這些錐狀細胞的敏感曲線大致是呈鐘形的常態分佈。但是,每種錐狀細胞不僅僅感受自己最敏感的那部分電磁波,它們同時對其他波長的光也有反應。事實上,對於顏色的感覺也取決於自身的喜好感覺,甚至心理狀態與經驗感受。

  隨著顯示技術的發展,LCD顯示器越來越普及開來逐漸代替代替了CRT顯示器。與此同時,顯示硬體可以產生的顏色越來越豐富,原始的色彩標準就顯得更加落伍了,重新定義一個新的色彩標準就顯得特別有必要,而且還要能夠正確的映射舊色彩標準空間到新的色彩空間中去,這樣才能夠保證向前的相容。

真實的問題True Problem

  最簡單的辦法,使用浮點數,利用它幾乎無限的精度來表示相比來說比較有限的顏色 —— 大部分人只可以識別大約一千多萬種顏色,況且很多顏色並不是很經常使用。目前我們使用的有IEEE754標準的浮點數,還有OpenEXR所使用,併兼容NVIDIA、ATi硬體的半浮點格式。浮點數的缺點和優點一樣明顯,佔據的體積實在太大。在即時渲染中還是推薦使用Half半浮點數表示,硬體可以對這種格式進行快速的插值採樣過濾,而因為受制於有限的頻寬,硬體處理32bit浮點就有些力不從心。

  讓我們回到開始,重新探討Color的本質。可見光本質是什嗎?是一個波長範圍內的電磁波,而且是連續範圍內所有電磁波能量的積分。世界上當然有雷射這種純單色的光源,但是我們接觸的幾乎都不是單色的,比如太陽,日光燈,白熾燈。人眼將這些混合光的顏色與單色光源的光的顏色看成同樣的,比如橙色的波長為600nm左右,可實際上可以由紅色和綠色的光混合而成的,因為顯示器無法產生單色的橙色。下面展示一個Spectral Rendering光譜渲染公式,本質上與Gobal Illumination全域光照技術相通。

 

  這個公式中隱含了幾個假設:1、物體反射光波長等於從光源入射光的波長,物體本身絕對不發光,違反了量子力學的黑體輻射理論;2、光線入射位置等於出射位置,無散射,這把物體想象成了理想平面忽視微平面效應。3、無偏振、衍射,違反的材質的光學特性。我們現在當然不能吹毛求疵,現在的光線跟蹤渲染器如VRay、Mental Ray、Maxwell Render、RenderMan等,即使沒有充分的考慮到這些真實特性,在不少CG藝術家手中也產生了足以欺騙普通人眼睛的照片級真實的圖形。事實上,許多物理研究人員早就已經作了大量工作,指出各種各樣的問題,但從事CG行業的人員卻認為很多問題已經得到解決。因為對於CG,人們更加願意把它當作使用技術的藝術,而不是另外一種純粹的技術。

Tone Mapping

  讓我們回過去看那個Spectral Render光譜渲染公式。如果我們有了一張光譜圖,將它轉換成可以顯示的圖象需要2個步驟。第一步,利用標準CIE Observer Functions觀測函數,將Spectral RAdiances光譜輻射轉換到Tristimulus Space三激值空間CIE XYZ。第二步,將CIE XYZ數值轉換到色彩空間。第二個步驟叫做Tone Mapping,而且有三個注意要點:

  1. 色彩:我們需要的是精確的顏色,與觀測者本身無關
  2. 飽和度:儘可能的維持飽和度不受幹擾,允許一部分色彩漂移。
  3. 感受:儘可能把保證當映射到有限色彩範圍時,讓人感覺依舊真實。

  在實現上,主要有以下幾種技術:

  •  對原始色彩的範圍進行統一縮放,與顯示的範圍匹配。
  •  與A的方法一致,不過需要進行顯示範圍裁減,影響到飽和度不高或極高的顏色。
  •  利用Global Histogram全域圖象統計圖的資料,對色彩進行相應縮放。

Death in Physics

  在我們具體的實現Tone Mapping之前,我們首先一定要搞清楚XYZ RGB這些看似眼熟的東西到底都是怎樣的一回事。一個最簡單的光照模型,一個單色光源,一個理想的散射平面,它釋放的輻射用下式表示:

其中ρd(λ)是波長的Diffuse Reflectance散射反射比函數。Ei(λ)是從各個光源積分計算得到的入射輻射度。這樣我們就可以使用標準CIE函數進行轉換了:

  萬事具備了嗎?遠遠不夠。下面通過一個實際的例子來展示一個可行的方法。

I'm A Flower

  我們選擇3種光源,2856K的鎢(白熾燈)Illum A,類比的日光照明Illum B,6500K的太陽光Illum D65。分別分析它們的發射光譜。

  從圖上我們可以輕鬆的辨別出哪條是鎢產生的曲線,藍色的就是,大量集中於長波長段,也就是發出紅色黃色的光成分居多。

  隨後我們在三個光源的分別作用下,對MacBeth BlueFlower麥克佩斯藍花的發射光譜進行分析。

  通過分析光譜資料,我們計算得到在3種色彩標準下的不同數值圖。

 

Matrix Bible

  我們是如何得到上述9種不同的資料呢?使用如下的矩陣計算式:

  如果我們需要在不同的光照條件下進行轉換,使用如下的算式:

  這裡是線性Von Kries模型與CMCCAT2000矩陣,用於在不同光照條件下進行色彩的轉換。至於原始White Point白點(Rw,Gw,Bw)通過CIE XYZ與CMCCAT2000矩陣相乘得到。為了簡化我們的操作,將冗長的矩陣相乘算式總結成下面的兩個矩陣,用於直接將B、A照明條件下的CIE XYZ轉換成RGB。

Greedy Request

  到現在位置,顯然我們迫切需要一種表現力超強,佔用體積小,並且與裝置無關的紋理檔案格式。1985年為了基於輻射度渲染器的需要,實現了32bit RGBE紋理格式。Pixar有一種33bit log的RGB格式用於REYES渲染器,日後被開源,形成今日的LibTIFF庫。後來作者在SGI工作,對這個庫做了一些更新,大幅度提高了表現範圍,使用RLE壓縮方法讓檔案更小。

  在以上所有提到的格式種,只有SGI's LogLuv TIFF編碼格式覆蓋了所有的色彩與動態範圍。RGBE格式的動態範圍也很大,不過其RGB值只能是正的,所以還有一些顏色無法表示。Pixar的格式劣勢在於較小的範圍。所以人們使用LogLuv TIFF格式,目前很多軟體都可以處理這種格式。

Back To

  結束了?是的,結束了,實踐證明,第三種方法在即時渲染中比較可行。大家不妨可以找找NVIDIA的一篇PPT和相關DEMO,關於如何在GPU上實現HDR,有幾篇Paper可以去看。

E?cient Histogram Generation Using Scattering on GPUs

CARUCCI, F., 2006. HDR meets Black & White 2. Game Developers Conference 2006: D3DTutorial Day, March.

  本文大部分基於Greg Ward的High Dynamic Range Imaging一文,相關圖片公式均來自此文,著作權屬於原作者。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.