材質(zhì)(materials)
在真實世界里,每個物體會對光產(chǎn)生不同的反應(yīng)心褐。鋼看起來比陶瓷花瓶更閃閃發(fā)光原探,一個木頭箱子不會像鋼箱子一樣對光產(chǎn)生很強(qiáng)的反射。每個物體對鏡面高光也有不同的反應(yīng)婿脸。有些物體不會散射(Scatter)很多光卻會反射(Reflect)很多光,結(jié)果看起來就有一個較小的高光點(diǎn)(Highlight)柄驻,有些物體散射了很多盖淡,它們就會產(chǎn)生一個半徑更大的高光。如果我們想要在OpenGL中模擬多種類型的物體凿歼,我們必須為每個物體分別定義材質(zhì)(Material)屬性。
ambient材質(zhì)向量定義了在環(huán)境光照下這個物體反射的是什么顏色冗恨;通常這是和物體顏色相同的顏色答憔。
diffuse材質(zhì)向量定義了在漫反射光照下物體的顏色。漫反射顏色被設(shè)置為(和環(huán)境光照一樣)我們需要的物體顏色掀抹。
specular材質(zhì)向量設(shè)置的是物體受到的鏡面光照的影響的顏色(或者可能是反射一個物體特定的鏡面高光顏色)虐拓。最后,shininess影響鏡面高光的散射/半徑傲武。
光照貼圖(lighting maps)
現(xiàn)實世界的物體通常不會只有一種材質(zhì)蓉驹,而是由多種材質(zhì)組成。
漫反射貼圖(Diffuse Map)
為了對每個原始像素獨(dú)立設(shè)置diffuse顏色揪利,使用漫反射貼圖模擬一個物體的漫反射顏色态兴。
鏡面貼圖(Specular Map)
使用鏡面貼圖模擬物體的鏡面高光的亮度∨蔽唬可將漫反射貼圖轉(zhuǎn)化為黑白圖樣并調(diào)節(jié)亮度和對比度來生成鏡面貼圖瞻润。
放射光貼圖(Emission Map)
即記錄每個片段發(fā)光值(Emission Value)大小的貼圖,發(fā)光值是(模擬)物體自身發(fā)光(Emit)時可能產(chǎn)生的顏色。這樣的話物體就可以忽略環(huán)境光自身發(fā)光绍撞。通常在你看到游戲里某個東西(比如機(jī)器人的眼正勒,或是箱子上的小燈在發(fā)光時,使用的就是放射光貼圖傻铣。
圖片和一些文字來源于https://learnopengl-cn.github.io章贞,本人收集作為筆記,如有侵權(quán)非洲,望告知