PageSourceSearch

https://realm-switch.vercel.app/assets/reflectionFunction-BYlHeljd.js

js realm-switch.vercel.app collected 2026-10-03 07:37:49 UTC 4,133 bytes, 63 lines download raw bytes

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.