v0.4.3: lucht op de grond (grounded skybox) met gras en schaduw; webserver verplicht

- core/skybox.js: panorama op de grond geprojecteerd (port GroundedSkybox),
  grastextuur in cirkel rond het object met overvloeiing, zon met schaduw,
  camera niet onder de grond
- woning: maaiveld als instelling (standaard 350 mm onder bovenkant vloer)
- assets opgeschoond (alleen grass.jpg + skybox.webp), skybox-data.js weg
- start.sh + melding bij file://

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Machiel
2026-09-30 12:07:35 +02:00
co-authored by Claude Opus 5.5
parent 3a4b9608c0
commit f8da490640
12 changed files with 175 additions and 80 deletions
+4 -3
View File
@@ -1242,11 +1242,11 @@ function mountWallEditor(container, callbacks) {
isolatieVisible = v.isolatie;
update3DScene();
});
// Lucht-achtergrond (core/skybox.js).
// Lucht en gras (core/skybox.js); de wand staat met zijn onderkant op het gras.
let skyOn = Skybox.isOn();
const applySky = () => { grid.visible = !skyOn; Skybox.apply(scene, skyOn, 0x1a1a1a, () => skyOn); };
const skyEnv = Skybox.createEnvironment(scene);
const applySky = () => Skybox.apply(skyOn, { env: skyEnv, grid, controls, sun: dirLight, shadowRoot: wallGroup3D });
Skybox.createToggle(document.getElementById('wall-toolbar-3d'), (on) => { skyOn = on; applySky(); });
applySky();
// 3D-opbouw + volume-boekhouding komen uit WallModel.build3D (gedeeld
// met de unit-editor).
@@ -1260,6 +1260,7 @@ function mountWallEditor(container, callbacks) {
wallGroup3D = result.group;
lastWallStats = result.stats;
scene.add(wallGroup3D);
applySky(); // schaduw van de nieuwe wand
updateSpecificaties();
}