La tanière du blaireau

Par magenico Blog créé le 08/04/10 Mis à jour le 02/05/10 à 15h35

Tribulations d'un noob dans l'univers du développement amateur.

Ajouter aux favoris
Signaler

    Cette fois-ci je vais vous proposer un petit billet "technique", rien de novateur ou de très compliqué, je vais vous parler des bases de la programmation 3D.

     Commençons par énoncer une stupidité : vous vous en doutez le grand apport de la 3D par rapport à la 2D c'est  l'insertion d'une troisième dimension. On passe d'un plan à un espace en 3 dimensions. Il est alors possible de rendre des volumes à l'écran, et c'est là tout son intérêt. Mais il faut passer outre le fait que l'écran ne soit qu'en 2D. En effet le rendu 3D doit passer par une image 2D, sauf pour les lunettes 3D où c'est encore un peu plus complexe. Il faut donc rendre un effet de volume autrement.

     Rappelons d'abord qu'une bibliothèque "3D" (openGL, directX / direct3D) permet de déclarer des formes géométriques en 3 dimensions (ou 2 ou 1 d'ailleurs). Ces formes seront ensuite projetées sur un plan correspondant à l'écran. Les formes 2D ainsi obtenues subiront ensuite une étape de rastérisation qui consiste en une transformation en pixel. Et c'est finalement ces pixels qui seront affichés à l'écran. Bon évidemment, il y a plein de raccourcis et de détails manquants dans l'explication ci-dessus, mais elle est largement suffisabte pour ce que je veux vous expliquer par la suite.

     Intéressons nous maintenant au rendu des volumes. Si vous dessinez une sphère bleue en 3D, celle-ci sera projetée comme un disque et c'est un disque bleu uniforme qui apparaîtra à l'écran. Si vous tournez autour de cette sphère, c'est toujours un disque qui apparaîtra à l'écran. Il n'y aura aucune illusion de volume étant donné que le disque sera a priori d'une seule couleur unie. Un des façons les plus simple de rendre un volume est d'éclairer la scène 3D. En effet notre sphère si elle est éclairée ne sera plus d'une couleur uniforme, les surfaces élémentaires de la sphère faisant face à la lumière seront plus éclairées que celles qui ne font pas face à la lumière.

      La deuxième sphère et la troisième sont éclairées : la couleur rendue à l'écran est calculée en fonction de la direction de la lumière incidente sur une face et de la normale de cette face. On remarque tout de suite que l'effet de volume est présent contrairement au disque bleu. On a vraiment l'impression d'avoir affaire à deux sphères. La troisième image paraît cependant nettement plus "sphérique" que la seconde. On pourrait croire que c'est parce qu'elle contient plus de polygones, c'est à dire plus de faces de tailles plus petites donc qu'étant plus détaillées, son rendu est moins grossier. Il n'en est rien, elle a strictement les mêmes faces / points que la sphère de la seconde image. Et je laisse pour un futur billet l'explication de cette différence !

 

 

 

 

Ajouter à mes favoris Commenter (0)

Commentaires

Édito

Ce n'est sûrement ni le lieu, ni l'endroit mais j'ai envie au fil des semaines de vous faire partager une petite aventure que je viens d'entrependre, programmer un prototype de jeu.

Archives