web-dev-qa-db-fra.com

Comment vérifieriez-vous ou effectueriez-vous les tests automatisés les plus efficaces sur le code graphique pour OpenGL?

J'écris un jeu et le moteur graphique d'accompagnement sur OpenGL en C++. Je suis également un fan de bons processus de codage et des tests automatisés. Le code graphique + des tests semble assez immiscible, car la sortie est souvent visuelle uniquement, ou très fortement visuelle.

Par exemple, imaginez l'analyse du flux d'image brut rendu à l'écran d'octet-octet - vous avez besoin de données de test à comparer avec, ce qui est difficile à créer/obtenir, et souvent, les images rendues ne sont pas identiques sur un Niveau d'octet Lorsque vous courez à des moments différents - de petits changements d'algorithmes détruisent cette approche complètement.

Je pense à créer une suite visuelle de test d'unité, dans laquelle je peux essentiellement rendre des scènes de test différents, montrant des trucs comme la cartographie de l'ombre, l'animation, etc., etc. Dans le cadre de CI, ces scènes seraient alors rendues à une vidéo fichier (ou éventuellement laissez-le comme exécutable) avec différentes métriques. Cela nécessiterait toujours une inspection manuelle du fichier vidéo, mais au moins, il serait quelque peu automatisé et normalisé.

Qu'est-ce que tu penses? J'espère qu'il y a de meilleures façons?

18
Max

La bibliothèque de traitement d'image OpenCV le fait en enregistrant l'image et en comparant à une image de référence - elle a un tas de fonctions de test C++ et de macros pour manipuler Correspondance d'image, etc.

8
Martin Beckett

Même si vous ne pouvez pas comparer les images de sortie, vous pourrez au moins tester que vos rendements sont terminés de manière appropriée (pas de crash, longue attente, etc., etc.). Trouver un moyen de vérifier que les images sont meilleures, bien sûr, mais même sans cela, vous aurez gagné quelque chose des tests.

4
Michael Kohne