summaryrefslogtreecommitdiffstats
path: root/res/effectlib/fileDisplacementTexture.glsllib
blob: f574565bf69e90026d4d1e4280a66658766c420f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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