@@ -49,16 +49,13 @@ export function createPond(scene, gradientMap) { |
| 49 | 49 | sand.position.y = -0.02 |
| 50 | 50 | group.add(sand) |
| 51 | 51 | |
| 52 | | - // Water surface - higher resolution for wave animation |
| 53 | | - const waterGeom = new THREE.CircleGeometry(radius, 48, 8) |
| 52 | + // Water surface |
| 53 | + const waterGeom = new THREE.CircleGeometry(radius, 32) |
| 54 | 54 | waterGeom.rotateX(-Math.PI / 2) |
| 55 | 55 | const water = new THREE.Mesh(waterGeom, waterMaterial) |
| 56 | 56 | water.position.y = 0 |
| 57 | 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 | 59 | // Water depth visual (darker center with gradient) |
| 63 | 60 | const deepGeom = new THREE.CircleGeometry(radius * 0.7, 32) |
| 64 | 61 | deepGeom.rotateX(-Math.PI / 2) |
@@ -436,23 +433,6 @@ export function createPond(scene, gradientMap) { |
| 436 | 433 | let smokeSpawnTimer = 0 |
| 437 | 434 | |
| 438 | 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 | 436 | // Animate water highlight |
| 457 | 437 | highlight.position.x = -radius * 0.35 + Math.sin(elapsed * 0.5) * 0.3 |
| 458 | 438 | highlight.position.z = -radius * 0.35 + Math.cos(elapsed * 0.5) * 0.3 |