b9258a68fd58eb7798bdc0032723b1db87813433
Cel-Ramp und ein Sobel, der auch Innenkanten findet, brauchen beide Normalen — die gab es in der Pipeline bisher nirgends. Der Strang geht quer durch alle Schichten, deshalb als eigener Schritt, bevor ein Effekt darauf zugreift. Loader: NORMAL wird gelesen und mit der Kofaktormatrix des 3x3-Teils transformiert, nicht mit der Welt-Matrix. Das ist die inverse Transponierte bis auf den Faktor det, den das Normieren frisst — nur so bleibt eine Normale bei ungleichmäßiger Skalierung senkrecht auf ihrer Fläche, und bei Spiegelungen dreht sie korrekt mit. glTF erlaubt Meshes ohne NORMAL; die rechnet fill_missing_normals aus den angrenzenden Flächen (Nullvektor als Sentinel). Beide Szenen-Modelle bringen eigene Normalen mit, der Fallback ist reine Absicherung. Szenen-Pass schreibt jetzt zwei Ziele: Albedo und n*0.5+0.5. Das Alpha des Normal-Buffers ist für eine Objekt-ID reserviert und noch leer. Die Depth-Textur bekommt TEXTURE_BINDING, und der Post-Vertrag wächst um group 1 (Normale + Tiefe), die jeder Effekt ignorieren darf — dither tut das. Statt eines cel.wgsl-Durchreichers gibt es normals.wgsl, per Default aus: `post normals on` zeigt oben die Normalen, unten die linearisierte Tiefe. Ein Effekt, der nichts tut, wäre von einem kaputten nicht zu unterscheiden; dieser hier trennt später "Loader kaputt" von "Effekt kaputt". Das Standard-Bild bleibt unverändert — die Normalen werden geschrieben, aber von keinem aktiven Effekt gelesen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Weirdcore Dating Simulator
Anwendung ausführen
Das Projekt nutzt Rust-Edition 2024 und braucht daher eine aktuelle
Toolchain (Rust ≥ 1.85). Das cargo aus den Distributions-Paketquellen
(apt) ist dafür in der Regel zu alt — stattdessen Rust über
rustup installieren:
- Rust installieren (falls noch nicht vorhanden):
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh(danach neue Shell öffnen odersource "$HOME/.cargo/env") - Repository klonen:
git clone https://git.bnd.wtf/irrlicht/wds.git - In den Ordner wechseln:
cd wds - Anwendung bauen und ausführen:
cargo run
Alternativ ohne Fenster/GPU in der Konsole: cargo run -- --cli
Languages
Rust
78.1%
Ink
16.3%
WGSL
4%
Shell
1.6%