Improve planar reflection alignment

This commit is contained in:
2026-06-04 12:11:18 +02:00
parent 90308e4b1b
commit e1396d44bb
+3 -6
View File
@@ -59,7 +59,6 @@ const tableReflectionBiasMatrix = new THREE.Matrix4().set(
0, 0, 0.5, 0.5,
0, 0, 0, 1
);
const reflectionForward = new THREE.Vector3();
const reflectionTarget = new THREE.Vector3();
const reflectionUp = new THREE.Vector3();
const candleShadowSources = [];
@@ -651,8 +650,7 @@ function configureTableShader(material) {
smoothstep(0.0, 0.08, sceneReflectionUv.y) *
smoothstep(0.0, 0.08, 1.0 - sceneReflectionUv.x) *
smoothstep(0.0, 0.08, 1.0 - sceneReflectionUv.y);
vec2 roughReflectionUv = sceneReflectionUv + normal.xz * 0.024;
vec3 sceneReflection = texture2D(sceneReflectionMap, roughReflectionUv).rgb;
vec3 sceneReflection = texture2D(sceneReflectionMap, sceneReflectionUv).rgb;
sceneReflection = pow(max(sceneReflection, vec3(0.0)), vec3(0.88)) * sceneReflectionInBounds * sceneReflectionEdge;
vec2 tableDustUv = clamp(vec2(vTableWorldPosition.x / 9.8 + 0.5, 0.5 - vTableWorldPosition.z / 6.6), vec2(0.0), vec2(1.0));
float dust = texture2D(tableDustMap, tableDustUv).r;
@@ -1182,10 +1180,9 @@ function updateTableReflection() {
camera.position.z
);
camera.getWorldDirection(reflectionForward);
reflectionTarget.copy(camera.position).add(reflectionForward);
reflectionTarget.copy(cameraRig.target);
reflectionTarget.y = tableTopY - (reflectionTarget.y - tableTopY);
reflectionUp.set(0, 1, 0).applyQuaternion(camera.quaternion);
reflectionUp.setFromMatrixColumn(camera.matrixWorld, 1);
reflectionUp.y *= -1;
tableReflectionCamera.up.copy(reflectionUp);
tableReflectionCamera.lookAt(reflectionTarget);