model::Model: Doku als Loader/Konsumenten-Vertrag, nicht Format-Abstraktion
Nach dem Rauswurf der OBJ- und Map-Loader-Pfade (glTF ist der einzige 3D-Pfad) verkaufte die model.rs-Doku eine Format-Neutralität, die es nicht mehr gibt. Der Typ bleibt — er ist die legitime Entkopplungsgrenze zwischen dem einen Produzenten (gltf) und seinen Konsumenten (collision, trigger, audio, render::props, session::load_props), die alle auf einer geparsten Struktur arbeiten statt selbst glTF zu lesen. Nur die Formulierung wird ehrlich. Reine Kommentaränderung in model.rs, gltf.rs, engine/mod.rs, render/props.rs. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0196AM4UyAJEXVtPvp5DdKr8
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
236a643d04
commit
6e84fe9b1b
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
//! glTF-Binary-Loader (.glb, Blender-Export) → neutrales [`Model`].
|
//! glTF-Binary-Loader (.glb, Blender-Export) → geparstes [`Model`].
|
||||||
//!
|
//!
|
||||||
//! Die tragenden Kanäle: **Custom Properties** (in Blender beim Export
|
//! Die tragenden Kanäle: **Custom Properties** (in Blender beim Export
|
||||||
//! „Include → Custom Properties" anhaken → landen in `node.extras`) und
|
//! „Include → Custom Properties" anhaken → landen in `node.extras`) und
|
||||||
|
|||||||
+5
-4
@@ -15,10 +15,11 @@
|
|||||||
//! rufen.
|
//! rufen.
|
||||||
//!
|
//!
|
||||||
//! `gltf`, `tga` und `wav` sind reine Decoder (Bytes → owned Daten); `gltf`
|
//! `gltf`, `tga` und `wav` sind reine Decoder (Bytes → owned Daten); `gltf`
|
||||||
//! ist DER 3D-Pfad und produziert das neutrale `model::Model`. `audio` ist
|
//! ist DER 3D-Pfad und produziert das `model::Model`, den Vertrag zwischen
|
||||||
//! die Emitter-Logik zum Frontend-Treiber render::audio, `player` die
|
//! Loader und seinen Konsumenten (collision, trigger, audio, render::props).
|
||||||
//! First-Person-Physik auf der Welt aus `collision`. Post-Effekte kennt der
|
//! `audio` ist die Emitter-Logik zum Frontend-Treiber render::audio, `player`
|
||||||
//! Kern nur als `game::Action::SetPost` — die Kette lebt in render::post.
|
//! die First-Person-Physik auf der Welt aus `collision`. Post-Effekte kennt
|
||||||
|
//! der Kern nur als `game::Action::SetPost` — die Kette lebt in render::post.
|
||||||
|
|
||||||
pub mod assets;
|
pub mod assets;
|
||||||
pub mod audio;
|
pub mod audio;
|
||||||
|
|||||||
+8
-5
@@ -1,7 +1,10 @@
|
|||||||
//! Neutrales 3D-Modell — das gemeinsame Ergebnis des Blender-Loaders
|
//! Das geparste Blender-Modell: Ergebnis des Loaders (engine::gltf) und der
|
||||||
//! (engine::gltf). Konsumenten (render::props, collision, trigger) kennen
|
//! Vertrag, auf den sich seine Konsumenten stützen — collision, trigger,
|
||||||
//! nur diese Struktur; welcher Parser sie erzeugt hat, ist ihnen egal — so
|
//! audio, render::props und session::load_props arbeiten alle auf dieser
|
||||||
//! bleibt ein Format-Wechsel ein lokaler Loader-Tausch.
|
//! einen Struktur, statt selbst glTF zu lesen. Eine Entkopplungsgrenze
|
||||||
|
//! zwischen dem einen Loader und seinen Konsumenten, keine Format-Abstraktion:
|
||||||
|
//! glTF ist der einzige 3D-Pfad (die OBJ- und Map-Loader-Pfade sind
|
||||||
|
//! Geschichte), `gltf` der einzige Produzent.
|
||||||
//!
|
//!
|
||||||
//! Was ein Objekt *ist*, steuern seine Blender-Custom-Properties (keine
|
//! Was ein Objekt *ist*, steuern seine Blender-Custom-Properties (keine
|
||||||
//! Namens-Präfixe — Namen bleiben frei für die Autorin), siehe
|
//! Namens-Präfixe — Namen bleiben frei für die Autorin), siehe
|
||||||
@@ -15,7 +18,7 @@
|
|||||||
//!
|
//!
|
||||||
//! Objektnamen sind zugleich die Interact-Keys: Blender-Suffixe
|
//! Objektnamen sind zugleich die Interact-Keys: Blender-Suffixe
|
||||||
//! (`Thing.001`) strippt `signals::signal_key` beim Dispatch, nicht hier —
|
//! (`Thing.001`) strippt `signals::signal_key` beim Dispatch, nicht hier —
|
||||||
//! die Loader bleiben frei von Signal-Wissen.
|
//! der Loader bleibt frei von Signal-Wissen.
|
||||||
|
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
//! Blender-Modell → Render-Geometrie.
|
//! Blender-Modell → Render-Geometrie.
|
||||||
//!
|
//!
|
||||||
//! Nimmt das neutrale [`Model`] aus engine::gltf und baut daraus ein
|
//! Nimmt das geparste [`Model`] aus engine::gltf und baut daraus ein
|
||||||
//! [`Mesh`] (Vertices + nach Textur gruppierte Index-Batches); mehrere
|
//! [`Mesh`] (Vertices + nach Textur gruppierte Index-Batches); mehrere
|
||||||
//! Modelle verschmelzen über `Mesh::append` zu einem Buffer.
|
//! Modelle verschmelzen über `Mesh::append` zu einem Buffer.
|
||||||
//!
|
//!
|
||||||
|
|||||||
Reference in New Issue
Block a user