Erreur de la base de données WordPress : [Table 'starxium.wp_termmeta' doesn't exist]
SELECT term_id, meta_key, meta_value FROM wp_termmeta WHERE term_id IN (9,6) ORDER BY meta_id ASC

Warning: mysql_num_fields() expects parameter 1 to be resource, boolean given in /home/starxium/public_html/blog/wp-includes/wp-db.php on line 3194 class="post-898 post type-post status-publish format-standard hentry category-algorithmes category-graphisme">
10/03/12 | Herobrine | Aucun commentaire |

Il est temps de parler des perspectives de Starxium… Non, je rigole, j’en sais strictement rien 😛 ! J’ai nommé cet article comme ça parce que ça fait une semaine que je me fais chier à trouver un moyen de faire un moteur 3D.

Oui, parce qu’il y a toujours une histoire de perspectives, c’est facile quand on fait un dessin, mais dans un jeu, c’est beaucoup,  BEAUCOUP plus complexe !

Je dirai même que je regrette d’avoir écouter les cours d’art plastique au collège tellement leurs histoires de points de fuite m’ont énormément embrouillé…

Tout d’abord, pourquoi ne pas prendre un moteur déjà existant ? Il y en a surement plein qui font la même chose que le mien en mieux et en plus rapide ?

Premièrement, je n’ai aucune envie de lire une doc énorme  pour affiche un carré. Ensuite, j’aime bien faire tout moi même, je ne veux pas ajouter 5Mo de code dans le jeu pour rien. Et puis mon moteur fera ce que je lui demande, rien de plus, rien de moins, donc j’imagine que ce sera surement un peu plus rapide.

J’ai essayé de me documenter sur comment faire un moteur 3D, je n’ai RIEN trouvé. Rien du tout. Juste des gens qui conseillent d’autres d’utiliser un moteur préexistant. Ah, si, c’est vrai en fait, j’en ai trouvé un : au moins 200 pages en anglais incompréhensible et sans aucune formule algorithmique.

J’ai ensuite cherché comment dessiner une forme avec un certain point de vue, dans une certain direction. Wikipedia explique ça plutôt bien : http://fr.wikipedia.org/wiki/Perspective_conique

Perspective - 1 point de fuite

Perspective - 2 points de fuite

Perspective - 3 points de fuite

C’est joli, on a l’impression que ça va servir, mais ça sert à RIEN ! Comment trouvé les points de fuites ? Et même si je les trouves, comment afficher une ligne qui n’est pas parallèle à un des vecteurs de base de l’espace ?

Bref, j’ai trouvé une technique beaucoup plus utile (que j’ai mis 15 plombs à réaliser sur géoplan) :

Fonctionnement du moteur 3D

Avec cette technique, en connaissant la distance entre l’oeil du joueur et l’écran, la position du joueur, la direction vers laquelle il regarde et la position du points dans l’espace, on peut afficher le point sur l’écran.

Autrement dit, les seules variables sont X;Y;Z la position du joueur, θ et φ les angles de direction de la vue, et x;y;z la position du point. Et on obtient alors les coordonnées du point à afficher sur l’écran !

Un autre exemple :

Fonctionnement du moteur 3D

Il n’y a plus qu’à mettre en place et tester avec les textures de test :

Textures de test

Les textures unitaire sont de 32*32 (2 fois plus que MineCraft pour avoir un ordre d’idée)

J’essaie de réaliser ça et je vous faire un screen dès que possible !

Pas de commentaire pour le moment

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *