diff --git a/public/js/webgl-book-lab.js b/public/js/webgl-book-lab.js index 5551fe7..54fe6a1 100644 --- a/public/js/webgl-book-lab.js +++ b/public/js/webgl-book-lab.js @@ -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);