// https://gamedevelopment.tutsplus.com/tutorials/a-beginners-guide-to-coding-graphics-shaders--cms-23313 uniform vec3 topColor; uniform vec3 groundColor; uniform vec3 bottomColor; varying vec3 vWorldPosition; void main() { float h = vWorldPosition.y; if(h > 0.0) { gl_FragColor = vec4(topColor,1.0); } else { // gl_FragColor = vec4(bottomColor,1.0); // h = h * -1.0; // float hh = abs(normalize( vWorldPosition ).y); gl_FragColor = vec4( mix( groundColor, bottomColor, min(abs(h)/100.0,1.0) // min(h/150.0 , 2.0) // max( // pow( // max( hh , 0.0), // exponent // ), // 0.0 // ) ), 1.0 ); } }