Godot Shader筆記:你的第一個(gè)3D Shader 第二部分(一)

原文地址:Docs ? Shading ? Your first shader ? Your first Spatial shader: part 2

從高層次來(lái)看春畔,Godot所作的就是提供用戶一些可以選擇性設(shè)置的參數(shù)屬性(比如:AO,SSS_Strength,RIM等)鸟召。這些參數(shù)屬性分別對(duì)應(yīng)著不同復(fù)雜的效果(環(huán)境光遮擋Ambient Occlusion,次表面散射SubSurface Scattering,邊緣光Rim Lighting等)。如果這些參數(shù)屬性不設(shè)置的話,對(duì)應(yīng)的代碼會(huì)在編譯前被剔除,使得shader不會(huì)對(duì)不需要的效果付出運(yùn)算代價(jià)凑耻。這種機(jī)制使用戶很容易實(shí)現(xiàn)復(fù)雜的PBR shader,而不需要編寫(xiě)復(fù)雜的shader代碼柠贤。當(dāng)然香浩,Godot也允許你完全忽略掉這些參數(shù),編寫(xiě)完全自定義的shader臼勉。

完整的參數(shù)屬性列表請(qǐng)參看Spatial shaders邻吭。

頂點(diǎn)函數(shù)(vertex function)和片元函數(shù)(fragment function)的區(qū)別之一是:頂點(diǎn)函數(shù)對(duì)每一個(gè)頂點(diǎn)運(yùn)算,并設(shè)置VERTEX(position)和NORMAL等屬性坚俗,而片元函數(shù)對(duì)每個(gè)像素運(yùn)算镜盯,并設(shè)置模型的ALBEDO (color)屬性。

你的第一個(gè)3D片元函數(shù)

正如本教程之前章節(jié)提到的猖败。Godot中片元函數(shù)的標(biāo)準(zhǔn)用法是設(shè)置不同的材質(zhì)屬性速缆,然后讓Godot完成剩余的工作。為了提供更好的靈活性恩闻,Godot還提供一種叫做渲染模式(render node)的東西艺糜。渲染模式需要設(shè)置在shader的頂部,直接寫(xiě)在shader_type的下面幢尚,渲染模式將指定shader擁有哪些內(nèi)置功能破停。

例如,如果不希望某個(gè)對(duì)象被光照影響尉剩,可將它的渲染模式設(shè)為unshaded

render_mode unshaded;

你也可以同時(shí)添加多個(gè)渲染模式真慢。比如,如果像使用卡通著色來(lái)代替更具真實(shí)感的PBR著色理茎,可以將漫反射模式(diffuse mode)和鏡面反射模式(specular mode)設(shè)置為卡通風(fēng):

render_mode diffuse_toon, specular_toon;

這個(gè)內(nèi)置功能模型機(jī)制使你可以通過(guò)改變幾個(gè)參數(shù)來(lái)實(shí)現(xiàn)復(fù)雜的shader黑界。

完整的渲染模式列表請(qǐng)參看Spatial shaders管嬉。

在教程的這個(gè)部分,我們將手把手教你將上個(gè)部分的那個(gè)凹凸不平的地形變成一個(gè)海洋朗鸠。

首先讓我們通過(guò)設(shè)置ALBEDO屬性來(lái)改變水的顏色蚯撩。

讓我們把它變成美麗的藍(lán)色。

void fragment() {
 ALBEDO = vec3(0.1, 0.3, 0.5);
}
image

我們把水面設(shè)置為非常暗的藍(lán)色烛占,因?yàn)樗娼^大多數(shù)的藍(lán)色將來(lái)源于天空的折射胎挎。

Godot的PBR模型依賴于兩個(gè)主要參數(shù):金屬度(METALLIC )粗糙度(ROUGHNESS)

ROUGHNESS決定材質(zhì)的平滑/粗糙程度忆家。一個(gè)較低的ROUGHNESS會(huì)讓材質(zhì)看起來(lái)像發(fā)亮的塑料犹菇,而一個(gè)較高的ROUGHNESS會(huì)讓材質(zhì)看起來(lái)顏色更統(tǒng)一。

METALLIC決定材質(zhì)近似于金屬的程度弦赖。它的值域在0和1之間项栏∑直妫可以把METALLIC想象為(鏡面)反射(reflection)和漫反射(ALBEDO)色之間的平衡蹬竖。一個(gè)很高的METALLIC幾乎可以使ALBEDO被忽略,看起來(lái)就像環(huán)境(譯者注:原詞為sky流酬,翻譯成環(huán)境貌似更好理解一些)中的一面鏡子币厕,而一個(gè)很低的METALLIC 會(huì)對(duì)環(huán)境色和漫反射色有更均衡的表現(xiàn)。

ROUGHNESS從左到右從0增長(zhǎng)到1芽腾;METALLIC從上到下從0增長(zhǎng)到1旦装。

image

注意:對(duì)于標(biāo)準(zhǔn)的PBR著色,METALLIC應(yīng)該接近0或1摊滔,只有當(dāng)混合材質(zhì)的時(shí)候才把值設(shè)在它們之間阴绢。

水并不是金屬,所以我們將它的METALLIC屬性設(shè)為0.0艰躺。但是水是高度反射的呻袭,所以我們將它的ROUGHNESS設(shè)為非常低。

void fragment() {
 METALLIC = 0.0;
 ROUGHNESS = 0.01;
 ALBEDO = vec3(0.1, 0.3, 0.5);
}
image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末腺兴,一起剝皮案震驚了整個(gè)濱河市左电,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌页响,老刑警劉巖篓足,帶你破解...
    沈念sama閱讀 222,865評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異闰蚕,居然都是意外死亡栈拖,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)没陡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)涩哟,“玉大人烟瞧,你說(shuō)我怎么就攤上這事∪敬兀” “怎么了参滴?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,631評(píng)論 0 364
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)锻弓。 經(jīng)常有香客問(wèn)我砾赔,道長(zhǎng),這世上最難降的妖魔是什么青灼? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,199評(píng)論 1 300
  • 正文 為了忘掉前任暴心,我火速辦了婚禮,結(jié)果婚禮上杂拨,老公的妹妹穿的比我還像新娘专普。我一直安慰自己,他們只是感情好弹沽,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,196評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布檀夹。 她就那樣靜靜地躺著,像睡著了一般策橘。 火紅的嫁衣襯著肌膚如雪炸渡。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,793評(píng)論 1 314
  • 那天丽已,我揣著相機(jī)與錄音蚌堵,去河邊找鬼。 笑死沛婴,一個(gè)胖子當(dāng)著我的面吹牛吼畏,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播嘁灯,決...
    沈念sama閱讀 41,221評(píng)論 3 423
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼泻蚊,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了旁仿?” 一聲冷哼從身側(cè)響起藕夫,我...
    開(kāi)封第一講書(shū)人閱讀 40,174評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎枯冈,沒(méi)想到半個(gè)月后毅贮,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,699評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡尘奏,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,770評(píng)論 3 343
  • 正文 我和宋清朗相戀三年滩褥,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片炫加。...
    茶點(diǎn)故事閱讀 40,918評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡瑰煎,死狀恐怖铺然,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情酒甸,我是刑警寧澤魄健,帶...
    沈念sama閱讀 36,573評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站插勤,受9級(jí)特大地震影響沽瘦,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜农尖,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,255評(píng)論 3 336
  • 文/蒙蒙 一析恋、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧盛卡,春花似錦助隧、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,749評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至嚎货,卻和暖如春橘霎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背殖属。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,862評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留瓦盛,地道東北人洗显。 一個(gè)月前我還...
    沈念sama閱讀 49,364評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像原环,于是被迫代替她去往敵國(guó)和親挠唆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,926評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容