irrlichtandClaude Opus 5 b9258a68fd G-Buffer: Normalen aus glTF bis in den Post-Vertrag
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>
2026-08-28 23:31:49 +02:00
2026-08-28 23:31:49 +02:00
2026-07-11 00:14:41 +02:00
2026-07-11 00:14:41 +02:00

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 oder source "$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

S
Description
Weirdcore Dating Simulator
Readme
45 MiB
Languages
Rust 78.1%
Ink 16.3%
WGSL 4%
Shell 1.6%