| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- //@renderpasses 0
- //@import "std"
- //@vertex
- void main(){
- transformQuadVertex();
- }
- //@fragment
- void main(){
- vec4 clip=r_InverseProjectionMatrix * vec4( v_ClipPosition*2.0-1.0,1.0,1.0 );
-
- vec3 tv=r_EnvMatrix * (clip.xyz/clip.w);
-
- vec3 frag;
- if( r_SkyCube ){
- frag=pow( textureCube( r_SkyTextureCube,tv ).rgb,vec3( 2.2 ) );
- }else{
- float p=-atan( tv.y,sqrt( tv.x*tv.x+tv.z*tv.z ) ) / pi + 0.5;
-
- float y=atan( tv.x,tv.z ) / pi * 0.5 + 0.5;
-
- frag=pow( texture2D( r_SkyTexture2D,vec2( y,p ) ).rgb,vec3( 2.2 ) );
- }
-
- frag*=r_SkyColor.rgb;
-
- #if MX2_DEFERREDRENDERER
- gl_FragData[0]=vec4( frag,1.0 ); //accum
- gl_FragData[1]=vec4( 0.0,0.0,0.0,1.0 ); //color_m
- gl_FragData[2]=vec4( 0.5,0.5,0.5,1.0 ); //normal_r
- #else
- emitLinearFragment( vec4( frag,1.0 ) );
- #endif
- }
|