Projet de conception
- Troisième partie -
- ÉPISODE III -
Le grand rassemblement



Objectif :


       Amener l'étudiant à développer un programme graphique interactif de complexité
       moyenne comportant :

          - le vaisseau/objet que vous avez conçu précédemment
          - un environment


Résultat attendu :

        Un programme donnant l'impression que l'observateur se déplace dans un environnement tridimensionnel.
        Le vaisseau ou l'objet conçu au travail 5 devra apparaître dans votre scène à l'endroit de votre choix.


Contraintes :
 


    1- Le vaisseau ou l'objet développé dans le travail #5 devra être présent dans votre scène.

    2- L'usager ne devra pas pouvoir utiliser la souris pour interagir avec votre programme. On devra plutôt utiliser
        les flèches du clavier (ou les lettres WASD) pour se déplacer dans votre scène. Ainsi, l'usager pourra avancer,
        reculer, tourner à gauche ou tourner à droite. La vidéo suivante montre un exemple de déplacement attendu :
           
                      Déplacement dans la scène
       
        Il est à noter que la matrice produite par l'utilisation des flèches (ou des lettres WASD) sera toujours appliquée
        au début de votre fonction "render()".

    3- Vous devrez insérer vos éléments dans un "
skybox" ( https://en.wikipedia.org/wiki/Skybox_(video_games) ) recréant un
        des trois environnements suivant : 

       
a) Environnement spatial

            Pour ce type d'environnement, vous pouvez utiliser ou vous inspirer des exemples suivants :
                       Exemple 1  => fichier ZIP contenant tous les fichiers de l'exemple 1
                       Exemple 2  => fichier ZIP contenant tous les fichiers de l'exemple 2

       
b) Environnement "terrestre"

            Pour les environnement terrestres, vous pouvez utiliser les "cubemaps" disponible sur le site suivant :
                        https://humus.name/index.php?page=Textures

       
c) Environnement "fait maison"

            Vous pouvez créer vous-même un environnement en utilisant la caméra de votre téléphone (panorama 360 degrés).
             Les informations décrites au chapitre 10 vous permettront de créer un tel environnement avec le logiciel
             Blender (gratuit).

        Remarque importante :

             Lorsqu'on se déplace dans une scène dans laquelle il y a un "skybox", on doit faire en sorte que ce dernier suive
             la position de l'observateur lorsque ce dernier se déplace. En d'autres termes, si vous appliquez une translation aux
             objets de votre scène pour donner l'impression que l'observateur avance ou recule, cette translation ne doit pas être
             appliquée au "skybox". Ceci donnera un effet de grande distance entre la position de l'observateur et les objets
             apparaissant sur les parois du "skybox".
Il est important de noter, cependant, que les transformations de
            
rotation
associées à la progression de l'observateur doivent, quant à elles, s'appliquer au "skybox".

    4- Vous devrez également insérer des objets particuliers dans votre scène. Selon le type d'environnement que
         vous avez choisi, voici les éléments additionnels qui devront faire partie de votre animation :

         
a) Pour ceux et celles qui auront choisi l'environnement spatial

              Lors d'un déplacement dans votre scène, on devra pouvoir observer la Terre et au moins une planète connue.

                Pour obtenir des textures de planète, veuillez consulter le site suivant :

                        https://planetpixelemporium.com/earth.html

               La lune devra être localisée à proximité de la Terre (note: la lune n'est pas une planète).

              
Les planètes devront tourner très lentement sur elles-mêmes et la lune devra tourner autour de la Terre.
               Veuillez ne pas faire tourner les planètes autour du soleil.

          
b) Pour ceux et celles qui auront choisi l'environnement "terrestre" ou "fait maison"

              Lors d'un déplacement dans votre scène, on devra pouvoir observer une sphère sur laquelle l'image
              d'un ballon de basketball sera appliquée. Une seconde sphère devra tourner autour de ce ballon. Sur cette
              seconde sphère, une image de ballon de "soccer" ("foot") sera appliquée.

                Pour obtenir ces deux textures, veuillez cliquez sur le lien suivant :

                        textures-ballons.zip

               Les deux ballons devront tourner très lentement sur eux-mêmes (et le ballon de "soccer" devra tourner
               autour du ballon de basketball.

    7- Lors du lancement de votre programme, un des objets complexes suivants devra être présent dans votre scène.

         
a) Pour ceux et celles qui auront choisi l'environnement spatial (un parmi les 4 suivants) :

                      Star-Wars-ARC-170.zip
                      Space-Shuttle.zip
                      Prometheus.zip
                      MKlll-Station.zip

          
b) Pour ceux et celles qui auront choisi l'environnement "terrestre" ou "fait maison" :
       
                      Iron-Man.zip

        Ces fichiers contiennent tous les éléments requis pour visualiser les objets avec un navigateur.
        Vous devrez placer les différents fichiers dans le dossier (répertoire) géré par un serveur Web.

    8- Toujours lors du lancement de votre programme, on devra pouvoir voir
un des deux éléments suivants :

               a) un cube réfléchissant l'environnement (tournant sur lui-même) à proximité de votre vaisseau ou objet.
                   Il est recommandé d'utiliser des images claires (comme, par exemple, celles du fichier ciel-nuages.zip
                   pour créer le "cubemap" de cet objet.
 
               b)
un cube translucide (tournant sur lui-même) à proximité de votre vaisseau ou votre objet.
                   Vous devrez "signer" votre animation en insérant votre nom sur l'image qui sera appliquée en texture
                    sur ce cube.


Évaluation :

Ce travail sera évalué selon les éléments suivants:

           - Présence d'une planète et de la lune
           - Rotation de la planète et de la lune
           - Présence d'un "skybox"
           - Présence d'un modèle OBJ
           - Présence d'un cube réfléchissant ou translucide
           - Interaction avec l'usager (déplacement dans la scène)


 


https://www.culut.com/free-star-wars-ships-wallpapersstar-backgrounds/