Недавно я занимался разработкой на основе тестов (TDD), и это оказало замечательное влияние на результаты моей разработки и устойчивость моей кодовой базы. Я хотел бы распространить этот подход на некоторые виды рендеринга, которые я выполняю в OpenGL, но я не смог найти ни одного хорошего подхода к этому.
Я начну с конкретного примера, чтобы мы знали, какие вещи я хочу проверить; Допустим, я хочу создать единичный куб, который вращается вокруг некоторой оси, и хочу, чтобы при некотором количестве кадров каждый кадр отображался правильно.
Как я могу создать автоматизированный тест для этого? Предпочтительно, я бы даже смог написать тестовый пример перед написанием любого кода для рендеринга куба (в соответствии с обычной практикой TDD). Среди многих других вещей, я бы хотел убедиться, что размер, местоположение и ориентация куба исправить в каждом отображаемом кадре. Я даже хочу убедиться, что уравнения освещения в моих шейдерах правильны в каждом кадре.
Единственный отдаленно полезный подход к этому, с которым я столкнулся, включает сравнение визуализированного вывода с эталонным выводом, что, как правило, исключает практику TDD и является очень громоздким.
Я мог бы продолжить о других желаемых требованиях, но я боюсь, что те, которые я перечислил, уже недосягаемы.