Ich versuche gerade, eine Amateur-Game-Engine zu erstellen, und stoße häufig auf sehr grundlegende Fehler (z. B. ändere ich den Code der Knotenhierarchie und plötzlich wird nichts mehr angezeigt). Einige der Methoden, die ich verwenden werde, umfassen:
Verwenden Sie den Debugger meiner IDE und viele
printf
Aufrufe, um zu sehen, was sich im Speicher befindet.Führen Sie viele Tests mit unterschiedlichen Parametern durch und platzieren Sie die Kamera an verschiedenen Positionen, um ein besseres Gefühl dafür zu bekommen, was der Code tut.
Zwingen Sie sich einfach brutal durch, indem Sie jede Codezeile erneut lesen, bis ich die finde, die sich schlecht benimmt.
Diese Methoden erscheinen mir alle träge und ineffizient. Das Problem ist, dass das 3D-Rendering viele unintuitive Vorgänge umfasst, bei denen außer dem endgültigen "Produkt" nicht viel zu visualisieren ist. Wenn ich auf einen Fehler stoße (insbesondere auf Fehler, bei denen "nichts angezeigt wird"), habe ich oft das Gefühl, blind herumzufummeln.
Damit.
Angenommen, Sie arbeiten als Entwickler an Unity, Godot oder einer anderen 3D-Engine und haben nur einige Schritte in Ihrer Rendering-Pipeline geändert. Aus irgendeinem Grund zeigt der Wireframe-Renderer jetzt inkohärente Ergebnisse an, wenn die Entitäts-Stapelverarbeitung aktiviert ist. Die "Drähte" kreuzen sich auf dem gesamten Bildschirm, anstatt die Kanten der Dreiecke der gestapelten Entität darzustellen.
Wie können Sie diesen Fehler finden und beheben? Haben Sie einen bestimmten Workflow? Verwenden Sie eine Art GPU-Analysetool? Oder fummeln Sie einfach blind herum?
Mit anderen Worten, welche Methoden, Tools und Best Practices können Engine-Entwickler (nicht Engine-Benutzer) verwenden, um die Daten und das Verhalten ihres 3D-Grafikcodes (nicht nur dessen Leistung) zu analysieren , um Fehler und Bugs effizient zu beheben?