1import{f as e}from"./math.scalar.functions-Cad0mLhT.js";import{t}from"./shaderStore-1xgJNigV.js";var n=e({reflectionFunction:()=>a}),r=`reflectionFunction`,i=`vec3 computeFixedEquirectangularCoords(vec4 worldPos,vec3 worldNormal,vec3 direction) 2{float lon=atan(direction.z,direction.x);float lat=acos(direction.y);vec2 sphereCoords=vec2(lon,lat)*RECIPROCAL_PI2*2.0;float s=sphereCoords.x*0.5+0.5;float t=sphereCoords.y;return vec3(s,t,0); } 3vec3 computeMirroredFixedEquirectangularCoords(vec4 worldPos,vec3 worldNormal,vec3 direction) 4{float lon=atan(direction.z,direction.x);float lat=acos(direction.y);vec2 sphereCoords=vec2(lon,lat)*RECIPROCAL_PI2*2.0;float s=sphereCoords.x*0.5+0.5;float t=sphereCoords.y;return vec3(1.0-s,t,0); } 5vec3 computeEquirectangularCoords(vec4 worldPos,vec3 worldNormal,vec3 eyePosition,mat4 reflectionMatrix) 6{vec3 cameraToVertex=normalize(worldPos.xyz-eyePosition);vec3 r=normalize(reflect(cameraToVertex,worldNormal));r=vec3(reflectionMatrix*vec4(r,0));float lon=atan(r.z,r.x);float lat=acos(r.y);vec2 sphereCoords=vec2(lon,lat)*RECIPROCAL_PI2*2.0;float s=sphereCoords.x*0.5+0.5;float t=sphereCoords.y;return vec3(s,t,0);} 7vec3 computeSphericalCoords(vec4 worldPos,vec3 worldNormal,mat4 view,mat4 reflectionMatrix) 8{vec3 viewDir=normalize(vec3(view*worldPos));vec3 viewNormal=normalize(vec3(view*vec4(worldNormal,0.0)));vec3 r=reflect(viewDir,viewNormal);r=vec3(reflectionMatrix*vec4(r,0));r.z=r.z-1.0;float m=2.0*length(r);return vec3(r.x/m+0.5,1.0-r.y/m-0.5,0);} 9vec3 computePlanarCoords(vec4 worldPos,vec3 worldNormal,vec3 eyePosition,mat4 reflectionMatrix) 10{vec3 viewDir=worldPos.xyz-eyePosition;vec3 coords=normalize(reflect(viewDir,worldNormal));return vec3(reflectionMatrix*vec4(coords,1));} 11vec3 computeCubicCoords(vec4 worldPos,vec3 worldNormal,vec3 eyePosition,mat4 reflectionMatrix) 12{vec3 viewDir=normalize(worldPos.xyz-eyePosition);vec3 coords=reflect(viewDir,worldNormal);coords=vec3(reflectionMatrix*vec4(coords,0)); 13#ifdef INVERTCUBICMAP 14coords.y*=-1.0; 15#endif 16return coords;} 17vec3 computeCubicLocalCoords(vec4 worldPos,vec3 worldNormal,vec3 eyePosition,mat4 reflectionMatrix,vec3 reflectionSize,vec3 reflectionPosition) 18{vec3 viewDir=normalize(worldPos.xyz-eyePosition);vec3 coords=reflect(viewDir,worldNormal);coords=parallaxCorrectNormal(worldPos.xyz,coords,reflectionSize,reflectionPosition);coords=vec3(reflectionMatrix*vec4(coords,0)); 19#ifdef INVERTCUBICMAP 20coords.y*=-1.0; 21#endif 22return coords;} 23vec3 computeProjectionCoords(vec4 worldPos,mat4 view,mat4 reflectionMatrix) 24{return vec3(reflectionMatrix*(view*worldPos));} 25vec3 computeSkyBoxCoords(vec3 positionW,mat4 reflectionMatrix) 26{return vec3(reflectionMatrix*vec4(positionW,1.));} 27#ifdef REFLECTION 28vec3 computeReflectionCoords(vec4 worldPos,vec3 worldNormal) 29{ 30#ifdef REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED 31vec3 direction=normalize(vDirectionW);return computeMirroredFixedEquirectangularCoords(worldPos,worldNormal,direction); 32#endif 33#ifdef REFLECTIONMAP_EQUIRECTANGULAR_FIXED 34vec3 direction=normalize(vDirectionW);return computeFixedEquirectangularCoords(worldPos,worldNormal,direction); 35#endif 36#ifdef REFLECTIONMAP_EQUIRECTANGULAR 37return computeEquirectangularCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix); 38#endif 39#ifdef REFLECTIONMAP_SPHERICAL 40return computeSphericalCoords(worldPos,worldNormal,view,reflectionMatrix); 41#endif 42#ifdef REFLECTIONMAP_PLANAR 43return computePlanarCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix); 44#endif 45#ifdef REFLECTIONMAP_CUBIC 46#ifdef USE_LOCAL_REFLECTIONMAP_CUBIC 47return computeCubicLocalCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix,vReflectionSize,vReflectionPosition); 48#else 49return computeCubicCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix); 50#endif 51#endif 52#ifdef REFLECTIONMAP_PROJECTION 53return computeProjectionCoords(worldPos,view,reflectionMatrix); 54#endif 55#ifdef REFLECTIONMAP_SKYBOX 56return computeSkyBoxCoords(vPositionUVW,reflectionMatrix); 57#endif 58#ifdef REFLECTIONMAP_EXPLICIT 59return vec3(0,0,0); 60#endif 61} 62#endif 63`;t.IncludesShadersStore[r]||(t.IncludesShadersStore[r]=i);var a={name:r,shader:i};export{n as t};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.