Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2018-06-02 10:25:23 +0300
committerClément Foucault <foucault.clem@gmail.com>2018-06-02 22:16:40 +0300
commit08a2c5f2249c89a07cc6c37b28d13a611283ef73 (patch)
treea0a91bf40452be77dff15fe068d24e312fca3380 /source/blender/draw/engines/eevee/shaders/bsdf_common_lib.glsl
parent4430bd36446beb1338da2001b0b236e0e440c386 (diff)
Eevee: Add support for hair random property.
Do note that it does not match cycles implementation. Also we could precompute the hash per strand before rendering but that would suggest it's not per engine specific. If we make the random value internal to blender then it won't be a matter because other renderers will have access to the same value.
Diffstat (limited to 'source/blender/draw/engines/eevee/shaders/bsdf_common_lib.glsl')
-rw-r--r--source/blender/draw/engines/eevee/shaders/bsdf_common_lib.glsl14
1 files changed, 14 insertions, 0 deletions
diff --git a/source/blender/draw/engines/eevee/shaders/bsdf_common_lib.glsl b/source/blender/draw/engines/eevee/shaders/bsdf_common_lib.glsl
index 704b039e0f6..a1890433b0f 100644
--- a/source/blender/draw/engines/eevee/shaders/bsdf_common_lib.glsl
+++ b/source/blender/draw/engines/eevee/shaders/bsdf_common_lib.glsl
@@ -143,6 +143,20 @@ vec2 mip_ratio_interp(float mip) {
float low_mip = floor(mip);
return mix(mipRatio[int(low_mip)], mipRatio[int(low_mip + 1.0)], mip - low_mip);
}
+
+/* ------- RNG ------- */
+
+float wang_hash_noise(uint s)
+{
+ s = (s ^ 61u) ^ (s >> 16u);
+ s *= 9u;
+ s = s ^ (s >> 4u);
+ s *= 0x27d4eb2du;
+ s = s ^ (s >> 15u);
+
+ return fract(float(s) / 4294967296.0);
+}
+
/* ------- Fast Math ------- */
/* [Drobot2014a] Low Level Optimizations for GCN */