計算機圖形學中渲染技術是如何分類的

時間 2021-06-01 01:27:52

1樓:

這是乙個好問題。不過我不是很有信心能夠回答得好。僅僅談一下個人認識,權當拋磚引玉。

雖然維基百科上也是這樣分類,但是這其實並不是很嚴格的(甚至不是正確的)分類方法。更多只是歷史上的一些習慣和現實情況。事實上,這些東西甚至不是乙個層面上的。

首先渲染這個概念本身,需要乙個比較明確的定義。便利起見,這裡假設是指計算機將用數學描述的3D場景通過計算自動轉化成影象的過程。(實際上渲染還包括2D等情形)

首先,對於計算機來說,所謂影象,就是乙個二維排列的資料塊,是乙個離散取樣的樣本集。因此,所謂的渲染,可以看做是對3D場景的數學模型進行離散取樣的乙個過程。

很容易想到,這個取樣可以有兩種方式:

將場景切碎(離散)之後,貼到影象(螢幕)上來

將影象切碎後投射到場景當中去

這其實就是光柵化和ray casting。光柵化其實就是將場景物體投射到螢幕上之後離散,從而確定顏色;而ray casting其實就是將畫素沿視線方向投射到場景物體表面來確定顏色。

所以,光柵化和ray casting實質上都是指取樣方法,而且本質並沒有什麼不同,只是方向相反。

好了,無論哪種,最終我們都得到了螢幕(影象)上畫素與場景物體表面的對映關係,那麼接下來是確定該表面的顏色了。

光線跟蹤是採用一根光線或者一簇光線,依據幾何光學,從反射光線或者折射光線(因為非自發光物體之所以能被看見,是因為有反射或者折射光線進入人眼)倒推出入射光線,然後沿著入射光線的反方向一路繼續倒推,直到找到光源(如找不到,則物體表面此處為黑色)

顯然這對於鏡面反射等很容易,但是對於諸如漫反射或者混濁液體內部的散射等情況,顯然很難倒推出入射光的方向。因此光線跟蹤常被稱為是區域性光照模型。

而輻射度方法將光看做能量,或者說熱輻射。它不考察單根光線在物體表面是如何反射折射的,而是直接計算能量在表面之間的傳遞函式(稱為波函式)。在有了所有物體之間的波函式之後,只要對波函式進行離散取樣和累加,就可以得到場景當中任何一點的光照強度。

因此,輻射度方法又被稱為是全域性光照模型,特別適合模擬物體間的漫反射。

但是,場景當中任何兩個物體之間都可能會發生能量交換。所以顯而易見,對於複雜場景,要求出場景當中所有可能的波函式,這個計算量是超級大的。況且實際生活當中的物體形狀大都比較複雜,很難解析表達,所以計算兩個任意物體之間的波函式是一件非常困難的事情。

所以,無論光線跟蹤,還是輻射度方法,其實主要是一種光照模型。光線跟蹤擅長鏡面反射和折射,而輻射度方法擅長漫反射和大面積光源的模擬等。

但是僅有這些還不夠。還差乙個很重要的:材質模型。

物體不僅有顏色,還有質感。質感是由於物體對於不同波長的光以及不同的入射角等有著不同的光學性質帶來的。這是上面所說的任何乙個都沒有考慮的東西。

PBR,其實就是屬於材質模型的一種。

所以,乙個完整的渲染至少需要:

取樣方法

光照模型

材質模型

這些要素。上面這些其實不是都是在乙個層面,很多時候需要協同在一起,才能產生一幅高質量的畫面。

比如在實時渲染當中,諸如環境貼圖、光子貼圖等都可以看做是一種輻射度方法的近似;而高品質的陰影貼圖、光照貼圖、AO貼圖等往往是通過光線跟蹤預計算。最終這些在光柵化過程當中,由畫素著色器進行合併,形成最終的影象。

計算機圖形學,GPU,OpenGL,Unity3D什麼關係?

Ritsuka ding 基本概念 GPU 圖形硬體,圖形處理器。和CPU差別在於計算單元是CPU的上百倍,不過計算功能更為有限,可以想象成適合對大量浮點數非同步運算的晶元。視訊記憶體,GPU可以快速讀取的一種記憶體。OpenGL,圖形程式設計的介面,也就是圖形API。DX同理。Unity3D,遊戲...

opengl 現代計算機圖形學中,為什麼攝像機不考慮roll旋轉?

楊鼎超 1 不考慮 roll,應該是大部分場景用不到 roll 吧,除了開飛機這種場景,其他大部分的如第一三人稱視角,場景漫遊等都用不到 roll 2 如果要考慮 roll 的話,可以更改 up 向量,Opengl裡預設傳的是 0,1,0 可以改為其他值 3 關於 LookAt 矩陣的推導見下 視點...

對計算機專業而言,計算機圖形學是否重要?

已登出 重要,但不是必要。計算機圖形學,核心學的是矩陣運算。而矩陣運算是演算法中一項非常重要的必修課。我已工作十年,薪資也過了百萬,月薪截圖如下。現在回想對於程式設計師來說演算法還是最重要的,或者說你想更進一步演算法是必不可少的,我已經30 現在最喜歡的就是看大學教材,這裡順便吐槽下,中國大學本科教...