• Aucun résultat trouvé

- IN55 Final - Printemps 2006

N/A
N/A
Protected

Academic year: 2022

Partager "- IN55 Final - Printemps 2006"

Copied!
1
0
0

Texte intégral

(1)

- IN55 Final -

Printemps 2006

Durée : 2h

Aucun document autorisé – Calculatrices interdites Rédigez chaque partie sur une feuille séparée

Partie 1

Questions de cours (1.5 + 1 = 2.5 points)

Répondez aux questions suivantes de manière claire et concise.

1. Citez les modèles d’ombrages les plus fréquemment utilisés en précisant pour chacun leur principe en quelques lignes.

2. Expliquez le principe du Backface Culling.

Problème : Sélection adoucie (3 points)

On désire mettre en place un système qui nous permette, sur une grille surfacique, de déplacer un de ces vertex et que ceux autour subissent également cette modification à un niveau dépendant de leur éloignement du vertex initial.

L’image complètement à gauche montre le déplacement d’un vertex sans la sélection adoucie. L’autre image montre le même déplacement de vertex avec la sélection adoucie. En fonction de leur éloignement au vertex sélectionné les autres vertex subissent également la modification.

Le déplacement se fera uniquement suivant l’axe Z (axe montant). L’utilisateur aura au préalable indiqué un rayon maximum de sélection au delà duquel le déplacement n’aura plus d’effet. Le calcul du déplacement de chaque point se fera par une interpolation linéaire.

1. Expliquez le principe que vous allez mettre en place.

2. Donnez l’algorithme de la fonction « déplacementAdoucie » :

Point[] déplacementAdoucie (Point ptSelect, Point[] listePoints, int rayonSelect, double translationZ) Où :

- ptSelect est le point sélectionné pour le déplacement. Il est de type Point, objet contenant les cordonnées en x, y, z du point (ptSelect.x, ptSelect.y, ptSelect.z)

- listePoints est l’ensemble des points de la grille surfacique - rayonSelect est le rayon de sélection choisi par l’utilisateur - translationZ est la valeur du déplacement suivant Z

Cette fonction retourne un liste de points correspondant à la grille surfacique après modification.

Technique : OpenGL (2 points)

Le code ci-dessous est la fonction de rendu d’un programme OpenGL. Elle est appelée en boucle indéfiniment. La scène qu’elle décrit contient quatre cubes. Pour chacun, précisez sa couleur, sa position ainsi que son mouvement.

1

(2)

void RePaint() {

// Réinitialisation du fond d'écran et du Z-Buffer glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

// Sélection de la matrice ModelView glMatrixMode(GL_MODELVIEW);

glLoadIdentity();

glColor3f(1, 0, 0);

glPushMatrix();

glTranslated(5, 0, 0);

glRotated(angleRot, 0, 1, 0);

glCallList(cubeList); // Cube 1 glPopMatrix();

glPushMatrix();

glRotated(angleRot, 1, 0, 0);

glTranslated(-5, 0, 0);

glColor3f(0, 1, 0);

glCallList(cubeList); // Cube 2 glPopMatrix();

glPushMatrix();

glTranslated(0, 5, 0);

glRotated(angleRot, 0, 1, 0);

glPopMatrix();

glCallList(cubeList); // Cube 3 glColor3f(0, 0, 1);

glTranslated(0, 5, 0);

glRotated(angleRot, 0, 1, 0);

glTranslated(0, 0, 5);

glCallList(cubeList); // Cube 4 glTranslated(0, 0, -5);

glRotated(angleRot++, 1, 0, 0);

glColor3f(1, 1, 1);

SwapBuffers(DC);

glTranslated(0, 0, 5);

}

Application : Structures de données (4 points)

1. Sur la feuille jointe dessinez le découpage en zone sur les schémas et complétez les arbres représentant les structures de données suivantes :

- BSP

2

(3)

- Quadtree

2. Parcours des structures - BSP :

On dispose d’un point de vue définit par une position P(x, y) et un vecteur directeur v (xv, yv). Donnez l’algorithme de la fonction qui retourne la liste des facettes visibles par ce point de vue en utilisant la structure du BSP.

- Quadtree :

On dispose de la position P (x, y) du click de souris de l’utilisateur. Donnez l’algorithme de la fonction qui retourne la liste des objets susceptibles de contenir le click de souris en utilisant la structure du quadtree.

Pour ces deux questions, on supposera les fonctions : Cos, Sin, Produit Vectoriel, Produit Scalaire, Déterminant et Inverse d’une matrice existantes.

Partie 2

Application de texture (1.5 points)

On dispose d’une texture de base pour réaliser un motif de carrelage sur une facette à 4 côtés, selon le modèle suivant :

Texture

initiale Texture appliquée à la surface

 Pour chacun des 4 vertices de la facette, indiquez les coordonnées de mapping (u, v).

 Présenter le principe et l’algorithme d’adressage en pseudo code permettant de déterminer la correspondance entre un point (x, y) de la facette et le texel de la texture initiale (u, v).

3

u v

x y

0 1

1

0 2

2

u v

x y

0 1

1

0 2

2

(4)

Ombre portée, application de la méthode du lancer de rayons (4 points)

Par la méthode de lancer de rayon, on simule la trajectoire d’un rayon lumineux qui intersecte les primitives de base de la scène. Cette méthode peut être utilisée pour projeter des ombres portées sur des volumes simples.

On considère une sphère de rayon 1 placée au centre de la scène (0, 0, 0).

Une facette triangulaire est définie par 3 points : P1 (1, 2, 0), P2 (1, 2, 1) et P3 (0, 2, 1).

Une source lumineuse ponctuelle est placée en (2, 4, 2) ;

A partir des rayons lumineux partant de la source et passant par P1, P2, P3, on peut déterminer ainsi la surface correspondant à l’ombre portée de la facette sur l’objet sphère.

 Déterminer les équations des droites paramétriques partant de la source et passant par P1, P2, P3 ;

 A partie de ces équations, déterminer les coordonnées des points d’intersection de ces droites avec la sphère, délimitant ainsi la zone d’ombre portée.

 Faire un croquis de la sphère et de l’ombre portée de la facette.

√2 = 1,4 1/√2 = 0,7

Y √3 = 1,7 1/√3 = 0,6

√5 = 2,2 1/√5 = 0,4

√6 = 2,4 1/√6 = 0,4

X

Z

Illumination de sphère (3 points)

Considérons une sphère centrée en (0, 0, 0), de rayon 1, et une source de lumière omnidirectionnelle placée en (0, 0, 5). Les paramètres sont les suivants :

Matériau de la sphère :

- émission : 0.0f, 0.0f, 0.0f

- réflexion ambiante : 0.0f, 0.0f, 0.0f - réflexion diffuse : 1.0f, 0.0f, 0.0f - réflexion spéculaire : 1.0f, 1.0f, 1.0f - brillance : 50

Lumière omnidirectionnelle :

- couleurs ambiantes, diffuse et spéculaire : 1.0f, 1.0f, 1.0f

 Dessiner la sphère, en mentionnant :

 La position de l’utilisateur et le point sur la sphère où le reflet spéculaire est maximum

 la couleur en ce point

 la zone où la réflexion diffuse s’exerce

 la partie non éclairée

 Que faut-il changer pour obtenir un reflet vert sur une réflexion diffuse rouge ?

 Que faut-il changer pour diminuer la zone ombragée ?

4

Références

Documents relatifs

 Hier il a plu toute la journée, je n’ai pas pu sortir pour faire les courses, et j’ai dû attendre le train sous la pluie, c’était très désagréable.  Paquita revient

 Messieurs, soyez aimables, approchez-vous avant que le directeur de l’entreprise arrive, la réunion commencera dès que vous serez assis à votre place.  Quand tu recevras

- Question n°2 (5 points) : Dans quelle mesure les Technologies de l'Information et de la Communication (TIC) contribuent-elles ou non au développement du

En B l’action de contact ponctuel entre le plot de maintient et la barrière nommée B de 0 sur 2.. Objectif : déterminer complètement les torseurs des actions mécanique A ,

Exit, voice and loyalty a ainsi pour objectif d’étudier les conditions de développement, conjoint ou non, des deux modes d’action, leur efficacité respective dans

L’objectif du calcul est de vérifier la résistance de la poutre 1. Nom prénom :

La répartition par sexe montre que : chez la femme, le taux brut d’incidence de cancers est de 162,9 pour 100 000 habitants, avec un taux standardisé de 195,4 pour 100

Le rapport 2010 du PNUD propose un nouveau calcul de l'IDH : les trois dimensions qui entrent dans le calcul de l'indice composite restent les mêmes (santé, éducation, niveau de