ue4當中材質自定義uv和多套uv
首先是多套uv
多套uv可以通過fbx方式匯入到ue4中(obj只能一套)
在texcoord中index裡面切換,從0開始為第一套uv
ue4當中還支援自定義uv的
這個功能是用來優化效率的,特別帶有大量平鋪紋理,或者是移動端
在材質主節點上的material裡面增加
下面是作用方式
其實和平時的uv操作相差無幾(主要不同之處在於自定義uv使用頂點著色器,更快)
主要是把uv變化移動到了自定義節點上
然後呼叫的時候也是通過和多套uv一樣的呼叫方式進行呼叫(改變對應的index)
就相當於在自定義uv裡進行了一步處理一樣,所以如果對同一套uv有分別在自定義uv和上面有兩次操作,那麼兩次操作將會疊加起來
(最上面的0號uv對應下面的,一號對應下面的,因為下面1號uv進行裡乘以2倍密度的操作,所以上面實際使用紋理密度也會乘以2)
因為自定義的uv雖然和本身uv功能差不多,但是uv的變換都是在畫素上的
自定義uv的變換是在頂點著色器當中作用的,但也是這個特性導致了這種材質不能用在沒有lod的高模上
因為頂點過多的模型反而會降低效率
而且uv變換最好是線性的(也就是不會讓紋理產生縮放之外的扭曲變化),否則會出現解析度低 參考官網https://docs.unrealengine.com/latest/INT/Engine/Rendering/Materials/CustomizedUVs/
uv扭曲的地方會隨著模型精度降低而出現畸變(類似鋸齒)
實際專案上比較少看到使用,主要用來提高像大量不同平鋪紋理的速度
需要運用的時候最好在自定義uv中有大量線性變換操作,否則產生的優化不明顯
而且儘量不要用在沒有lod的高模(當頂點密度大於螢幕畫素密度)上,這樣反而會有效能損失
參考網站
https://forums.unrealengine.com/development-discussion/rendering/8290-material-customized-uv-s-input-workflow
https://docs.unrealengine.com/latest/INT/Engine/Rendering/Materials/CustomizedUVs/
https://answers.unrealengine.com/questions/120782/performance-benefits-from-using-customizeduvs.html