Nordstern: Geo-Kontext-Meshes (Terrain/Import) rendern

Bisher zeigte nur three.js importierte Gebaeude/DXF-Meshes und das
Terrain-TIN (Project.context). Neuer MeshInput-Typ + Kontext-Mesh-Pfad
in render3d (Flat-Normalen, doppelseitig gegen unbekanntes Winding),
projectToModel3d speist project.context jetzt in beide Renderer
(nativ + WASM) ein. Nebenbei: fehlendes layers-Feld in demo_walls()
behoben, das den native3d-Feature-Build zuvor schon brach.
This commit is contained in:
2026-07-04 04:38:00 +02:00
parent 368a2ffcdb
commit fd890a0d74
7 changed files with 339 additions and 19 deletions
+12 -5
View File
@@ -13,9 +13,9 @@ use bytemuck::{Pod, Zeroable};
use wgpu::util::DeviceExt;
use crate::math::{view_projection, Mat4};
use crate::mesh::{build_model_mesh, build_walls_mesh};
use crate::mesh::{build_scene_mesh, build_walls_mesh};
use crate::shaders::MESH_WGSL;
use crate::types::{Camera, Mesh, SlabInput, WallInput, FLOATS_PER_VERTEX};
use crate::types::{Camera, Mesh, MeshInput, SlabInput, WallInput, FLOATS_PER_VERTEX};
/// Tiefenformat des Z-Puffers (32 Bit Float, ueberall verfuegbar).
pub const DEPTH_FORMAT: wgpu::TextureFormat = wgpu::TextureFormat::Depth32Float;
@@ -219,9 +219,16 @@ impl Renderer {
self.upload_mesh(device, build_walls_mesh(walls));
}
/// Erzeugt das Mesh aus Waenden UND Deckenplatten und laedt die Puffer hoch.
pub fn upload_model(&mut self, device: &wgpu::Device, walls: &[WallInput], slabs: &[SlabInput]) {
self.upload_mesh(device, build_model_mesh(walls, slabs));
/// Erzeugt das Mesh aus Waenden, Deckenplatten UND rohen Kontext-Meshes
/// (Terrain/importierte Volumen, siehe `MeshInput`) und laedt die Puffer hoch.
pub fn upload_model(
&mut self,
device: &wgpu::Device,
walls: &[WallInput],
slabs: &[SlabInput],
meshes: &[MeshInput],
) {
self.upload_mesh(device, build_scene_mesh(walls, slabs, meshes));
}
/// Laedt ein fertiges Mesh in die GPU-Puffer (oder loescht es bei leer).