Hello,大家好,今天和大家聊一下Unreal中Decal貼花拉伸運用技巧,我是木偶心沒。
貼花(decal)在遊戲裏麵是運用的比較多的,因為他可以簡單的把圖片運用不同的疊加方式繪製到另一個物體的表麵,比如說遊戲中的髒跡,腳印,彈孔和血跡等,都是貼花的效果。
在unreal裏麵,我們還可以單獨繪製貼花的base color,roughness和normal。但是我們也會遇到一些常見的decal問題,比如說垂直的地方比如說牆邊會進行拉伸。
這是因為decal計算的信息隻有x和y軸,沒有z軸的信息,所以遇到垂直的物體就不會自動投射z軸的信息造成拉伸。
我們隻要在材質中算出貼花貼在垂直的那部分上的範圍,然後剔除掉那部分就可以了。如何求出垂直的那部分,比較簡單的算法是直接比較貼花的z軸和垂直的向量(0,0,1)是否垂直(夾角等於90度)。所以我們首先我們用Absolute World Position獲取貼花的絕對世界坐標。
然後因為要獲取的z軸是貼花的,需要在viewspace中進行換算,所以用transformVector將默認的世界坐標空間world space轉化成view space,然後通過view space的x和y坐標的模(normalize)來求z的值。因為z軸是垂直於x和y的,所以隻需要用cross就可以求得與x和y垂直的向量,即z軸。
求得以後轉變坐標係到world space,因為需要求貼花的z向量和(0,0,1)的夾角。
用得到的結果與向量(0,0,1)進行dot(點乘),得到的值如果等於0的話則說明兩個向量之間的夾角為90度,即垂直,因為如果遇到牆麵,相當於貼花的法線方向就等於牆麵的法線方向,所以會與(0,0,1)垂直。
所以如果我們用所得到的值和貼花的opacity做乘法的話,最後的結果就會把垂直那部分的效果切掉。
最後我們在引擎裏麵看到修改後的效果如下
來源:Thepoly公眾號
熱門課程
專業講師指導 快速擺脫技能困惑相關文章
多種教程 總有一個適合自己專業問題谘詢
你擔心的問題,火星幫你解答本篇文章會深入解析火星時代教育的平麵設計班內容。本課程將帶你進入平麵設計的廣闊世界,跨越設計的理論與實踐,挖掘你的設計潛能。
火星網頁實習培訓開啟了走向網絡前端開發的大門。火星時代教育引領學生掌握了最新的前端技術並且了解火星網頁實習培訓的相關內容。
找到最好的vr遊戲開發培訓學校,提升你的VR遊戲開發技能,成為行業內的專業人士。關鍵詞:VR遊戲開發,VR培訓,遊戲開發學校。
探討影視美術建築表現的重要性以及如何通過火星時代教育的專業培訓,有效提升此項技能。
本文主要介紹了培訓學校空間設計的重要性及其技巧,並探討火星時代教育如何運用空間設計給學習帶來更好的體驗。
了解一個頂級的遊戲開發培訓機構如何通過專業的課程和實戰訓練幫助學員成長為高級遊戲開發者。
1. 打開微信掃一掃,掃描左側二維碼
2. 添加老師微信,馬上領取免費課程資源
同學您好!