diff --git a/tv-player/index.html b/tv-player/index.html
index ad02195..1ae2421 100644
--- a/tv-player/index.html
+++ b/tv-player/index.html
@@ -82,7 +82,7 @@
const nextTapeButton = document.getElementById('nextTapeButton');
const loader = new THREE.TextureLoader();
- const debugLight = true;
+ const debugLight = false;
// --- Utility: Random Color (seeded) ---
function getRandomColor() {
@@ -108,7 +108,7 @@
scene.background = new THREE.Color(0x000000);
// 2. Camera Setup
- const FOV = 65;
+ const FOV = 55;
camera = new THREE.PerspectiveCamera(FOV, window.innerWidth / window.innerHeight, 0.1, 1000);
camera.position.set(0, 1.5, 4);
@@ -126,6 +126,10 @@
const ambientLight = new THREE.AmbientLight(0x111111);
scene.add(ambientLight);
+ const roomLight = new THREE.PointLight(0xffaa55, 0.2, roomSize);
+ roomLight.position.set(0, 1.8, 0);
+ scene.add(roomLight);
+
// 5. Build the entire scene with TV and surrounding objects
createSceneObjects();
@@ -333,9 +337,10 @@
const shelfSurfaceY = currentShelfY + woodThickness / 2;
while (currentBookX < internalWidth / 2 - 0.05) {
- const bookWidth = 0.02 + seededRandom() * 0.05; // 2cm to 7cm wide
- const bookHeight = (shelfSpacing * 0.6) + seededRandom() * (shelfSpacing * 0.3); // Vary height within shelf limits
- const bookDepth = 0.15 + seededRandom() * 0.1; // Vary depth
+ // sizes vary
+ const bookWidth = 0.02 + seededRandom() * 0.05;
+ const bookHeight = (shelfSpacing * 0.6) + seededRandom() * (shelfSpacing * 0.1);
+ const bookDepth = 0.15 + seededRandom() * 0.03;
if (currentBookX + bookWidth > internalWidth / 2) break;
@@ -357,6 +362,10 @@
shelfGroup.add(book);
currentBookX += bookWidth + 0.002; // Tiny gap between books
+
+ if (seededRandom() > 0.92) {
+ currentBookX += bookWidth * 3; // random bigger gaps
+ }
}
}
@@ -410,7 +419,7 @@
shininess: 80,
specular: 0x888888
});
- const tvPlastic = new THREE.MeshPhongMaterial({ color: 0x2d251e, shininess: 10 });
+ const tvPlastic = new THREE.MeshPhongMaterial({ color: 0x4d4d4d, shininess: 30 });
const tvGroup = new THREE.Group();
@@ -431,7 +440,7 @@
tvGroup.add(cabinet);
// --- 3. Screen Frame ---
- const frameGeometry = new THREE.BoxGeometry(1.5, 1.3, 0.2);
+ const frameGeometry = new THREE.BoxGeometry(1.5, 1.3, 0.1);
const frameMaterial = new THREE.MeshPhongMaterial({ color: 0x111111, shininess: 20 });
const frame = new THREE.Mesh(frameGeometry, frameMaterial);
frame.position.set(0, 1.5, 0.68);
@@ -466,7 +475,7 @@
tvScreen = new THREE.Mesh(screenGeometry, screenMaterial);
// Position the curved screen
- tvScreen.position.set(0, 1.5, -2);
+ tvScreen.position.set(0.0, 1.5, -2.1);
tvGroup.add(tvScreen);
tvGroup.position.set(x, 0, z);
@@ -499,7 +508,11 @@
// --- 1. Floor ---
const floorGeometry = new THREE.PlaneGeometry(20, 20);
- const floorMaterial = new THREE.MeshPhongMaterial({ color: 0x1a1a1a, shininess: 5 });
+ const floorTexture = loader.load('./textures/floor.jpg');
+ floorTexture.wrapS = THREE.RepeatWrapping;
+ floorTexture.wrapT = THREE.RepeatWrapping;
+ floorTexture.repeat.set(roomSize, roomSize);
+ const floorMaterial = new THREE.MeshPhongMaterial({ map: floorTexture, color: 0x555555, shininess: 5 });
const floor = new THREE.Mesh(floorGeometry, floorMaterial);
floor.rotation.x = -Math.PI / 2;
floor.position.y = 0;
@@ -585,6 +598,7 @@
scene.add(pizzaBox);
createDoor(roomSize/2, -roomSize/2 * 0.5, -Math.PI/2);
+ createBookshelf(-roomSize/2 + 0.2, roomSize/2*0.2, Math.PI/2, 0);
createBookshelf(-roomSize/2 + 0.2, roomSize/2*0.7, Math.PI/2, 0);
createBookshelf(roomSize/2 * 0.7, -roomSize/2+0.3, 0, 1);
}
@@ -865,4 +879,5 @@
window.onload = init;