summaryrefslogtreecommitdiffstats
path: root/res/effectlib/anisotropyConversion.glsllib
diff options
context:
space:
mode:
Diffstat (limited to 'res/effectlib/anisotropyConversion.glsllib')
-rw-r--r--res/effectlib/anisotropyConversion.glsllib14
1 files changed, 14 insertions, 0 deletions
diff --git a/res/effectlib/anisotropyConversion.glsllib b/res/effectlib/anisotropyConversion.glsllib
new file mode 100644
index 0000000..c18f722
--- /dev/null
+++ b/res/effectlib/anisotropyConversion.glsllib
@@ -0,0 +1,14 @@
+// TODO: real implementation
+anisotropy_return anisotropyConversion( in float roughness, in float anisotropy, in float anisotropyRotation, in vec3 tangentU, bool miaAnisotropySemantic )
+{
+ anisotropy_return aniso;
+ float angle = 2.0 * PI * anisotropyRotation;
+ float cos_angle = cos(angle);
+ float sin_angle = sin(angle);
+ aniso.tangent_u = normalize( cos_angle * tangentU + sin_angle * binormal );
+ // roughness
+ float anisoFac = 1.0 - clamp(anisotropy, 0.0, 0.999);
+ aniso.roughness_v = clamp( roughness / anisoFac, 0.0001, 1.0);
+ aniso.roughness_u = clamp( aniso.roughness_v * anisoFac, 0.0001, 1.0);
+ return( aniso );
+}