Unity頂點混合紋理映射著色器(Vertex Blend Triplanar Shader)

Unity頂點混合紋理映射著色器(Vertex Blend Triplanar Shader)

我剛開始使用Unity時,對地形紋理混合的方式並不滿意。因此我開發了這個頂點混合紋理映射著色器(Vertex Blend Triplanar Shader),讓我可以將Splat map貼圖烤到模型上來直接套用紋理。

這個著色器運用三維模型頂點的顏色(Vertex colors)、以映射(Triplanar)的方式混合多個紋理。用這個方法替3D地形上色是因為一般的上色在高角度的地形紋理會被拉伸而不美觀,而運用映射的方式則能避免紋理拉伸。

著色器運用可自定義的高度圖混合不同的紋理來實現真實的地形紋理 - 如上圖凸出的石頭與凹槽處堆積砂石間的紋理混合。對偏好使用三維模型創建地形的人來說非常適合。

  • Unity 2022.3.16f1LTS
  • URP 14.0.9
  • Shader Graph 14.0.9

著色器運用和Unity地形引擎相同的紋理遮罩通道,因此可直接套用適用於Unity地形引擎的紋理遮罩(Mask Textures)。

目前這個著色器運用RGB通道來混合3個紋理。Alpha通道可以用來混合第4個紋理。

展示的樣品是程式化生成的峭壁和紋理。Splat map貼圖自動依據模型的角度生成,並轉貼到頂點顏色。

這裡是另一個運用此著色器的案例,你可以使用Unity引擎中的Polybrush來直接對頂點顏色進行更改或繪製,以達到滿意的效果。


你可以到我的Github下載這個著色器。