Ich habe kürzlich Test-Driven Development (TDD) eingeführt und es hatte wunderbare Auswirkungen auf meine Entwicklungsleistung und die Ausfallsicherheit meiner Codebasis. Ich würde diesen Ansatz gerne auf einige der Rendering-Arbeiten ausdehnen, die ich in OpenGL mache, aber ich konnte keine guten Ansätze dafür finden.
Ich beginne mit einem konkreten Beispiel, damit wir wissen, welche Dinge ich testen möchte. Nehmen wir an, ich möchte einen Einheitswürfel erstellen, der sich um eine Achse dreht, und ich möchte sicherstellen, dass für eine bestimmte Anzahl von Bildern jedes Bild richtig gerendert wird.
Wie kann ich dazu einen automatisierten Testfall erstellen? Am liebsten würde ich sogar einen Testfall schreiben können, bevor ich Code zum Rendern des Cubes schreibe (gemäß den üblichen TDD-Verfahren). Unter anderem möchte ich sicherstellen, dass Größe, Position und Ausrichtung des Cubes korrekt sind richtig in jedem gerenderten Frame. Ich möchte vielleicht sogar sicherstellen, dass die Beleuchtungsgleichungen in meinen Shadern in jedem Frame korrekt sind.
Die einzige Möglichkeit, die mir dabei von fernem Nutzen ist, besteht darin, die gerenderte Ausgabe mit einer Referenzausgabe zu vergleichen, was die TDD-Praxis im Allgemeinen ausschließt und sehr umständlich ist.
Ich könnte über andere gewünschte Anforderungen weitermachen, aber ich fürchte, die, die ich bereits aufgeführt habe, sind nicht in Reichweite.