Engine-3D: Kamera-Presets + Weiss-Modus im render3d-Viewport
Der Engine-3D-Viewport (render3d/wgpu) war reines Ansehen (Orbit/Zoom). Jetzt: - Kamera-Presets als Overlay: Top/Unten/Vorne/Hinten/Links/Rechts/Iso. Richtungen exakt wie der three.js-Pfad (applyView3d); framen die aktuelle Modell-Bounding-Box (fitTargetDist) und springen auf den Preset-Winkel, danach Orbit/Pan/Zoom weiter frei. Rein JS. - Render-Modus Schattiert/Weiss: mode-Uniform in Globals (WGSL/Rust), Weiss = beleuchtetes Clay-Grau; wasm-Binding set_render_mode_white, durchgereicht via useWasm3dRenderer. - Overlay-CSS self-contained (wasm3dOverlay.css), Theme-aware. three.js unangetastet. Auswahl/Grips/Zeichnen + Wireframe/HLR bewusst noch offen (naechste Scheibe).
This commit is contained in:
@@ -37,6 +37,7 @@ export interface Camera3d {
|
||||
/** Minimal-Typ des WASM-Exports (das echte .d.ts entsteht erst mit `build:engine3d`). */
|
||||
interface WebModelRendererLike {
|
||||
set_model(json: string): void;
|
||||
set_render_mode_white(white: boolean): void;
|
||||
set_camera(
|
||||
eyeX: number,
|
||||
eyeY: number,
|
||||
@@ -128,6 +129,21 @@ export function useWasm3dRenderer(
|
||||
}
|
||||
}, []);
|
||||
|
||||
/**
|
||||
* Darstellungsart umschalten: `true` = weisses Clay-Material (beleuchtet,
|
||||
* ohne Bauteil-Farben), `false` = normale Material-/Vertexfarbe (shaded,
|
||||
* Default). Wirkt erst beim nächsten `render`.
|
||||
*/
|
||||
const setWhiteMode = useCallback((white: boolean) => {
|
||||
const r = rendererRef.current;
|
||||
if (!r) return;
|
||||
try {
|
||||
r.set_render_mode_white(white);
|
||||
} catch (e) {
|
||||
console.warn("render3d set_render_mode_white fehlgeschlagen:", e);
|
||||
}
|
||||
}, []);
|
||||
|
||||
/** Einen Frame mit der gegebenen Kamera zeichnen (Canvas-Größe + DPR abgleichen). */
|
||||
const render = useCallback(
|
||||
(cam: Camera3d) => {
|
||||
@@ -166,5 +182,5 @@ export function useWasm3dRenderer(
|
||||
[canvasRef],
|
||||
);
|
||||
|
||||
return { render, updateModel, ready, failed };
|
||||
return { render, updateModel, setWhiteMode, ready, failed };
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user