zeroed-some/dougk / a3649c6

Browse files

scale things somewhat

Authored by espadonne
SHA
a3649c6c268dba8dae258562e80841c9bc819ae4
Parents
f9ef9de
Tree
7125fe6

1 changed file

StatusFile+-
M src/renderers/three/pond.js 72 72
src/renderers/three/pond.jsmodified
@@ -155,10 +155,9 @@ export function createPond(scene, gradientMap) {
155
 
155
 
156
   // ============================================
156
   // ============================================
157
   // DISTANT SCENERY - Mountains and Village
157
   // DISTANT SCENERY - Mountains and Village
158
+  // Scaled small like game board pieces!
158
   // ============================================
159
   // ============================================
159
 
160
 
160
-  const sceneDistance = 12 // How far away the scenery is
161
-
162
   // Mountain range materials
161
   // Mountain range materials
163
   const mountainMaterial = new THREE.MeshToonMaterial({
162
   const mountainMaterial = new THREE.MeshToonMaterial({
164
     color: 0x6b8e7a, // Muted green-grey
163
     color: 0x6b8e7a, // Muted green-grey
@@ -173,56 +172,48 @@ export function createPond(scene, gradientMap) {
173
     gradientMap: gradientMap
172
     gradientMap: gradientMap
174
   })
173
   })
175
 
174
 
176
-  // Create mountain range (back-left)
175
+  // Create mountain range (back-left corner)
177
   const mountains = new THREE.Group()
176
   const mountains = new THREE.Group()
178
 
177
 
179
   // Large back mountain
178
   // Large back mountain
180
-  const bigMountainGeom = new THREE.ConeGeometry(3, 5, 6)
179
+  const bigMountainGeom = new THREE.ConeGeometry(0.8, 1.4, 6)
181
   const bigMountain = new THREE.Mesh(bigMountainGeom, mountainMaterial)
180
   const bigMountain = new THREE.Mesh(bigMountainGeom, mountainMaterial)
182
-  bigMountain.position.set(-sceneDistance, 2, -sceneDistance * 0.8)
181
+  bigMountain.position.set(-5.5, 0.7, -5)
183
-  bigMountain.rotation.y = 0.3
184
   mountains.add(bigMountain)
182
   mountains.add(bigMountain)
185
 
183
 
186
   // Snow cap for big mountain
184
   // Snow cap for big mountain
187
-  const snowCapGeom = new THREE.ConeGeometry(1.2, 1.5, 6)
185
+  const snowCapGeom = new THREE.ConeGeometry(0.35, 0.45, 6)
188
   const snowCap = new THREE.Mesh(snowCapGeom, mountainSnowMaterial)
186
   const snowCap = new THREE.Mesh(snowCapGeom, mountainSnowMaterial)
189
-  snowCap.position.set(-sceneDistance, 4.2, -sceneDistance * 0.8)
187
+  snowCap.position.set(-5.5, 1.35, -5)
190
-  snowCap.rotation.y = 0.3
191
   mountains.add(snowCap)
188
   mountains.add(snowCap)
192
 
189
 
193
   // Medium mountain
190
   // Medium mountain
194
-  const medMountainGeom = new THREE.ConeGeometry(2.2, 3.5, 5)
191
+  const medMountainGeom = new THREE.ConeGeometry(0.6, 1.0, 5)
195
   const medMountain = new THREE.Mesh(medMountainGeom, mountainDarkMaterial)
192
   const medMountain = new THREE.Mesh(medMountainGeom, mountainDarkMaterial)
196
-  medMountain.position.set(-sceneDistance * 0.7, 1.5, -sceneDistance)
193
+  medMountain.position.set(-4.5, 0.5, -5.8)
197
-  medMountain.rotation.y = -0.2
198
   mountains.add(medMountain)
194
   mountains.add(medMountain)
199
 
195
 
200
   // Small mountain
196
   // Small mountain
201
-  const smallMountainGeom = new THREE.ConeGeometry(1.8, 2.8, 5)
197
+  const smallMountainGeom = new THREE.ConeGeometry(0.5, 0.8, 5)
202
   const smallMountain = new THREE.Mesh(smallMountainGeom, mountainMaterial)
198
   const smallMountain = new THREE.Mesh(smallMountainGeom, mountainMaterial)
203
-  smallMountain.position.set(-sceneDistance * 1.1, 1.2, -sceneDistance * 0.5)
199
+  smallMountain.position.set(-6.2, 0.4, -4.2)
204
   mountains.add(smallMountain)
200
   mountains.add(smallMountain)
205
 
201
 
206
-  // Another range on the right side (further back)
202
+  // Another tiny peak
207
-  const farMountainGeom = new THREE.ConeGeometry(2.5, 4, 5)
203
+  const tinyMountainGeom = new THREE.ConeGeometry(0.4, 0.6, 5)
208
-  const farMountain = new THREE.Mesh(farMountainGeom, mountainDarkMaterial)
204
+  const tinyMountain = new THREE.Mesh(tinyMountainGeom, mountainDarkMaterial)
209
-  farMountain.position.set(sceneDistance * 0.5, 1.8, -sceneDistance * 1.2)
205
+  tinyMountain.position.set(-5, 0.3, -4)
210
-  mountains.add(farMountain)
206
+  mountains.add(tinyMountain)
211
-
212
-  const farSnowGeom = new THREE.ConeGeometry(0.9, 1.2, 5)
213
-  const farSnow = new THREE.Mesh(farSnowGeom, mountainSnowMaterial)
214
-  farSnow.position.set(sceneDistance * 0.5, 3.6, -sceneDistance * 1.2)
215
-  mountains.add(farSnow)
216
 
207
 
217
   group.add(mountains)
208
   group.add(mountains)
218
 
209
 
219
   // ============================================
210
   // ============================================
220
-  // VILLAGE
211
+  // VILLAGE - tiny game-board scale!
221
   // ============================================
212
   // ============================================
222
 
213
 
223
   const village = new THREE.Group()
214
   const village = new THREE.Group()
224
-  const villageX = sceneDistance * 0.8
215
+  const villageX = 5.5
225
-  const villageZ = -sceneDistance * 0.4
216
+  const villageZ = -3
226
 
217
 
227
   // House materials
218
   // House materials
228
   const houseMaterial = new THREE.MeshToonMaterial({
219
   const houseMaterial = new THREE.MeshToonMaterial({
@@ -242,27 +233,27 @@ export function createPond(scene, gradientMap) {
242
     gradientMap: gradientMap
233
     gradientMap: gradientMap
243
   })
234
   })
244
 
235
 
245
-  // Helper to create a simple house
236
+  // Helper to create a tiny house
246
   function createHouse(x, z, scale, roofMat) {
237
   function createHouse(x, z, scale, roofMat) {
247
     const houseGroup = new THREE.Group()
238
     const houseGroup = new THREE.Group()
248
 
239
 
249
     // House body
240
     // House body
250
-    const bodyGeom = new THREE.BoxGeometry(0.8, 0.6, 0.6)
241
+    const bodyGeom = new THREE.BoxGeometry(0.3, 0.25, 0.25)
251
     const body = new THREE.Mesh(bodyGeom, houseMaterial)
242
     const body = new THREE.Mesh(bodyGeom, houseMaterial)
252
-    body.position.y = 0.3
243
+    body.position.y = 0.125
253
     houseGroup.add(body)
244
     houseGroup.add(body)
254
 
245
 
255
     // Roof
246
     // Roof
256
-    const roofGeom = new THREE.ConeGeometry(0.55, 0.5, 4)
247
+    const roofGeom = new THREE.ConeGeometry(0.22, 0.2, 4)
257
     const roof = new THREE.Mesh(roofGeom, roofMat)
248
     const roof = new THREE.Mesh(roofGeom, roofMat)
258
-    roof.position.y = 0.75
249
+    roof.position.y = 0.32
259
     roof.rotation.y = Math.PI / 4
250
     roof.rotation.y = Math.PI / 4
260
     houseGroup.add(roof)
251
     houseGroup.add(roof)
261
 
252
 
262
-    // Window
253
+    // Window (tiny dot)
263
-    const windowGeom = new THREE.PlaneGeometry(0.15, 0.15)
254
+    const windowGeom = new THREE.PlaneGeometry(0.06, 0.06)
264
     const windowMesh = new THREE.Mesh(windowGeom, windowMaterial)
255
     const windowMesh = new THREE.Mesh(windowGeom, windowMaterial)
265
-    windowMesh.position.set(0.401, 0.35, 0)
256
+    windowMesh.position.set(0.151, 0.14, 0)
266
     houseGroup.add(windowMesh)
257
     houseGroup.add(windowMesh)
267
 
258
 
268
     houseGroup.position.set(x, 0, z)
259
     houseGroup.position.set(x, 0, z)
@@ -272,65 +263,68 @@ export function createPond(scene, gradientMap) {
272
     return houseGroup
263
     return houseGroup
273
   }
264
   }
274
 
265
 
275
-  // Create village houses
266
+  // Create village houses - clustered together
276
-  const house1 = createHouse(villageX, villageZ, 1.2, roofMaterial)
267
+  const house1 = createHouse(villageX, villageZ, 1.0, roofMaterial)
277
   village.add(house1)
268
   village.add(house1)
278
 
269
 
279
-  const house2 = createHouse(villageX + 1.5, villageZ + 0.8, 0.9, roofRedMaterial)
270
+  const house2 = createHouse(villageX + 0.5, villageZ + 0.3, 0.8, roofRedMaterial)
280
   village.add(house2)
271
   village.add(house2)
281
 
272
 
282
-  const house3 = createHouse(villageX + 0.5, villageZ + 1.5, 1.0, roofMaterial)
273
+  const house3 = createHouse(villageX + 0.2, villageZ + 0.6, 0.9, roofMaterial)
283
   village.add(house3)
274
   village.add(house3)
284
 
275
 
285
-  const house4 = createHouse(villageX - 0.8, villageZ + 0.6, 0.8, roofRedMaterial)
276
+  const house4 = createHouse(villageX - 0.35, villageZ + 0.25, 0.7, roofRedMaterial)
286
   village.add(house4)
277
   village.add(house4)
287
 
278
 
288
   // Chimney on main house
279
   // Chimney on main house
289
-  const chimneyGeom = new THREE.BoxGeometry(0.15, 0.4, 0.15)
280
+  const chimneyGeom = new THREE.BoxGeometry(0.06, 0.15, 0.06)
290
   const chimney = new THREE.Mesh(chimneyGeom, new THREE.MeshToonMaterial({
281
   const chimney = new THREE.Mesh(chimneyGeom, new THREE.MeshToonMaterial({
291
     color: 0x8b7355,
282
     color: 0x8b7355,
292
     gradientMap: gradientMap
283
     gradientMap: gradientMap
293
   }))
284
   }))
294
-  chimney.position.set(villageX + 0.2, 1.1, villageZ + 0.1)
285
+  chimney.position.set(villageX + 0.08, 0.45, villageZ + 0.04)
295
   village.add(chimney)
286
   village.add(chimney)
296
 
287
 
297
-  // Smoke particles
288
+  // Smoke particles (tiny puffs)
298
   const smokeParticles = []
289
   const smokeParticles = []
299
   const smokeMaterial = new THREE.MeshBasicMaterial({
290
   const smokeMaterial = new THREE.MeshBasicMaterial({
300
-    color: 0xcccccc,
291
+    color: 0xdddddd,
301
     transparent: true,
292
     transparent: true,
302
-    opacity: 0.6
293
+    opacity: 0.5
303
   })
294
   })
304
 
295
 
305
   function createSmokeParticle() {
296
   function createSmokeParticle() {
306
-    const size = 0.1 + Math.random() * 0.1
297
+    const size = 0.03 + Math.random() * 0.03
307
-    const smokeGeom = new THREE.SphereGeometry(size, 6, 4)
298
+    const smokeGeom = new THREE.SphereGeometry(size, 5, 4)
308
     const smoke = new THREE.Mesh(smokeGeom, smokeMaterial.clone())
299
     const smoke = new THREE.Mesh(smokeGeom, smokeMaterial.clone())
309
     smoke.position.set(
300
     smoke.position.set(
310
-      villageX + 0.2 + (Math.random() - 0.5) * 0.1,
301
+      villageX + 0.08 + (Math.random() - 0.5) * 0.03,
311
-      1.3,
302
+      0.52,
312
-      villageZ + 0.1 + (Math.random() - 0.5) * 0.1
303
+      villageZ + 0.04 + (Math.random() - 0.5) * 0.03
313
     )
304
     )
314
     village.add(smoke)
305
     village.add(smoke)
315
     smokeParticles.push({
306
     smokeParticles.push({
316
       mesh: smoke,
307
       mesh: smoke,
317
       age: 0,
308
       age: 0,
318
-      maxAge: 3 + Math.random() * 2,
309
+      maxAge: 2.5 + Math.random() * 1.5,
319
-      driftX: (Math.random() - 0.5) * 0.3,
310
+      driftX: (Math.random() - 0.5) * 0.08,
320
-      driftZ: (Math.random() - 0.5) * 0.3,
311
+      driftZ: (Math.random() - 0.5) * 0.08,
321
-      riseSpeed: 0.3 + Math.random() * 0.2
312
+      riseSpeed: 0.12 + Math.random() * 0.08
322
     })
313
     })
323
   }
314
   }
324
 
315
 
325
   // Initial smoke
316
   // Initial smoke
326
-  for (let i = 0; i < 5; i++) {
317
+  for (let i = 0; i < 4; i++) {
327
     createSmokeParticle()
318
     createSmokeParticle()
328
-    smokeParticles[i].age = Math.random() * 2 // Stagger initial ages
319
+    smokeParticles[i].age = Math.random() * 1.5
329
   }
320
   }
330
 
321
 
331
   group.add(village)
322
   group.add(village)
332
 
323
 
333
-  // Small trees near village
324
+  // ============================================
325
+  // TREES - scattered around the edges
326
+  // ============================================
327
+
334
   const treeMaterial = new THREE.MeshToonMaterial({
328
   const treeMaterial = new THREE.MeshToonMaterial({
335
     color: 0x2d5a3d,
329
     color: 0x2d5a3d,
336
     gradientMap: gradientMap
330
     gradientMap: gradientMap
@@ -340,32 +334,38 @@ export function createPond(scene, gradientMap) {
340
     gradientMap: gradientMap
334
     gradientMap: gradientMap
341
   })
335
   })
342
 
336
 
343
-  for (let i = 0; i < 6; i++) {
337
+  // Tree positions - scattered around the scene edges
338
+  const treePositions = [
339
+    { x: 5.2, z: -4.5, scale: 0.35 },
340
+    { x: 6.2, z: -2.5, scale: 0.4 },
341
+    { x: 4.8, z: -1.8, scale: 0.3 },
342
+    { x: -5.8, z: -3.5, scale: 0.35 },
343
+    { x: -4.8, z: -2.8, scale: 0.28 },
344
+    { x: -6, z: 2, scale: 0.32 },
345
+    { x: 5.5, z: 3, scale: 0.38 },
346
+    { x: -4, z: 4.5, scale: 0.3 },
347
+  ]
348
+
349
+  for (const pos of treePositions) {
344
     const treeGroup = new THREE.Group()
350
     const treeGroup = new THREE.Group()
345
 
351
 
346
     // Trunk
352
     // Trunk
347
-    const trunkGeom = new THREE.CylinderGeometry(0.08, 0.12, 0.5, 6)
353
+    const trunkGeom = new THREE.CylinderGeometry(0.04, 0.06, 0.25, 5)
348
     const trunk = new THREE.Mesh(trunkGeom, trunkMaterial)
354
     const trunk = new THREE.Mesh(trunkGeom, trunkMaterial)
349
-    trunk.position.y = 0.25
355
+    trunk.position.y = 0.125
350
     treeGroup.add(trunk)
356
     treeGroup.add(trunk)
351
 
357
 
352
     // Foliage (stacked cones)
358
     // Foliage (stacked cones)
353
-    const foliage1 = new THREE.Mesh(new THREE.ConeGeometry(0.4, 0.6, 6), treeMaterial)
359
+    const foliage1 = new THREE.Mesh(new THREE.ConeGeometry(0.2, 0.3, 5), treeMaterial)
354
-    foliage1.position.y = 0.7
360
+    foliage1.position.y = 0.35
355
     treeGroup.add(foliage1)
361
     treeGroup.add(foliage1)
356
 
362
 
357
-    const foliage2 = new THREE.Mesh(new THREE.ConeGeometry(0.3, 0.5, 6), treeMaterial)
363
+    const foliage2 = new THREE.Mesh(new THREE.ConeGeometry(0.15, 0.25, 5), treeMaterial)
358
-    foliage2.position.y = 1.1
364
+    foliage2.position.y = 0.55
359
     treeGroup.add(foliage2)
365
     treeGroup.add(foliage2)
360
 
366
 
361
-    const angle = (i / 6) * Math.PI * 0.8 - 0.4
367
+    treeGroup.position.set(pos.x, 0, pos.z)
362
-    const dist = sceneDistance * 0.6 + Math.random() * 2
368
+    treeGroup.scale.setScalar(pos.scale)
363
-    treeGroup.position.set(
364
-      Math.cos(angle) * dist + villageX * 0.3,
365
-      0,
366
-      Math.sin(angle) * dist + villageZ * 0.3
367
-    )
368
-    treeGroup.scale.setScalar(0.6 + Math.random() * 0.4)
369
 
369
 
370
     group.add(treeGroup)
370
     group.add(treeGroup)
371
   }
371
   }