Conclusion
Sur le plan technique
C'est sans doute sur ce point que ce projet a été le plus enrichissant pour nous. D'une part nous avons pris connaissance de certains algorithmes d'optimisation qui nous étaient jusque là inconnues. D'autre part, même si nous connaissions certains des concepts utilisés sur un plan théorique, l'implémentation concrètes des algorithmes nous a permis de voir en détails les difficultés de la réalisation. On retiendra essentiellement les points suivants :
- la réalisation concrète du Ray Tracing et du Ray Surfing
- les différentes techniques d'optimisation et une notion concrète de leur valeur ajoutée en rapidité
- l'utilisation des couleurs codées sur 8 bits
- la résolution des bugs (les problèmes les plus simple ne sont pas toujours les plus rapides à identifier !)
- l'utilisation de certaines classes spécifiques de Java : PixelGrabber, Image, BufferedImage
Sur le plan organisationnel
Nous nous sommes rendus compte, en travaillant à deux sur ce projet, qu'il était très difficile de diviser le travail touchant à un seul et même algorithme. L'algorithme nous est apparu comme étant l'unité minimale de séparation des tâches en informatique...
Sur le plan de
la restitution
Il est important de prendre conscience de l'importance de la restitution des connaissances techniques utilisées sur ce type de projets. Un code explicitement commenté et des algorithmes clairement décomposés permettent d'une part de ne pas se perdre dans son propre travail, mais surtout de rendre lisible le programme par une personne qui n'en est l'auteur. La lecture du programme par quelqu'un qui n'en est pas l'auteur peut rendre la résolution des bugs plus facile : quand l'auteur est "plongé dans son code" depuis plusieurs heures, un oeil extérieur repère plus facilement les erreurs si le code est clair.Bilan des deux projets réalisésDans la même optique, mais à plus grande échelle dans le temps, un rapport clair et explicite peut permettre de reprendre le projet ultérieurement. D'où l'importance du soin apporté à la rédaction du rapport. Les aspects techniques doivent y être exposés de manière quasi "pédagogique".
Enfin on saisit le réel avantage de rédiger un rapport hypertexte. L'utilisation de la documentation de Sun sur le langage Java nous montre le confort et la rapidité que cela représente.
On notera que sur les deux binômes travaillant sur le projet de Ray Tracing, deux optiques différentes et complémentaires ont été choisies :On peut dire que notre projet est plutôt tourné vers une approche "simulateur de vol" alors que celui d'Emmanuel et David s'oriente plutôt vers une "vision à échelle humaine".
- Emmanuel Labbe et David Lemoing ont optimisé le rendu de l'image : cette voie permet une bonne visibilité de notre paysage vu de très près (à basse altitude par exemple).
- De notre coté nous avons opté pour un travail sur les effets additionnels augmentant la qualité vu de loin.
La satisfaction du
résultat !
Enfin et pour finir, on notera que travailler sur des images apporte une satisfaction particulière pour le programmeur à la vue du résultat de son travail. On parvient assez rapidement à quelque chose de "pas trop vilain"...