1MaterialDef Advanced Water {
2
3    MaterialParameters {
4        Int NumSamples
5        Int NumSamplesDepth
6        Texture2D FoamMap
7        Texture2D CausticsMap
8        Texture2D NormalMap
9        Texture2D ReflectionMap
10        Texture2D HeightMap
11        Texture2D Texture
12        Texture2D DepthTexture        
13        Vector3 CameraPosition
14        Float Time
15        Vector3 frustumCorner
16        Matrix4 TextureProjMatrix
17        Matrix4 ViewProjectionMatrixInverse
18        Float WaterHeight
19        Vector3 LightDir
20        Float WaterTransparency
21        Float NormalScale
22        Float R0
23        Float MaxAmplitude
24        Color LightColor
25        Float ShoreHardness
26        Float FoamHardness
27        Float RefractionStrength
28        Float WaveScale
29        Vector3 FoamExistence
30        Float SunScale
31        Vector3 ColorExtinction
32        Float Shininess
33        Color WaterColor
34        Color DeepWaterColor
35        Vector2 WindDirection
36        Float ReflectionDisplace
37        Float FoamIntensity
38        Float CausticsIntensity
39        Float UnderWaterFogDistance
40
41        Boolean UseRipples
42        Boolean UseHQShoreline
43        Boolean UseSpecular
44        Boolean UseFoam
45        Boolean UseCaustics 
46        Boolean UseRefraction
47
48    }
49
50    Technique {
51        VertexShader   GLSL150 : Common/MatDefs/Post/Post15.vert
52        FragmentShader GLSL150 : Common/MatDefs/Water/Water15.frag
53
54        WorldParameters {
55            WorldViewProjectionMatrix
56        }
57
58        Defines {
59          RESOLVE_MS : NumSamples
60            RESOLVE_DEPTH_MS : NumSamplesDepth
61            ENABLE_RIPPLES : UseRipples
62            ENABLE_HQ_SHORELINE : UseHQShoreline
63            ENABLE_SPECULAR : UseSpecular
64            ENABLE_FOAM : UseFoam
65            ENABLE_CAUSTICS : UseCaustics
66            ENABLE_REFRACTION : UseRefraction
67        }
68    }
69
70    Technique {
71        VertexShader   GLSL100 : Common/MatDefs/Post/Post.vert
72        FragmentShader GLSL120 : Common/MatDefs/Water/Water.frag
73
74        WorldParameters {
75            WorldViewProjectionMatrix
76        }
77        Defines {
78            ENABLE_RIPPLES : UseRipples
79            ENABLE_HQ_SHORELINE : UseHQShoreline
80            ENABLE_SPECULAR : UseSpecular
81            ENABLE_FOAM : UseFoam
82            ENABLE_CAUSTICS : UseCaustics
83            ENABLE_REFRACTION : UseRefraction
84
85        }
86    }
87
88    Technique FixedFunc {
89    }
90}