J'ai récemment adopté le développement piloté par les tests (TDD) et cela a eu de merveilleux impacts sur ma sortie de développement et la résilience de ma base de code. Je voudrais étendre cette approche à certains des travaux de rendu que je fais dans OpenGL, mais je n'ai pas pu trouver de bonnes approches à ce sujet.
Je vais commencer par un exemple concret afin que nous sachions quels types de choses je veux tester; disons que je veux créer un cube unitaire qui tourne autour d'un axe et que je veux m'assurer que, pour un certain nombre d'images, chaque image est rendue correctement.
Comment puis-je créer un scénario de test automatisé pour cela? De préférence, je serais même capable d'écrire un scénario de test avant d'écrire du code pour rendre le cube (selon les pratiques TDD habituelles). Entre autres choses, je voudrais m'assurer que la taille, l'emplacement et l'orientation du cube sont correct dans chaque image rendue. Je peux même vouloir m'assurer que les équations d'éclairage dans mes shaders sont correctes dans chaque image.
La seule approche à distance utile à ce sujet que j'ai rencontrée consiste à comparer la sortie rendue à une sortie de référence, ce qui empêche généralement la pratique TDD et est très encombrant.
Je pourrais continuer sur d'autres exigences souhaitées, mais je crains que celles que j'ai déjà énumérées soient hors de portée.