首先,在本文開始前,我們先普及一下材質(zhì)的概念,這里推薦材質(zhì),普及材質(zhì)的內(nèi)容都是截取自該網(wǎng)站,我覺得他寫的已經(jīng)夠好了。在開始普及概念前,推薦一首我此刻想到的歌《光---陳?!?。

       在真實(shí)世界里,每個(gè)物體會(huì)對(duì)光產(chǎn)生不同的反應(yīng)。鋼看起來比陶瓷花瓶更閃閃發(fā)光,一個(gè)木頭箱子不會(huì)像鋼箱子一樣對(duì)光產(chǎn)生很強(qiáng)的反射。每個(gè)物體對(duì)鏡面高光也有不同的反應(yīng)。有些物體不會(huì)散射(Scatter)很多光卻會(huì)反射(Reflect)很多光,結(jié)果看起來就有一個(gè)較小的高光點(diǎn)(Highlight),有些物體散射了很多,它們就會(huì)產(chǎn)生一個(gè)半徑更大的高光。如果我們想要在OpenGL中模擬多種類型的物體,我們必須為每個(gè)物體分別定義材質(zhì)(Material)屬性。

       我們指定一個(gè)物體和一個(gè)光的顏色來定義物體的圖像輸出,并使之結(jié)合環(huán)境(Ambient)和鏡面強(qiáng)度(Specular Intensity)元素。當(dāng)描述物體的時(shí)候,我們可以使用3種光照元素:環(huán)境光照(Ambient Lighting)、漫反射光照(Diffuse Lighting)、鏡面光照(Specular Lighting)定義一個(gè)材質(zhì)顏色。通過為每個(gè)元素指定一個(gè)顏色,我們已經(jīng)對(duì)物體的顏色輸出有了精密的控制。現(xiàn)在把一個(gè)鏡面高光元素添加到這三個(gè)顏色里,這是我們需要的所有材質(zhì)屬性:

萬(wàn)碼學(xué)堂,電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)

struct Material
{
    vec3 ambient;
    vec3 diffuse;
    vec3 specular;    float shininess;
};

萬(wàn)碼學(xué)堂,電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)

       以上是對(duì)材質(zhì)的一個(gè)最簡(jiǎn)單概括,我們下面進(jìn)入Cesium的環(huán)節(jié)。先來看看Cesium在Shader中對(duì)Material的定義:

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式