big readme update to better explain what this project does
This commit is contained in:
67
README.md
67
README.md
@@ -1,6 +1,65 @@
|
|||||||
## BSPViz
|
## BSPViz
|
||||||
Mein BSP Node builder und renderer für meine Seminararbeit
|
|
||||||
|
|
||||||
# Todo:
|
BSPViz ist ein kompaktes Go-Tool zum Analysieren von Doom-WAD-Dateien. Es lädt
|
||||||
- [x] Implement geom utils
|
Maps, inspiziert Geometriedaten und baut daraus BSP-Bäume samt Statistiken oder
|
||||||
- [x] Implement BSP
|
Visualisierungen. Das Projekt entstand im Rahmen einer Seminararbeit und dient
|
||||||
|
als Baukasten, um verschiedene BSP-Build-Heuristiken auszuprobieren.
|
||||||
|
|
||||||
|
### Features
|
||||||
|
- Lädt klassische Doom-WADs und listet die enthaltenen Lumps
|
||||||
|
- Extrahiert einzelne Lumps als Dateien zum Debuggen
|
||||||
|
- Führt Geometrie-Diagnosen (Segment-Splits, Bounding Boxes) durch
|
||||||
|
- Baut BSP-Bäume mit konfigurierbaren Parametern und misst resultierende Metriken
|
||||||
|
- Exportiert BSP-Strukturen als DOT, optional weiterverarbeitbar zu PNG
|
||||||
|
|
||||||
|
### Voraussetzungen
|
||||||
|
- Go >= 1.25 (siehe `go.mod`)
|
||||||
|
- Graphviz (nur nötig, wenn DOT-Dateien gerendert werden sollen)
|
||||||
|
- Eine Doom-kompatible WAD-Datei als Eingabe
|
||||||
|
|
||||||
|
#### Graphviz installieren
|
||||||
|
- **Linux (Debian/Ubuntu):** `sudo apt install graphviz`
|
||||||
|
- **macOS (Homebrew):** `brew install graphviz`
|
||||||
|
- **Windows (Chocolatey):** `choco install graphviz`
|
||||||
|
|
||||||
|
Alternativ stehen aktuelle Pakete und Installationshinweise auch auf der offiziellen Seite:
|
||||||
|
<https://graphviz.org/download/>
|
||||||
|
|
||||||
|
### Installation
|
||||||
|
```bash
|
||||||
|
git clone <dein-repo-url>
|
||||||
|
cd bspviz
|
||||||
|
go build ./...
|
||||||
|
```
|
||||||
|
|
||||||
|
Alternativ lässt sich das Tool ohne vorherigen Build direkt ausführen:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
go run ./main.go -wad MYMAP.wad -map MAP01 -info
|
||||||
|
```
|
||||||
|
|
||||||
|
### Verwendung
|
||||||
|
Wichtige Flags (vollständige Übersicht mit `-h`):
|
||||||
|
- `-wad <pfad>` (Pflicht): Pfad zur WAD-Datei.
|
||||||
|
- `-map <name>`: Map-Marker wie `MAP01`, `E1M1` oder benutzerdefinierte Namen.
|
||||||
|
- `-list`: WAD-Verzeichnis anzeigen und beenden.
|
||||||
|
- `-info`: Basisstatistiken zu Vertices und Linedefs ausgeben.
|
||||||
|
- `-extract <L1,L2>`: Angegebene Lumps (z. B. `VERTEXES,LINEDEFS`) nach `-out` speichern.
|
||||||
|
- `-geomtest`: Segment- und Split-Diagnose für die gewählte Map ausgeben.
|
||||||
|
- `-buildbsp`: BSP-Baum erzeugen; Parameter wie `-alpha`, `-beta`, `-leafmax`,
|
||||||
|
`-maxdepth`, `-cands` und `-seed` steuern das Verhalten.
|
||||||
|
- `-dot <datei.dot>`: Gebauten BSP als DOT exportieren (setzt `-buildbsp` voraus;
|
||||||
|
benötigt ein installiertes Graphviz für die weitere Verarbeitung).
|
||||||
|
|
||||||
|
Beispiel: BSP bauen und als PNG visualisieren (Graphviz vorausgesetzt):
|
||||||
|
```bash
|
||||||
|
go run ./main.go -wad MYMAP.wad -map MAP01 -buildbsp -dot tree.dot
|
||||||
|
dot -Tpng tree.dot -o tree.png
|
||||||
|
```
|
||||||
|
|
||||||
|
### Entwicklung
|
||||||
|
- Code formatieren: `gofmt -w .`
|
||||||
|
- Tests ausführen: `go test ./...`
|
||||||
|
- Temporäre Artefakte (DOT/PNG) sind über `.gitignore` bereits ausgeschlossen.
|
||||||
|
|
||||||
|
Beiträge, Erweiterungen oder neue Heuristiken sind willkommen.
|
||||||
|
|||||||
Reference in New Issue
Block a user