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.5, 0.5,
|
||||||
0, 0, 0, 1
|
0, 0, 0, 1
|
||||||
);
|
);
|
||||||
const reflectionForward = new THREE.Vector3();
|
|
||||||
const reflectionTarget = new THREE.Vector3();
|
const reflectionTarget = new THREE.Vector3();
|
||||||
const reflectionUp = new THREE.Vector3();
|
const reflectionUp = new THREE.Vector3();
|
||||||
const candleShadowSources = [];
|
const candleShadowSources = [];
|
||||||
@@ -651,8 +650,7 @@ function configureTableShader(material) {
|
|||||||
smoothstep(0.0, 0.08, sceneReflectionUv.y) *
|
smoothstep(0.0, 0.08, sceneReflectionUv.y) *
|
||||||
smoothstep(0.0, 0.08, 1.0 - sceneReflectionUv.x) *
|
smoothstep(0.0, 0.08, 1.0 - sceneReflectionUv.x) *
|
||||||
smoothstep(0.0, 0.08, 1.0 - sceneReflectionUv.y);
|
smoothstep(0.0, 0.08, 1.0 - sceneReflectionUv.y);
|
||||||
vec2 roughReflectionUv = sceneReflectionUv + normal.xz * 0.024;
|
vec3 sceneReflection = texture2D(sceneReflectionMap, sceneReflectionUv).rgb;
|
||||||
vec3 sceneReflection = texture2D(sceneReflectionMap, roughReflectionUv).rgb;
|
|
||||||
sceneReflection = pow(max(sceneReflection, vec3(0.0)), vec3(0.88)) * sceneReflectionInBounds * sceneReflectionEdge;
|
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));
|
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;
|
float dust = texture2D(tableDustMap, tableDustUv).r;
|
||||||
@@ -1182,10 +1180,9 @@ function updateTableReflection() {
|
|||||||
camera.position.z
|
camera.position.z
|
||||||
);
|
);
|
||||||
|
|
||||||
camera.getWorldDirection(reflectionForward);
|
reflectionTarget.copy(cameraRig.target);
|
||||||
reflectionTarget.copy(camera.position).add(reflectionForward);
|
|
||||||
reflectionTarget.y = tableTopY - (reflectionTarget.y - tableTopY);
|
reflectionTarget.y = tableTopY - (reflectionTarget.y - tableTopY);
|
||||||
reflectionUp.set(0, 1, 0).applyQuaternion(camera.quaternion);
|
reflectionUp.setFromMatrixColumn(camera.matrixWorld, 1);
|
||||||
reflectionUp.y *= -1;
|
reflectionUp.y *= -1;
|
||||||
tableReflectionCamera.up.copy(reflectionUp);
|
tableReflectionCamera.up.copy(reflectionUp);
|
||||||
tableReflectionCamera.lookAt(reflectionTarget);
|
tableReflectionCamera.lookAt(reflectionTarget);
|
||||||
|
|||||||
Reference in New Issue
Block a user