Shader 簡單的積雪效果說明

2021-08-04 01:23:37 字數 978 閱讀 8045

需要考慮到,雪的大小,雪的方向。

面向下雪方向的表面形成積雪,改變顏色。

雪越大,則面向下雪方向積雪越厚。

那麼重點是判斷哪些面是面向下雪方向的。這用向量dot運算可以實現。

然後積雪厚度改變我們用簡單的改變頂點位置實現。

這個shader很粗糙和有不合理的地方,比如發現方向就沒有進行跳幀過,不過,可以借鑑

properties

_bump("bump", 2d) = "bump" {}

_snow("level of snow", range(1, -1)) = 1

_snowcolor("color of snow", color) = (1.0,1.0,1.0,1.0)

_snowdirection("direction of snow", vector) = (0,1,0)

_snowdepth("depth of snow", range(0,1)) = 0

} subshader

lod 200

cgprogram

#pragma su***ce surf standard vertex:vert

sampler2d _maintex;

sampler2d _bump;

float _snow;

float4 _snowcolor;

float4 _maincolor;

float4 _snowdirection;

float _snowdepth;

struct input ;

void surf(input in, inout su***ceoutputstandard o)

endcg

} fallback "diffuse"

Shader 各種Shader效果的合集

1.the fresnel effect 參考 實用的shader shader heroshader character a通道標記陣營區域,1 表示有陣營顏色區域,0 表示非陣營顏色區域 emission emission range 0,1 0 自發光 shadowlevel shadow l...

效果比較好的頭髮shader

效果如下 渲染頭髮時可能會遇到如下問題 1.因為頭髮本質上是乙個乙個的透明的麵片,理所當然會想到使用 blend 混合方式來渲染。但當由於用 blend 時,要關閉z快取寫,即執行 zwirte off,不然透明的區域也會遮擋後面的畫素。此時就會出現問題,頭髮之間的層級會完全混亂,因為頭髮是多個麵片...

開啟深度寫入的半透明效果 Shader

思路 第乙個pass開啟深度寫入,但不輸出顏色,它的目的僅僅是為了把該模型的深度值寫入深度緩衝中 第二個pass進行正常的透明度混合,由於上乙個pass已經得到了逐畫素的正確的深度資訊,該pass就可以按照畫素級別的深度排序結果進行透明渲染。shader chapter8 alphablendzwr...