27 lines
672 B
GLSL
27 lines
672 B
GLSL
// https://gamedevelopment.tutsplus.com/tutorials/a-beginners-guide-to-coding-graphics-shaders--cms-23313
|
||
uniform vec3 waterColor;
|
||
uniform vec3 bottomColor;
|
||
uniform float wateroffset;
|
||
uniform float waterexponent;
|
||
varying vec3 vWorldPosition;
|
||
|
||
void main() {
|
||
float h = normalize( vWorldPosition * -1.0 + wateroffset ).y;
|
||
gl_FragColor = vec4(
|
||
// mix(x, y, a) performs a linear interpolation between x and y using a to weight between them.
|
||
// The return value is computed as x×(1−a)+y×a.
|
||
mix(
|
||
waterColor,
|
||
bottomColor,
|
||
max(
|
||
pow(
|
||
max( h , 0.0),
|
||
waterexponent
|
||
),
|
||
0.0
|
||
)
|
||
),
|
||
1.0
|
||
);
|
||
}
|