

經(jīng)過(guò)變換之后,不管是正交投影還是透視投影,都被變換成[-1,1]的立方體,接下來(lái)就是要繪制在屏幕上,叫做光柵化

1.相機(jī)的可視面,寬高,可以得到長(zhǎng)寬比
2.FOV(field of view視場(chǎng)角),根據(jù)垂直可視角度f(wàn)ovY和長(zhǎng)寬比可以得到水平可視角度f(wàn)ovX

1.右邊是視椎的近平面,點(diǎn)(1,t,n)與z軸的夾角是fovY/2
2.t是z的值,b是-t,近平面的高就是2t,r就是x的值,l是-r,近平面的寬就是2r
3.于是可以得到右邊兩個(gè)等式

1.左下角是原點(diǎn),每個(gè)像素用(x,y)整數(shù)表示,圖中藍(lán)色像素是(2,1)
2.像素的寬高是1,像素的中心是(x+0.5,y+0.5)
3.屏幕的范圍是從(0,0)到(width,height)


1.忽略z,實(shí)質(zhì)還是一次平移加一次縮放
2.因?yàn)镸VP得到的是中心在原點(diǎn),所以要先平移,讓左下角位于原點(diǎn),然后把x和y拉伸到屏幕的大小

不管是二維還是三維,圖形都可以分解成一定數(shù)量的三角形


1.實(shí)質(zhì)就是判斷點(diǎn)否在三角形內(nèi)
2.定義一個(gè)函數(shù)inside(tri,x,y)來(lái)輸出是否在三角形內(nèi),然后遍歷整個(gè)屏幕中的像素

1.利用向量的叉乘,p2p0 x p2q,p0p1 x p0q,p1p2 x p1q三個(gè)結(jié)果如果是同號(hào)的,則在三角形內(nèi),否則在三角形外

在邊緣上的點(diǎn)再不同情況下可以算也可以不算.

1.將三角形包圍在內(nèi)的矩形叫做bounding box
2.p1,p2,p3中取maxX和maxY,就得到一個(gè)優(yōu)化后的bounding box,可以提高效率,除此之外還有很多優(yōu)化方案

三角形光柵化之后,由于像素點(diǎn)本事有大小,因此就會(huì)產(chǎn)生鋸齒(Aliasing)

鋸齒產(chǎn)生的原因是采樣率的問(wèn)題,采樣的概念在圖片,視頻.音頻中通用,低采樣率可以降低質(zhì)量,加快處理速度,但是會(huì)產(chǎn)生走樣(Artifacts),鋸齒便是其中一種情況.
顯示器會(huì)在刷新的時(shí)候隔行刷新,例如第一幀刷新奇數(shù)行第二幀刷新偶數(shù)行,以此提高效率,但是會(huì)在一定程度上造成走樣,或者叫做瑕疵.
上圖中叫做摩爾紋,是采樣的時(shí)候,為了降低質(zhì)量去除奇數(shù)行或者偶數(shù)行像素產(chǎn)生的.

信號(hào)變換的太快以至于采樣的速度很不上,就造成了Artifacts



先對(duì)場(chǎng)景,或者說(shuō)信號(hào)進(jìn)行模糊(濾波)處理,然后再采樣,可以在一定程度上反走樣
注意如果先采樣,再做模糊是達(dá)不到效果的



圖二中:
同樣的采樣頻率,信號(hào)頻率越快,就越會(huì)走樣,上面的根據(jù)采樣可以大概的還原出信號(hào)函數(shù),但是下面的已經(jīng)完全不能還原了
圖三中:
在藍(lán)色函數(shù)中進(jìn)行采樣,采樣之后還原,還原出來(lái)的是顯然只能是黑色函數(shù),和原本的藍(lán)色已經(jīng)差的太遠(yuǎn);也可以理解成,用同樣的采樣頻率去采樣兩種頻率的信號(hào),結(jié)果卻完全相同

傅里葉變換可以把時(shí)域變成頻域:
1.左邊的圖像,叫做時(shí)域,右邊的圖叫做頻域,是左邊的圖經(jīng)過(guò)傅里葉變換生成的
2.右邊圖像的信息由亮度在不同的位置表示出來(lái),外圍的是高頻,中心的是低頻
3.水平和數(shù)值的十字高亮,是因?yàn)閳D片不是重復(fù)信號(hào),沒(méi)有時(shí)間信息,因此處理的時(shí)候會(huì)把圖片進(jìn)行平鋪,一張接一張,當(dāng)圖像切換邊界的時(shí)候,會(huì)產(chǎn)生劇烈的變化,從高頻到低頻全部都產(chǎn)生了變化,就出現(xiàn)了十字高亮

去除低頻信息:
1.將右邊的中心低頻信息抹去,逆傅里葉變換,從右向左重新生成圖片,叫做高通濾波,也就是只有高頻信息可以通過(guò)
2.由此可見(jiàn),只剩下邊緣,或者說(shuō)邊界,就是顏色和紋理等等細(xì)節(jié)發(fā)生劇烈變化的時(shí)候,就對(duì)應(yīng)著高頻的信息.

去除高頻信息:
1.低通濾波,圖像的邊界已經(jīng)看不到了,只剩下色塊表示的低頻信息


選擇性的去除不同的頻率區(qū)域:
1.產(chǎn)生不同的效果,圖一去除了最低頻的色塊和高頻的邊緣,圖二去除了大量低頻的色塊,和高頻的信息,通過(guò)這種控制,可以得到不同程度的細(xì)節(jié)信息

卷積Convolution:
1.首先是一個(gè)一維的信號(hào),方便理解
2.然后是一個(gè)過(guò)濾器,過(guò)濾器從左向右移動(dòng),每次移動(dòng)一個(gè)單位,移動(dòng)之后計(jì)算過(guò)濾器中心對(duì)應(yīng)的信號(hào)值,計(jì)算加權(quán)平均值,然后寫(xiě)入采樣,最終得到一個(gè)采樣結(jié)果
3.卷積就是模糊操作


1.把信號(hào)(圖)用濾波器做卷積(圖變成另一張)
2.上一步等效于,把圖通過(guò)傅里葉變換,生成頻域,再把濾波器也傅里葉變換,兩者相乘,最后再逆傅里葉變換,就得到了和1相同的另一張圖



低通濾波器:
1.每個(gè)像素周?chē)藗€(gè)像素都乘1,再加起來(lái),然后除上9
2.這個(gè)box越大,圖像越模糊,如果是最小的box,則相當(dāng)于沒(méi)做濾波,圖像就沒(méi)變化
3.上圖兩個(gè)盒子,是時(shí)域圖像,也就是黑白色塊,右邊頻域圖



先模糊后采樣:
1.圖一是沖擊函數(shù),讓信號(hào)函數(shù)乘上沖擊函數(shù),得到一堆的點(diǎn),也就是ac=e.
2.現(xiàn)在把a(bǔ)變成頻域,也就是b,采樣的濾波器,頻域是d,然后bd=f;根據(jù)時(shí)域的卷積等于頻域上的乘積,得到e和f是等效的,由此可見(jiàn),采樣就是重復(fù)原始信號(hào)的頻譜(復(fù)制b中的三角形)
3.圖二中,采樣率不足,復(fù)制頻譜的時(shí)候,間隔很小,產(chǎn)生堆疊,這就是走樣的本質(zhì)
4.圖三中,對(duì)原始信號(hào)進(jìn)行模糊(卷積),砍掉高頻信號(hào),也就是傾斜度高的部分,于是就不在發(fā)生堆疊



MSAA抗鋸齒:
把一個(gè)像素點(diǎn)細(xì)分成4個(gè),甚至16個(gè),通過(guò)三角形覆蓋的點(diǎn)個(gè)數(shù),取一個(gè)百分比,占三個(gè)就是75%,占一個(gè)就是25%

FXAA:采樣生成圖片之后,通過(guò)圖像處理,把鋸齒給替換掉,效率很高
TAA:把MSAA的樣本分布在時(shí)間上,復(fù)用前面幀的處理
DLSS:深度學(xué)習(xí)超采樣(超分辨率),50x50的圖片放到200x200需要補(bǔ)充像素,因此功能就是放大圖片

后畫(huà)的東西會(huì)覆蓋先畫(huà)的東西,計(jì)算機(jī)繪制沿用畫(huà)家算法的時(shí)候也是這么做的,遠(yuǎn)近或者說(shuō)遮擋關(guān)系,叫做深度關(guān)系

一種互相遮擋的情況,畫(huà)家算法無(wú)法解決這種場(chǎng)景.

深度緩存算法:
1.前面說(shuō)到三個(gè)互相遮擋的三角形,無(wú)法確定深度關(guān)系,所以換個(gè)角度,去確定每個(gè)像素的深度,生成渲染后的圖片的同時(shí),也生成一張用于保存每個(gè)像素深度信息的圖

1.左邊是渲染后圖
2.右邊是深度圖,離相機(jī)越近的點(diǎn),顏色越黑
3.假設(shè)首先只有地板,地板的深度圖是近黑遠(yuǎn)白,現(xiàn)在添加一個(gè)圖中的鏤空立方體進(jìn)去,像素點(diǎn)a原本顯示的地板有一個(gè)深度x,現(xiàn)在點(diǎn)a也同時(shí)處在立方體上,立方體給了a另一個(gè)深度y,根據(jù)x和y就可以決定地板和立方體的遮擋關(guān)系

1.首先將場(chǎng)景分解成一定數(shù)量的三角形
2.將三角形全部光柵化
3.一開(kāi)始所有的像素深度緩存值是無(wú)限大,也就是最遠(yuǎn),遍歷所有三角形的所有像素,然后和深度圖的所有像素點(diǎn)對(duì)比,如果深度比像素存儲(chǔ)的深度要小,說(shuō)明應(yīng)該要覆蓋原來(lái)的像素,就把深度重新寫(xiě)到這個(gè)像素中.
4.這個(gè)算法與順序無(wú)關(guān),也沒(méi)有做排序,只是在記錄一個(gè)最小值,大的值不做任何處理,因此復(fù)雜度僅為O(n)

1.R代表無(wú)限大
2.5比R小,則重新寫(xiě)入
3.加入第二個(gè)三角形,跟R和5相比,比5大要被原來(lái)的三角形遮擋,比5小的會(huì)遮擋原來(lái)的三角形
4.這兩個(gè)三角形插入到了一起,互相遮擋一部分