Examen de synthèse d'images et d'animation, 2002

Licence professionnelle d'informatique, images et communication

Durée 1 heure. Aucun document autorisé.

Couleur et illumination (4 points)

Considérons une sphère centrée en $(0,0,0)$ vue par un observateur placé en $(0,0,5)$. Elle est illuminée par une lumière directionnelle. Les paramètres sont les suivants:



Question 1

Dessinez la sphère, en mentionnant:




Question 2

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


Formes et textures (4 points)

On représente une surface à l'aide d'un QuadArray de la manière suivante:

float[] vertices = {0,0,0, 1,0,0, 1,1,0, 0,1,0, 1,0,0, 2,0,0, 2,1,0, 1,1,0};
float[] colors   = {1,1,1, 1,1,1, 1,1,1, 1,1,1, 0,0,0, 0,0,0, 0,0,0, 0,0,0};
QuadArray geometry = new QuadArray( nbP, QuadArray.COORDINATES 
                                                      | QuadArray.COLOR_3 );
geometry.setCoordinates( 0, vertices );
geometry.setColors( 0, colors );



Question 3

  1. dessinez l'allure de la surface avec ces couleurs
  2. écrivez le tableau des couleurs nécessaires pour obtenir un dégradé du rouge (pour les deux points de coordonnées x=0) à vert (pour les deux points de coordonnées x=2).


Nous désirons maintenant texturer cette surface. Nous modifions donc notre QuadArray:

float[] vertices = {0,0,0, 1,0,0, 1,1,0, 0,1,0, 1,0,0, 2,0,0, 2,1,0, 1,1,0};
float[] colors   = {1,1,1, 1,1,1, 1,1,1, 1,1,1, 0,0,0, 0,0,0, 0,0,0, 0,0,0};
float[] texcoord = {0,0,   1,0,   1,1,   0,1,   1,0,   2,0,   2,1,   1,1  };
QuadArray geometry = new QuadArray( nbP, QuadArray.COORDINATES 
                     | QuadArray.COLOR_3 | QuadArray.TEXTURE_COORDINATE_2 );
geometry.setCoordinates( 0, vertices );
geometry.setColors( 0, colors );
geometry.setTextureCoordinates( 0, 0, texcoord );
et nous ajoutons des noeuds de texture de manière à plaquer l'image présentée ci-dessous (les pointillés représentent les bords de l'image).
\resizebox{!}{2cm}{\includegraphics{damier}}
Dans toutes les questions suivantes, le placage de texture se fait de manière répétitive (pas de CLAMP).



Question 4

Dessinez l'allure de la surface:
  1. si le placage de texture se fait en mode REPLACE
  2. si le placage de texture se fait en mode MODULATE




Question 5

Dessinez l'allure de la surface, en mode REPLACE, pour les coordonnées de texture suivantes:
float[] texcoord = {0,0, 0.5f,0, 0.5f,1, 0,1, 0.5f,0, 2,0, 2,1, 0.5f,1};



Animation (2 points)

En Java3d, à quoi sert un Alpha ? Donnez un exemple.



Francois Faure 2004-04-21