Improve planar reflection alignment
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user