Vous êtes sur la page 1sur 7

15/06/2013

Perception des objets

Synthèse d’images et programmation 3D sous OpenGL: La perception des objets dans une scène 3D dépond
de l’intensité de la couleur de la source lumineuse et
Illumination de la matière qui forme les objets. Les rayons
lumineux sont reflétés par les objets et atteignent
finalement notre œil.
M. AIT KBIR
Départ. Génie Informatique FST de Tanger

1 M. A IT KBIR 2

Sources de lumière Loi de la réflexion
§ Source ponctuelle: supposée placée en un point précis et rayonnant La loi de la réflexion montre que quand un rayon lumineux
la lumière radialement. est reflété par une surface, l' angle d' incidence est égal à
§ Source directionnelle: supposée placé à l' infini et éclairant la scène l' angle de réflexion.
avec des rayons parallèles à une direction donnée.
§ Projecteur ou spot: caractérisé par sa position, sa direction
(éclairage dans un cône) et sa fonction d‘éclairage ( Atténuation de
l' intensité en fonction de l' angle).

M. A IT KBIR 3 M. A IT KBIR 4

1

selon la loi Une certaine quantité de lumière entre toujours dans la pièce. elle se comporte de la même façon avec toutes les surfaces et elle est reflétée dans toutes les objets ont une tendance de sélectivement absorber. ou directions. surface avec une orientation différente. Les rayons inc idents se répondent dans les traces faibles d' objets avec les nuances uniformes (plates) de toute la scène après réflexion. mais l'intensité de la réflexion dans quelque temps. A IT KBIR 5 M. diffuse. Re flectance Diffuse : les surfaces diffuses dispersent la lumière La lumière qui rebondie autour de nous à tendance à se délabrer également dans toutes les directions. Ba) alors la couleur de la lumière reflétée en raison de la réflexion ambiante sera: (Rr. Émission : Le composant d'émission d'une surface est utilisé pour simuler un objet lumineux qui semble émettre de la lumière. Cette sorte d' illumination nous permet de voir directions différentes. si la lumière incidente a une couleur ambiante Certains matériaux rugueux: les vêtements ou une chaussée de (Ri. A IT KBIR 8 2 . Mathématiquement. transmettre de la lumière de certaines couleurs. Les noir. M. en fonction de la distance. A IT KBIR 6 Refléctance ambiante Réflexion diffuse La réflc tance ambiante est en réalité une approximation au fait La rugosité de la matière fait que chaque rayon rencontre la qu' il n'y a jamais une pièce parfaitement sombre dans ce monde. n'importe quelle surface brillante. Gr. M. comme une ampoule. où on peut voir apparaitre un point gris ou blanc sur la surface. ce qui est causé varie en fonction de l'angle d'incidence. Gi*Ga. Ga. aboutissant à des surfaces avec une apparence uniforme. La lumière ambiante n'a aucune direction. 15/06/2013 La couleur et la lumière Modèle de reflectance de Phong Quand la lumière frappe un objet. Bi*Ba). Br) = (Ri*Ra. On parle ici de la réflexion couleurs superficielles. Bi) et l' objet qu’il frappe est une matière avec une bêton … réflectance ambiante (Ra. La couleur de la lumière reflétée qui attient finalement l' oeil est couleur que la surface est sensée avoir. non seulement une partie est Re flectance Ambiante : permet à la scène de ne pas être complètement reflétée. par l' absorption atmosphérique. Gi. On parle ici du phénomène d’atténuation. mais elle peut aussi être absorbée ou transmise. refléter. C' est pourquoi des objets lointains apparaissent un peu troubles par rapport aux objets qui sont plus Re flectance Spéculaire : Une réflexion spéculaire peut être observé sur proches de nous. A IT KBIR 7 M. de la réflexion ces rayons individuels se dispersent dans des permettant la vision. Par la suite.

A IT KBIR 9 M. A IT KBIR 10 Réflexion spéculaire Réflectance spéculaire Pour des matériaux lisses. M. La réflexion est la plus brillante quand la direction de visionnage est parallèle à la lumière reflétée. A IT KBIR 11 M. Bd). direction de la lumière incidente et de la direction de vue de la surface. A IT KBIR 12 3 . ce qui donne à la surface la réflexion ambiante et diffuse ce type de réflexion dépend de la une apparence brillante. Gd. alors la couleur de la lumière reflétée en raison de la réflexion diffuse sera: M. A la différence de même paquet en départ de la surface. comme un miroir ou un plan d' eau La réflexion spéculaire produit des points brillants souvent vus sur calme. La quantité de lumière reflétée est directement proportionnelle à l'angle d' incidence du rayon lumineux entrant. Bid) et l' objet qu’il frappe est une matière avec une réflectance diffuse (Rd. tous les rayons reflété s restent concentrées dans le des objets brillants comme le verre ou le métal. Si la lumière incidente a une couleur diffuse (Rid. 15/06/2013 Refléctance diffuse (réflectance de Lambert) Refléctance diffuse Les surfaces avec la réflectance diffuse dispersent la lumière dans toutes les directions. Gid.

Pour des matériaux brillants. A IT KBIR 16 4 . où n est l’exposant spéculaire qui définit le degré de brillance. chacun de ces pour simuler des lampes et d'autres sources lumineuses quatre composants est calculé pour déterminer sa contribution dans une scène. qui sera reflétée. A IT KBIR 14 Émission Coefficients de réflexion Les coefficients de réflexion sont définis comme des triplets RGB et prennent une valeur entre 0 et 1. Beaucoup de La couleur d'émission d'une surface ajoute l'intensité à personnes prennent ces coefficients de reflèctance comme la l'objet. puisque ce sera la couleur de la lumière lumineuses. Typiquement un objet a un point culminant spéculaire qui est blanchâtre. A IT KBIR 13 M. le cône de réflexion (plage d’angles de réflexion) est petit tandis que pour des matériaux mats. individuelle à la lumière reflétée. n'émettent pas de lumière. on utilise cette caractéristique Quand la lumière incidente frappe un objet. mais est inchangée par n'importe quelles sources couleur de la matière. M. M. 15/06/2013 Réflectance spéculaire Généralités sur OpenGL Phong propose l’approximation de la fonction specular() par (cos(a))n. il est plus grand. Toutes les quatre composantes sont alors additionnées pour atteindre la couleur finale de la lumière sortante. Ce matériel est alors assigné aux modèles Puisque la plupart des objets réalistes (sauf des lampes) dans la scène. A IT KBIR 15 M.

GLfloat param ) void glLighti( Glenum light.0. GLenum pname. ou glDisable(GL_LIGHTING).0. A IT KBIR 19 M. GL_POSITION. Glenum pname. GLenum pname. /* 1ere source lumineuse */ void glLightiv( GLenum light.2.1.1. (0. ou GL_QUADRATIC_ATTENUATION Activer une source lumineuse : void glLightfv( GLenum light. 15/06/2013 OpenGL: Illumination OpenGL: Illumination Les fonctions suivantes permettent de spécifier les paramètres Activer ou désactiver l’illumination: des sources de lumière: glEnable(GL_LIGHTING). const GLfloat *params ) (0.0.2.1) Intensité du spot void glLightModeliv( GLenum pname. 0. GL_SPOT_DIRECTION. A IT KBIR 20 5 . const GLint *params) . GL_DIFFUSE.0.1. GL_CONSTANT_ATTENUATION.1. GL_SPOT_CUTOFF.0.1) Intensité diffuse de la source. GLint param ) (0. GL_LINEAR_ATTENUATION. param = nouvelle valeur glGetIntegersv(GL_MAX_LIGHTS. 1.0) source 0 : (1..0. void glLightModeli( GLenum pname.2. Glenum pname. GLint param ) On peut utiliser jusqu’à 8 lampes ou plus : GL_LIGHTi = GL_LIGHT0 + i light = GL_LIGHTi. /* 8eme source lumineuse */ GL_SPOT_EXPONENT. &nbre) pname = GL_SPOT_EXPONENT. ou GL_QUADRATIC_ATTENUATION M. 0. GL_LINEAR_ATTENUATION. A IT KBIR 17 M. par défaut (0.0. const GLint *params ) (0. void glLightf( Glenum light.0) Position (0.0) 180 Angle du cône du spot (180 ou entre 0 et 90) GL_LIGHT_MODEL_LOCAL_VIEWER 0 : les reflets des spots sont calculés sur l’axe –z ¹ 0 : par rapport à la position de l’œil 1. glEnable(GL_LIGHT7).0.1..1.1) Intensité spéculaire de la source void glLightModelfv( GLenum pname.0) source 0 : (1.0. pname = GL_A MBIENT.0) Intensité ambiante d’une source. GL_CONSTANT_ATTENUATION. GL_SPOT_CUTOFF. const Glfloat *params) glEnable(GL_LIGHT0). GLfloat param ) (0.-1) Direction du spot (vecteur) Pnam e param 0 Exposant du spot (entre 0 et 128) GL_LIGHT_MODEL_AMBIENT (fv ou iv ) Intensité ambiante de la scène. GL_SPECULAR.0.0) source 0 : (1.1.0 Atténuation constante (entre 0 et ¥) GL_LIGHT_MODEL_TWO_SIDE 0 : seule la face « front » est calculée 0 Atténuation linéaire ¹ 0 : les deux faces d’une surface sont calculées 0 Atténuation quadrique M. A IT KBIR 18 Sources lumineuses : valeurs par défaut OpenGL: Illumination Valeur par défaut Description void glLightModelf( GLenum pname.

GLbyte ny. § Les performances de l’algorithme sont bonnes quant le nombre Modèles d’interpolation: de faces est grand. GLbyte nz ) GL_DIFFUSE Spécifie la valeur RGBA de la reflèctance diffuse du matériel. A IT KBIR 22 Modèle d’ombrage (Shading) Modèle de Lambert Le modèle d’ombrage ou d’interpolation permet de préciser la § Le calcul d’illumination se fait pour un point de la face. par défaut (0. objet de la scène. void glNormal3bv( const GLbyte *v ) ND_DIFFUSE M. 15/06/2013 propriétés matérielles de la surface des faces OpenGL: Les normales void glMaterialfv( GLenum face. const GLint *params ) La normale est une variable d’état d’OpenGL.0).0. GL_SPECULAR Spécifie la valeur RGBA de la reflèctance spéculaire. void glNormal3i( GLint nx. 0. GLfloat ny. qui est modifiée par l’une des fonctions suivantes : pnam e param s GL_AMBIENT Spécifie la valeur RGBA de la reflèctance ambiante du matériel. void glNormal3s( GLshort nx. A IT KBIR 24 6 . void glNormal3b( GLbyte nx. par défaut (0. l’interaction de la lumière avec les objets.0. void glNormal3f( GLfloat nx. GLshort nz ) GL_AMBIENT_A Appliquer les valeurs aux reflèctances ambiante et diffuse. 0. GLdouble nz ) 0. GLint ny.2. GLfloat nz ) GL_EMISSION Spécifie la valeur RGBA de la lumière émise. A IT KBIR 23 M. const GLfloat *params ) void glMaterialiv( GLenum face.0.8.8.8. ce qui permet de fixer est éloignée ainsi que l' observateur.2. § On remarque une discontinuité entre les faces adjacentes. 1. 1. A IT KBIR 21 M.0. GLenum pname.0. void glNormal3d( GLdouble nx.0). 1. par défaut (0.0).0. GLenum pname. 0. GLshort ny.128] et 0 comme valeur par défaut. 0.0). 0. GLint nz ) GL_SHININESS Spécifie la valeur RGBA de la brillance spéculaire du matériel. 0. valeurs dans [0. puis la façon utilisée pour appliquer le modèle d’illumination sur un valeur trouvée est attribuée à tous les autres points de la face. 0. par défaut (0.2. GLdouble ny. § Lambert § Gouraud § Phong M. 1. ceci passe par le calcul de la normale à la § Une bonne représentation est obtenue si la source de lumière surface de l’objet en chaque point.

le modèle de shading de Gouraud est le meilleur M. Pour les autres points de la face on procède par interpolation linéaire des intensité s aux sommets des faces. A IT KBIR 27 7 . A IT KBIR 25 M. § Méthode beaucoup plus couteuse en temps de calcul § OpenGL propose les deux premières méthodes : glShadeModel(GL_FLAT(Lambert)/GL_SMOOTH(Gouraud)) M. calculées aux sommets § L' illumination en un point est calculée à chaque point à partir de la normale interpolée. 15/06/2013 Modèle de Gouraud Modèle de Phong § Le calcul de l’illumination est fait en chaque sommet de la § Le calcul de l’illumination est fait en chaque sommet de la face. A IT KBIR 26 Modèle d’ombrage (Shading) Quand la vitesse est très demandée. pour les autres points de la face on procède par face. interpolation linéaire des normales calculées aux sommets des § Le calcul d’intensité s se fait donc en utilisant les normales faces.