1234567891011121314151617181920212223242526 |
- #version 300 es
- precision mediump float;
- #define PI 3.14159265359
- uniform samplerCube envTex;
- in vec4 vLocalPosition;
- const vec2 invAtan = vec2(1.0 / (PI * 2.0), -1.0 / PI);
- vec2 getSphereUV(vec3 v) {
- vec2 uv = vec2(atan(v.z, v.x), asin(v.y));
- uv *= invAtan;
- uv += 0.5;
- uv = mod(uv, 1.0);
- return uv;
- }
- out vec4 vFragColor;
- void main(){
- vec3 nor = normalize(vLocalPosition.xyz / vLocalPosition.w);
- vec2 uv = getSphereUV(nor);
- vec3 color = texture(envTex, nor).rgb;
- // color /= color + 1.0;
- vFragColor = vec4(color, 1);
- }
|