Niedawno obejmuję Test-Driven Development (TDD) i miało to wspaniały wpływ na mój rozwój i odporność mojej bazy kodu. Chciałbym rozszerzyć to podejście na niektóre prace renderowania, które wykonuję w OpenGL, ale nie byłem w stanie znaleźć żadnego dobrego podejścia do tego.
Zacznę od konkretnego przykładu, abyśmy wiedzieli, jakie rzeczy chcę przetestować; powiedzmy, że chcę utworzyć sześcian jednostkowy, który obraca się wokół jakiejś osi i że chcę zapewnić, że dla pewnej liczby ramek każda ramka jest renderowana poprawnie.
Jak mogę utworzyć zautomatyzowaną skrzynkę testową? Najlepiej byłoby nawet napisać przypadek testowy przed napisaniem dowolnego kodu do renderowania kostki (zgodnie ze zwykłymi praktykami TDD). Między innymi chciałbym się upewnić, że rozmiar, lokalizacja i orientacja kostki są poprawny w każdej renderowanej ramce. Może nawet chcę się upewnić, że równania oświetlenia w moich modułach cieniujących są poprawne w każdej klatce.
Jedyne zdalnie użyteczne podejście do tego, na jakie się natknąłem, polega na porównaniu renderowanych danych wyjściowych z danymi wyjściowymi, co zasadniczo wyklucza praktykę TDD i jest bardzo uciążliwe.
Mógłbym mówić o innych pożądanych wymaganiach, ale obawiam się, że te, które już wymieniłem, są poza zasięgiem.