summaryrefslogtreecommitdiffstats
path: root/res/effectlib/fileDisplacementTexture.glsllib
diff options
context:
space:
mode:
Diffstat (limited to 'res/effectlib/fileDisplacementTexture.glsllib')
-rw-r--r--res/effectlib/fileDisplacementTexture.glsllib41
1 files changed, 41 insertions, 0 deletions
diff --git a/res/effectlib/fileDisplacementTexture.glsllib b/res/effectlib/fileDisplacementTexture.glsllib
new file mode 100644
index 0000000..f574565
--- /dev/null
+++ b/res/effectlib/fileDisplacementTexture.glsllib
@@ -0,0 +1,41 @@
+#ifndef FILE_DISPLACEMENT_TEXTURE_GLSLLIB
+#define FILE_DISPLACEMENT_TEXTURE_GLSLLIB
+
+#ifdef UIC_DEFINE_API
+
+#include "luminance.glsllib"
+#include "monoChannel.glsllib"
+#include "textureCoordinateInfo.glsllib"
+#define wrap_clamp 0
+#define wrap_repeat 1
+#define wrap_mirrored_repeat 2
+#define mono_alpha 0
+#define mono_average 1
+#define mono_luminance 2
+#define mono_maximum 3
+#include "rotationTranslationScale.glsllib"
+#include "transformCoordinate.glsllib"
+
+#endif
+
+
+vec3 fileDisplacementTexture( in sampler2D sampler, in float factor, in int displaceSource
+ , in texture_coordinate_info uvw, in vec3 normal, in vec3 pos )
+{
+ // compute displace factor
+ float df = monoChannel( texture( sampler, uvw.position.xy ), displaceSource );
+
+ return( normal * df * factor + pos );
+}
+
+
+//default material path version
+vec3 uicDefaultMaterialFileDisplacementTexture( in sampler2D sampler, in float factor, vec2 texCoord, in vec3 normal, vec3 pos )
+{
+ return fileDisplacementTexture( sampler, factor, mono_luminance
+ , textureCoordinateInfo( vec3( texCoord.x, texCoord.y, 0.0 ), vec3(1.0, 0.0, 0.0), vec3(0.0, 1.0, 0.0) )
+ , normal, pos );
+}
+
+
+#endif