Projet Alpano – Introduction

1 Introduction

Le but du projet de cette année, nommé Alpano, est d'écrire un programme de dessin de panoramas alpins annotés avec le nom des sommets visibles. Ces panoramas sont dessinés en fonction de paramètres déterminés par l'utilisateur, comme la position de l'observateur, son altitude, la direction de son regard, etc.

La copie d'écran ci-dessous montre un exemple de panorama généré au moyen du corrigé. L'observateur se trouve dans le Jura et son regard est dirigé vers le sud. Le panorama a été colorié selon deux critères : la teinte (rouge, vert, etc.) est déterminée par la distance à l'observateur, tandis que la luminosité (clair/foncé) est déterminée par la pente du terrain. L'image ainsi obtenue est à la fois informative et assez similaire à la réalité pour être aisément reconnaissable.

alpano.png

Figure 1 : Les Alpes vues du Jura

Pour comparaison, la photographie ci-dessous a été prise du même point de vue. En la comparant au panorama calculé par Alpano, on constate que la ressemblance est grande.

alpes.jpg

Figure 2 : Les Alpes vues du Jura

Pour faciliter la comparaison, ces deux images peuvent également être consultées côte à côte et en taille réelle sur une page séparée.

2 Vue d'ensemble

Alpano utilise une technique appelée lancé de rayon (ray tracing en anglais) pour dessiner les panoramas. Cette technique consiste à simuler la trajectoire de rayons partant de l'observateur en direction du terrain à dessiner. Lorsqu'un rayon simulé entre en collision avec le terrain, la distance parcourue jusque-là est mémorisée, et le processus continue avec un rayon lancé dans une direction légèrement différente. Une fois qu'un grand nombre de tels rayons ont été lancés — environ un par pixel de l'image finale — les informations de distance collectées sont utilisées pour produire l'image finale.

Les informations concernant le relief terrestre proviennent d'un modèle numérique du terrain (MNT), stocké dans des fichiers qui seront mis à votre disposition. Ce MNT a été obtenu initialement lors de la mission SRTM de la NASA et a ensuite été amélioré « manuellement » par Jonathan de Ferranti, qui le met gratuitement à disposition sur son site Viewfinder panoramas. Les informations concernant les noms et positions des sommets proviennent également de son site.

3 Groupes

Le projet se fait par groupes de 2 personnes au maximum. La formation de ces groupes est libre et peut changer au cours du semestre, pour peu que les directives concernant le plagiat soient respectées. En particulier, si deux personnes ayant travaillé en commun se séparent, elles doivent se partager le code et ne peuvent chacune l'emporter en totalité de leur côté.

4 Notation

Sur les 500 points attribués durant le semestre, 300 sont consacrés au projet et répartis de la manière suivante :

Elément Points
Rendus testés 90
Rendu intermédiaire 80
Rendu final 110
Test final 20
Total 300

Un rendu testé est un rendu qui est évalué automatiquement au moyen de tests unitaires. Il y a 5 rendus testés au cours du semestre, un pour chacune des étapes 2 à 6, et 18 points sont attribués à chacun d'entre eux. Les 3 premiers points s'obtiennent simplement en rendant le projet à temps, tandis que les 15 restants sont attribués en fonction du nombre de tests passés avec succès.

Le rendu intermédiaire et le rendu final sont quant à eux évalués par des correcteurs, et les points attribués en fonction de la qualité du programme. L'efficacité, la concision et l'élégance du code sont pris en compte dans cette évaluation.

Le test final consiste en un test non automatisé (contrairement aux tests unitaires) du bon fonctionnement du projet complet.