3D-View: Engine (render3d/wgpu) als Standard-Renderer, three.js nur Fallback

WASM_ENGINE_ACTIVE nimmt die Engine, sofern nicht explizit WebGL2 gewählt ist
(?engine=webgl2 bzw. localStorage cad.rendererMode==="webgl2") oder WebGPU
fehlt. three.js bleibt der stille Fallback. Der Engine-3D-Viewport ist vorerst
nur Ansehen (Orbit/Zoom); Auswahl/Griffe/Zeichnen folgen.
This commit is contained in:
2026-07-03 19:47:03 +02:00
parent f2d36632cb
commit 47b9fa5aa7
+7 -7
View File
@@ -87,19 +87,19 @@ export interface ViewportContextInfo {
} }
/** /**
* Engine-Umschalter (Gegenstück zu PlanView `wantWasm` / App `rendererMode`): * Engine-Umschalter für die 3D-Sicht. Die Engine (render3d/wgpu) ist der
* `?engine=wasm` in der URL gewinnt; ohne Param zählt die in der Statusleiste * STANDARD-3D-Renderer; three.js ist nur noch Fallback — aktiv, wenn WebGPU
* persistierte Wahl (localStorage `cad.rendererMode`, siehe App.tsx). Zusätzlich * fehlt oder explizit WebGL2 gewählt ist (`?engine=webgl2` bzw. Statusleiste →
* muss WebGPU vorhanden sein — fehlt es trotz Flag, bleibt die three.js-Sicht * localStorage `cad.rendererMode === "webgl2"`). `?engine=wasm` erzwingt weiter
* (stiller Fallback + Warnung, wie in PlanView). Einmal je Seitenladung * die Engine. Einmal je Seitenladung ausgewertet: ein Wechsel läuft über einen
* ausgewertet: ein Wechsel läuft ohnehin über einen Reload (setRendererMode). * Reload (setRendererMode).
*/ */
const WASM_ENGINE_ACTIVE: boolean = (() => { const WASM_ENGINE_ACTIVE: boolean = (() => {
if (typeof window === "undefined" || typeof navigator === "undefined") return false; if (typeof window === "undefined" || typeof navigator === "undefined") return false;
const fromUrl = new URLSearchParams(window.location.search).get("engine"); const fromUrl = new URLSearchParams(window.location.search).get("engine");
const wanted = fromUrl const wanted = fromUrl
? fromUrl === "wasm" ? fromUrl === "wasm"
: window.localStorage.getItem("cad.rendererMode") === "wasm"; : window.localStorage.getItem("cad.rendererMode") !== "webgl2";
if (!wanted) return false; if (!wanted) return false;
if (!("gpu" in navigator)) { if (!("gpu" in navigator)) {
console.warn("engine=wasm angefragt, aber navigator.gpu fehlt → three.js-Fallback (3D)"); console.warn("engine=wasm angefragt, aber navigator.gpu fehlt → three.js-Fallback (3D)");