Games101-10 幾何

先把上一節(jié)紋理講完,然后講如何生成陰影以及近似的動(dòng)態(tài)光照

第一部分


Application1?Environment?lighting?環(huán)境光照?qǐng)D

環(huán)境貼圖是將任何一個(gè)方向的光記錄下來(假設(shè)光源無限遠(yuǎn),只記錄光照的方向信息,這種貼圖被稱作環(huán)境光貼圖)

球形是不可展開的曲面,所以展開的貼圖頂部和底部會(huì)有變形,且中間也會(huì)被拉伸

球心為世界中心。類比地球儀展開鋪平,存在紋理的拉升扭曲問題,地圖上維度越高的地方越偏大,例如北南極在地圖上偏小
解決方法:Cube Map


將環(huán)境光照信息記錄在一個(gè)立方體表面上,但會(huì)需要額外判斷球體某一方向上的光照是記錄在立方體的哪個(gè)面上,計(jì)算量更大

凹凸貼圖=高度貼圖
通過凹凸貼圖記錄的點(diǎn)與基準(zhǔn)的高度得到頂點(diǎn)/片元的法線方向,經(jīng)過采樣(近鄰平均)后生成法線貼圖,所以凹凸貼圖約等于法線貼圖
使用高度貼圖和法線貼圖,不可以得到真正的凹凸模型,但視覺上會(huì)讓人覺得凹凸
計(jì)算法線貼圖的方法:

在平面上計(jì)算法線

UV下的法線算法:(3D模型)


位移貼圖有著和凹凸貼圖一樣的功能,會(huì)對(duì)頂點(diǎn)的位移產(chǎn)生影響
但對(duì)模型的精度(三角面數(shù)量)要求更高,并且運(yùn)算量也會(huì)隨之上升
如果自行調(diào)整模型的精細(xì)度,來節(jié)省空間,可以使用曲面細(xì)分(后面馬上講)
曲面細(xì)分:DirectX有Dynamic的插值法,根據(jù)需要對(duì)模型做插值,看情況決定模型的細(xì)致程度,但只能用在Windows上

程序紋理指定義了空間中任意一個(gè)點(diǎn)的值,即三維紋理,而非真正生成了紋理的圖
比如圖中的球,貼上程序紋理后,砍一半,還能看到里面的值
它定義三維空間中的一個(gè)噪聲函數(shù)——空間中任何一個(gè)點(diǎn)都有一個(gè)比例設(shè)置,算出這個(gè)點(diǎn)的噪聲的值是多少,再通過處理噪聲的值,得到預(yù)想的效果

預(yù)計(jì)算著色將環(huán)境光進(jìn)行預(yù)計(jì)算處理,再附在原先紋理上做一層遮蔽,再將紋理貼到模型上

Solid Modeling &. Volume Rendering
三維渲染廣泛應(yīng)用于物體渲染,如核磁共振等掃描后得到的體積信息,通過這些信息進(jìn)行渲染,得到結(jié)果
第二部分

幾何的表達(dá)方式分為隱式幾何和顯式幾何
隱式幾何用空間中的滿足一定條件的點(diǎn)的集合來表示面,隱式幾何不會(huì)表示點(diǎn)的具體位置信息,而是告訴我們這些點(diǎn)滿足的函數(shù)關(guān)系
我們很難看出隱式想表達(dá)的形狀是什么,但對(duì)于判斷點(diǎn)的位置關(guān)系(在內(nèi),在外還是在表面)會(huì)很方便(優(yōu)缺點(diǎn))

????????代數(shù)曲面

????????CSG構(gòu)造實(shí)體幾何

????????※ 距離函數(shù)
對(duì)于任意一個(gè)幾何,不直接描述其表面,而是描述空間中任意一點(diǎn)到這個(gè)表面的距離,如此一來空間中所有點(diǎn)都會(huì)被定義出一個(gè)距離值,把距離函數(shù)做出來,在做個(gè)belnding就可以達(dá)到融合效果

????????距離函數(shù)應(yīng)用:SDF

SDF函數(shù)根據(jù)相對(duì)應(yīng)的位置進(jìn)行正負(fù)的賦值,再用blend直接相加
得到距離函數(shù)后,函數(shù)值為0的地方就是表面。類似的,水平集也用了同樣的思想,在地理上類似定義是等高線,用等高線的思想確定表面位置

????????分形幾何
自相似,遞歸,很難控制形狀


顯式幾何直接給出點(diǎn)的位置,或者可以進(jìn)行參數(shù)映射;可以推斷出顯式想表達(dá)的形狀,然而想要判斷內(nèi)外時(shí),顯式的表達(dá)就很難進(jìn)行表示

