Unity護盾效果筆記

動態(tài)顏色

消融效果

關(guān)閉/開啟模糊

這個效果的制作主要學(xué)習(xí)了UVMapping的活用躲查。
這個護盾的效果可以主要分為以下幾個模塊:首先在Maya中生成一個柏拉圖多面體,然后在y=0處用多切割把下半球分離出來并舍棄掉译柏,得到使用的模型镣煮。使用的材質(zhì)Shader隊列需要設(shè)置為Transparent,并且分兩個Pass(一個Cull Front一個Cull Back)鄙麦,用以正確顯示護盾后和護盾中的物體典唇。兩個Pass都用的同一段代碼,并且模糊效果是直接寫在Shader里對GrabPass得到的_GrabTexture處理的胯府,因此在護盾內(nèi)外都可以得到正確的效果介衔。另外,每個面上的點的法線是未經(jīng)過插值的面法線骂因,用之前學(xué)習(xí)過的ddxddy對世界空間的坐標(biāo)求偏導(dǎo)叉乘得到法線即可炎咖。

然后就是接下來詳細分析的動態(tài)色彩/消融/UV扭曲/面描邊/輝光效果。

動態(tài)色彩/UV扭曲

我希望的效果是每個面都有互不相同寒波、能夠變化的顏色乘盼,但是我嘗試采用shader內(nèi)實時計算不僅效果不好,而且未免太大材小用俄烁。后來我采用了這種辦法:首先在Maya中將每個面的UV打散绸栅,并且放在UV空間的隨機位置,賦予隨機方向页屠。


隨機放置的UV

接下來在shader內(nèi)使用這個UV加上隨時間變化的量粹胯,對如下的圖(Photoshop中中心點一個點然后高斯模糊)進行采樣蓖柔。


然后,得到的采樣值再去采樣或者計算用戶自定義的Color Ramp即可风纠。由于不同面之間的UV是全部分散毫無關(guān)聯(lián)的渊抽,因此就可以得到每個面互不相同顏色的效果。

我還增加了一個菲涅爾效果议忽,面法線和視角接近垂直的面采用另一套Color Ramp懒闷。

對于表面類似折射扭曲的效果,同樣采用這一套UV加隨時間變化的量對法線貼圖采樣栈幸,使用法線的xy對grabPos扭曲即可愤估。同樣的,因為每個面UV殼方向也是隨機的速址,因此我們能看到效果圖中每個面“流動方向”不同的效果玩焰。

消融

這個也算是比較常用的效果,首先用戶自定義一張消融數(shù)值圖芍锚,然后采樣這張圖的數(shù)值昔园,如果這個值達不到shader預(yù)先規(guī)定的閾值就舍棄這個片元(或直接返回當(dāng)前點采樣的_GrabTexture)。

消融數(shù)值貼圖

這里我輸入的是一個柏林噪聲圖并炮。但是默刚,我們需要讓面與面之間的消融的“洞”或者剩下的“島”具有連續(xù)性,這時我們就不能采用上述的打散的UV了逃魄,而是使用直接對未剪開邊的網(wǎng)格unfold后的UV生成另一套UV集荤西。
具有面連續(xù)性的UV

最后,我們還可以增加一個邊緣尺寸的量輸入shader伍俘,消融數(shù)值接近閾值的部分我們增加一個發(fā)光的效果邪锌。

另外,上面兩個灰度圖我們還可以放到同一張圖的不同通道里癌瘾。


面描邊

重心坐標(biāo)
這里涉及到一個三角形重心坐標(biāo)系的概念觅丰,若重心坐標(biāo)的某一個值接近0,說明這個值越靠近三角形邊緣妨退。我們知道在fragment shader中是經(jīng)過插值處理的妇萄,但是我們還是沒有辦法能夠直接得到當(dāng)前片元的重心坐標(biāo)。

不過好在我們還可以讓模型有更多的UV集碧注,只要我們把網(wǎng)格的每個三角面的UV殼頂點放到UV空間的(0,0)(1,0)(1,1)處我們就能輕易在shader中計算得到重心坐標(biāo)了嚣伐。

于是我們在Maya的UV編輯器中直接對全部拆開的面使用單位化,最后得到想要的結(jié)果儲存為第三套UV集萍丐。


單位化UV

在shader中轩端,我們只需要使用如下方式就能得到重心坐標(biāo)的最小分量:

float uvDist = min(min(i.uv3.y, 1 - i.uv3.x),(i.uv3.x - i.uv3.y)/1.414);

這個值小于預(yù)先設(shè)定的閾值的話,這個片元就是我們要描邊的片元逝变。

輝光

沒有什么特別要說的基茵,基本和之前寫的物體輝光效果一樣的方法奋构,需要用到腳本處理,甚至沒有用到第二個相機拱层。需要說明的是弥臼,在護盾自身的shader中我將發(fā)光處的alpha設(shè)為了0,并且在后處理輝光時只提取了alpha通道分量做模糊處理根灯。因此径缅,若是相機中會出現(xiàn)其他半透明/透明的物體時,這個方法就不適用了烙肺,那就需要使用另一個相機和更多的腳本工作去得到正確的效果纳猪,如果要考慮到還有Alpha Blending的話,情況就更復(fù)雜了桃笙。


Github: https://github.com/techizgit/UnityPlayground

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末氏堤,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子搏明,更是在濱河造成了極大的恐慌鼠锈,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件星著,死亡現(xiàn)場離奇詭異购笆,居然都是意外死亡,警方通過查閱死者的電腦和手機强饮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進店門由桌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來为黎,“玉大人邮丰,你說我怎么就攤上這事∶” “怎么了剪廉?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長炕檩。 經(jīng)常有香客問我斗蒋,道長,這世上最難降的妖魔是什么笛质? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任泉沾,我火速辦了婚禮,結(jié)果婚禮上妇押,老公的妹妹穿的比我還像新娘跷究。我一直安慰自己,他們只是感情好敲霍,可當(dāng)我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布俊马。 她就那樣靜靜地躺著丁存,像睡著了一般。 火紅的嫁衣襯著肌膚如雪柴我。 梳的紋絲不亂的頭發(fā)上解寝,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天,我揣著相機與錄音艘儒,去河邊找鬼聋伦。 笑死,一個胖子當(dāng)著我的面吹牛界睁,可吹牛的內(nèi)容都是我干的嘉抓。 我是一名探鬼主播,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼晕窑,長吁一口氣:“原來是場噩夢啊……” “哼抑片!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起杨赤,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤敞斋,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后疾牲,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體植捎,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年阳柔,在試婚紗的時候發(fā)現(xiàn)自己被綠了焰枢。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡舌剂,死狀恐怖济锄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情霍转,我是刑警寧澤荐绝,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站避消,受9級特大地震影響低滩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜岩喷,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一恕沫、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧纱意,春花似錦婶溯、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽隶债。三九已至,卻和暖如春跑筝,著一層夾襖步出監(jiān)牢的瞬間死讹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工曲梗, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留赞警,地道東北人。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓虏两,卻偏偏與公主長得像愧旦,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子定罢,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,077評論 2 355

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