playcanvas
Version:
Open-source WebGL/WebGPU 3D engine for the web
37 lines (27 loc) • 825 B
JavaScript
var cubeMapProject_default = (
/* glsl */
`
uniform vec3 envBoxMin;
uniform vec3 envBoxMax;
vec3 cubeMapProject(vec3 nrdir) {
return cubeMapRotate(nrdir);
nrdir = cubeMapRotate(nrdir);
vec3 rbmax = (envBoxMax - vPositionW) / nrdir;
vec3 rbmin = (envBoxMin - vPositionW) / nrdir;
vec3 rbminmax = mix(rbmin, rbmax, vec3(greaterThan(nrdir, vec3(0.0))));
float fa = min(min(rbminmax.x, rbminmax.y), rbminmax.z);
vec3 posonbox = vPositionW + nrdir * fa;
vec3 envBoxPos = (envBoxMin + envBoxMax) * 0.5;
return normalize(posonbox - envBoxPos);
}
`
);
export {
cubeMapProject_default as default
};