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下載這個著色器。

相關貼文

80年代髮型在Unity中渲染

80年代髮型在Unity中渲染

我使用 Blender 製作了 80 年代的髮型,並採用了通常與ZBrush相關的常見頭髮創建工作流程。該過程涉及雕刻頭髮形狀並放置髮卡曲線以進行分層-從基礎層到分離層再到過渡層。

繼續閱讀
Unity各向異頭髮高光著色器(Anisotropic Highlight Shader)

Unity各向異頭髮高光著色器(Anisotropic Highlight Shader)

下圖左: Unity通用渲染管線預設Lit著色器; 中: UMA角色創建建議使用的SpeedTree8著色器; 右: 我的著色器

頭髮模型在遊戲中很常用,但是Unity預設的URP材質對於頭髮著色並沒有達到我想要的效果。因此,我開發了這個各向異性高光頭髮著色器來增強專案中的頭髮渲染。

繼續閱讀