這系列是我之前在EpicGames官方學習路徑「Journey to becoming an Environment Artist in UE4」留下來的筆記,
目錄在此,歡迎參考
Landscape Material
Landscape Material與一般的MasterMaterial相同,但需要為Material設定Layer,才能營造出無縫過度的材質,例如掉落在沙地的石子,應該要好好的鑲嵌進沙子裡。(與LandscapeLayer不同,切勿搞混)
使用Landscape Layer Blend節點,可以混和數個Layer,並且可以針對混入的Layer,調整BlendType成為HeightBlend,這樣就可以基於輸入的Heighmap對應的0~1數值,來決定要混入哪種Material。
LayerBlend輸出的是MaterialAttribute,所以開啟主節點的UseMaterialAttribute可以更方便連接。
可以生成一個Material Function,來生成LayerBlend要引用的材質,除了輸入BaseColor等貼圖,還可以把DisplacementHeight和Blend Alpha輸出,以用在LayerBlend的Height Input。
針對LandscapeMaterial的UV,可以使用LandscapeLayerCoords節點,也就是Landscape版的TexCoord。
套用Landscape Material
因為前面製作的Landscape Material裡面有Landscape Layer Blend節點,把這個Material套到Landscape後,就可以在Landscape選項裡的TargetLayers,選擇Blend節點中要輸入的材質。
針對這些輸入材質,每個材質都需要生成對應的LayerInfo,方法是按材質旁邊的加號,這個Info是用來記錄每個Layer在Landscape上的占比。因此即使套用相同的Material,不同的Landscape就得生成一組對應的LayerInfo。
除了LayerBlend之外,材質中也可以使用LandscapeLayerSample節點,就可以在TargetLayers的地方生成額外的圖層。
(註:片中有一大段利用Displacement來強化視覺效果的部分,因為太複雜,所以就不在這邊紀錄,有需要的話請
自行前往)
為了減少遠處渲染的成本,並且避免類似摩爾紋的現象,可以使用CameraDepthFade製作遮罩,並且輸入至Lerp的Alpha,額外複製一組TextureSample,並把UV密度調低,做為遠處用的貼圖。只要CameraFade參數設得好,就可以幾乎無破綻地完成。