Unity Shader學習 雜訊noise

2021-09-10 19:31:21 字數 2887 閱讀 3098

perlin,value,******x雜訊的實現,詳細原理可以看樂樂大佬部落格,還是較為複雜的,這裡直接給出現成**和效果。

shader部分:

shader "custom/noisetest"

} subshader

float2 hash21

(float2 p)

//perlin

float

perlin_noise

(float2 p)

//value

float

value_noise

(float2 p)

//******x

float

******x_noise

(float2 p)

//fbm分形疊加

float

noise_sum

(float2 p)

float

noise_sum_value

(float2 p)

float

noise_sum_******x

(float2 p)

//turbulence

float

noise_sum_abs

(float2 p)

float

noise_sum_abs_value

(float2 p)

float

noise_sum_abs_******x

(float2 p)

//turbulence_sin

float

noise_sum_abs_sin

(float2 p)

float

noise_sum_abs_sin_value

(float2 p)

float

noise_sum_abs_sin_******x

(float2 p)

float4 frag

(v2f_img i)

:sv_target

else

if(i.uv.x <=

0.5&& i.uv.y<=

0.5)

else

if(i.uv.x >

0.5&& i.uv.y <=

0.5)

else

if(i.uv.x >

0.5&& i.uv.y >

0.5)

else

//柏林雜訊

float value1=

perlin_noise

(i.uv*

8.0)

;//fbm分形疊加

float value2 =

noise_sum

(i.uv)

;//turbulence

float value3 =

noise_sum_abs

(i.uv)

;//大理石

float value4 =

noise_sum_abs_sin

(i.uv)

;float val = value1 * partone + value2 * parttwo + value3 * partthree + value4 * partfour;

val = val *

0.45

+0.45

;float value5 =

value_noise

(i.uv*

32.0);

float value6 =

noise_sum_value

(i.uv)

;float value7 =

noise_sum_abs_value

(i.uv)

;float value8 =

noise_sum_abs_sin_value

(i.uv)

;float val2 = value5 * partfive + value6 * partsix + value7 * partseven + value8 * parteight;

val2 = val2 *

0.45

+0.45

;float value9 =

******x_noise

(i.uv*

8.0)

;float value10 =

noise_sum_******x

(i.uv)

;float value11 =

noise_sum_abs_******x

(i.uv)

;float value12 =

noise_sum_abs_sin_******x

(i.uv)

;float val3 = value9 * partnine + value10 * partten + value11 * parteleven + value12 * parttwelve;

val3 = val3 *

0.45

+0.45

;return

float4

(val3, val3, val3,1)

;}endcg

}} fallback "diffuse"

}

Unity Shader之再談雜訊

對於雜訊其實我還有很多不懂的地方,比如random函式,比如雜訊的實際應用場景等等。於是在搜尋資料的時候我發現了兩個超超超牛b的 可以說是我這種想要去學習相關知識的人的福利 在這裡給自己標記一下同時也分享給大家 1.shadertoy創始人之一的奇淫巧計大集合 之前看shadertoy的時候,在驚嘆...

unity shader 學習筆記

upgrade note replaced world2object with unity worldtoobject upgrade note replaced mul unity matrix mvp,with unityobjecttoclippos shader unity shader b...

unity shader學習總結一

學習unity shader有兩個月了,最近的兩個月總是有一些工程專案,占用我大量的學習時間,因此總是停停學學。今天虛擬校園工程開好完成了,就有時間吧自己學到的shader,總結一下。這是兩個 jianbian紋理 實現的效果如下 如下 shader custom katongmylihmodel ...