Accueil | Personnaliser | Blog | Extras | Log In | Information
Manuel | D&D icons | GML Parser | Archives | Ville Iso
Username: Password:  
à propos | Caractéristiques | Directory | Bannières | Contacter

Création de jeux avec Game Maker
Création de jeux avec Game Maker

Eclairage (Lighting)

Les scènes que vous avez pu dessiner à l'aide des fonctions vues précédemment doivent vous paraître bien fades, ceci en raison de l'absence de lumière. La couleur est, dans le cas où les faces sont égales, indépendante de leur orientation. Afin de créer des scènes plus réalistes, vous devrez utiliser de l'éclairage et placer des spots à des endroits judicieux. Néanmoins, créer correctement des scènes avec de l'éclairage n'est pas tâche facile mais les effets peuvent être très bons.

Vous pourrez utiliser la fonction suivante pour activer l'éclairage :

d3d_set_lighting(enable) Active ou désactive l'utilisation de l'éclairage.

Lorsque vous utilisez de l'éclairage, la couleur est déterminée pour chaque sommet du polygône. Ensuite, la couleur des pixels internes est basée sur la couleur de ces vertices. Deux manières de réaliser cela : soit le polygône tout entier est de la même couleur ou soit la couleur est progressivement interpolée sur le polygône. Par défaut, il est utilisé de l'ombrage progressif (smooth shading). Cela peut être modifié en employant la fonction suivante :

d3d_set_shading(smooth) Détermine si l'on doit utiliser ou non l'ombrage progressif.

Pour utiliser de l'éclairage, vous devrez définir des lumières ou spots. Il existe deux types de lumières : les lumières directionnelles (comme le soleil) et celles positionnelles (comme une caméra). La lumière posséde une couleur (seule la lumière diffuse est supportée et pas la réflection spéculaire). Les fonctions suivantes existent pour définir et utiliser des lumières :

d3d_light_define_direction(ind, dx, dy, dz, col) Définit une lumière avec une direction. ind est l'index de la lumière (utilisez un petit nombre positif). (dx,dy,dz) correspond à la direction de la lumière. col est la couleur de la lumière (vous utiliserez souvent c_white). Cette fonction n'active pas la lumière.
d3d_light_define_point(ind, x, y, z, range, col) Définit un point de lumière. ind est l'index de la lumière (utilisez un petit nombre positif). (x,y,z) correspond à la position de la lumière. range indique jusqu'à quelle distance doit briller la lumière. L'intensité de la lumière ira en décroissant au delà de cette valeur. col est la couleur de la lumière. Cette fonction n'active pas la lumière.
d3d_light_enable(ind, enable) Active (true) ou désactive (false) la lumière de numéro ind.

La manière dont la lumière se réfléchit sur un objet dépend de l'angle entre la direction de la lumière et de la normale de la surface, c'est à dire du vecteur pointant loin de la surface. Pour créer des objets avec lumière, vous avez besoin non seulement de fournir la position des vertices mais aussi de leurs normales. A cet effet, il existe quatre fonctions supplémentaires qui permettent de définir les vertices des primitives :

d3d_vertex_normal(x, y, z, nx, ny, nz) Ajoute un sommet (x,y,z) à la primitive, avec un vecteur normal (nx,ny,nz).
d3d_vertex_normal_color(x, y, z, nx, ny, nz, col, alpha) Ajoute un sommet (x,y,z) à la primitive, avec un vecteur normal (nx,ny,nz) et sa propre couleur et valeur alpha.
d3d_vertex_normal_texture(x, y, z, nx, ny, nz, xtex, ytex) Ajoute un sommet (x,y,z) à la primitive, avec un vecteur normal (nx,ny,nz) et à la position (xtex,ytex) de la texture, avec mélange de la couleur et de la valeur alpha définies précédemment.
d3d_vertex_normal_texture_color(x, y, z, nx, ny, nz, xtex, ytex, col, alpha) Ajoute un sommet (x,y,z) à la primitive, avec un vecteur normal (nx,ny,nz), à la position (xtex,ytex) de la texture, avec mélange de sa propre couleur et de la valeur alpha.

Veuillez noter que pour les formes de base que vous pouvez dessiner, les normales sont automatiquement paramétrées correctement.










<< Traduction française par Philippe Ragni - (2005) >>

Search Search


Alternative versions Alternative versions

You can also read this manual on one single long page (± 1.5 mb)

Also available in: Dutch English German

ZIP Download helpfile

Annonces Annonces

GameMaker Manual