opColor;
    uniform vec3 bottomColor;
    uniform float offset;
    uniform float exponent;
    varying vec3 vWorldPosition;
    void main() {
      float h = normalize( vWorldPosition + offset ).y;
      gl_FragColor = vec4( mix( bottomColor, topColor, max( pow( max( h , 0.0), exponent ), 0.0 ) ), 1.0 );
    }
    `;

		const uniforms = {
			topColor: { value: new THREE.Color( 0x88AABB ) },
			bottomColor: { value: new THREE.Color( 0xEFCB7F ) },
			offset: { value: 730 },
			exponent: { value: 0.3 },
		};