diff options
Diffstat (limited to 'res/effectlib/flakeNoiseBumpTexture.glsllib')
-rw-r--r-- | res/effectlib/flakeNoiseBumpTexture.glsllib | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/res/effectlib/flakeNoiseBumpTexture.glsllib b/res/effectlib/flakeNoiseBumpTexture.glsllib new file mode 100644 index 0000000..2673edf --- /dev/null +++ b/res/effectlib/flakeNoiseBumpTexture.glsllib @@ -0,0 +1,15 @@ +vec3 flakeNoiseBumpTexture( in texture_coordinate_info uvw, in float scale, in float strength, in vec3 normal ) +{ + vec3 tex = uvw.position / scale; + vec3 grad = miNoise( tex ).xyz; + + // displace coordinate according to noise value + tex += 2.0f * grad; + + // then use only integer coordinates, to make flakes transients harder and not wobbly + grad = miNoise( round( tex ) ).xyz; + + vec3 n = normalize(vec3(strength * grad.x, strength * grad.y, 1.0)); + n = n.x*uvw.tangent_u + n.y*uvw.tangent_v + n.z*normal; + return normalize(normal + n); +} |