@@ -49,16 +49,13 @@ export function createPond(scene, gradientMap) { |
| 49 | sand.position.y = -0.02 | 49 | sand.position.y = -0.02 |
| 50 | group.add(sand) | 50 | group.add(sand) |
| 51 | | 51 | |
| 52 | - // Water surface - higher resolution for wave animation | 52 | + // Water surface |
| 53 | - const waterGeom = new THREE.CircleGeometry(radius, 48, 8) | 53 | + const waterGeom = new THREE.CircleGeometry(radius, 32) |
| 54 | waterGeom.rotateX(-Math.PI / 2) | 54 | waterGeom.rotateX(-Math.PI / 2) |
| 55 | const water = new THREE.Mesh(waterGeom, waterMaterial) | 55 | const water = new THREE.Mesh(waterGeom, waterMaterial) |
| 56 | water.position.y = 0 | 56 | water.position.y = 0 |
| 57 | group.add(water) | 57 | group.add(water) |
| 58 | | 58 | |
| 59 | - // Store original water vertex positions for wave animation | | |
| 60 | - const waterPositions = waterGeom.attributes.position.array.slice() | | |
| 61 | - | | |
| 62 | // Water depth visual (darker center with gradient) | 59 | // Water depth visual (darker center with gradient) |
| 63 | const deepGeom = new THREE.CircleGeometry(radius * 0.7, 32) | 60 | const deepGeom = new THREE.CircleGeometry(radius * 0.7, 32) |
| 64 | deepGeom.rotateX(-Math.PI / 2) | 61 | deepGeom.rotateX(-Math.PI / 2) |
@@ -436,23 +433,6 @@ export function createPond(scene, gradientMap) { |
| 436 | let smokeSpawnTimer = 0 | 433 | let smokeSpawnTimer = 0 |
| 437 | | 434 | |
| 438 | function update(delta, elapsed) { | 435 | function update(delta, elapsed) { |
| 439 | - // Animate water surface waves | | |
| 440 | - const positions = waterGeom.attributes.position.array | | |
| 441 | - for (let i = 0; i < positions.length; i += 3) { | | |
| 442 | - const x = waterPositions[i] | | |
| 443 | - const z = waterPositions[i + 2] | | |
| 444 | - const dist = Math.sqrt(x * x + z * z) | | |
| 445 | - | | |
| 446 | - // Gentle concentric waves from center (main ripple) | | |
| 447 | - const wave1 = Math.sin(dist * 1.2 - elapsed * 1.5) * 0.025 | | |
| 448 | - // Secondary offset ripple (different origin point for natural look) | | |
| 449 | - const dist2 = Math.sqrt((x - 1) * (x - 1) + (z + 0.5) * (z + 0.5)) | | |
| 450 | - const wave2 = Math.sin(dist2 * 1.4 - elapsed * 1.8) * 0.015 | | |
| 451 | - | | |
| 452 | - positions[i + 1] = waterPositions[i + 1] + wave1 + wave2 | | |
| 453 | - } | | |
| 454 | - waterGeom.attributes.position.needsUpdate = true | | |
| 455 | - | | |
| 456 | // Animate water highlight | 436 | // Animate water highlight |
| 457 | highlight.position.x = -radius * 0.35 + Math.sin(elapsed * 0.5) * 0.3 | 437 | highlight.position.x = -radius * 0.35 + Math.sin(elapsed * 0.5) * 0.3 |
| 458 | highlight.position.z = -radius * 0.35 + Math.cos(elapsed * 0.5) * 0.3 | 438 | highlight.position.z = -radius * 0.35 + Math.cos(elapsed * 0.5) * 0.3 |