Moteur 3d avec matrices...

Description

Bon voilà, c'est un moteur 3D, tout ce qu'il y a de plus rudimentaire : il se contrôle à la première personne (vous avncez et reculez, en contrôllant l'orientation avec la souris), et vous vous baladez dans un monde tout noir avec un cube qui tourne sur lui-même au centre.
J'ai mis ce code en ligne simplement car c'est mon premier moteur 3D qui utilise les matrices pour les transformations (rotations, translation), ce que je répugnais à programmer, voyant à peu près la difficulté à surmonter.
J'y suis arrivé, voilà le résultat. Il y a aussi d'autres choses intéressantes à noter : j'utilise une méthode pour colorier les arêtes qui fait une sorte de fondu (plus vous vous approchez du cube, plus il devient clair).
Il y a aussi une fonction qui permet d'extraire, à partir du code RGB d'une couleur, les différentes valeurs associées aux couleur. Cela prend trois lignes et est très rapide ; je pense que beaucoup y trouveront leur compte.

---Mise à jour du 04/06/2003

Le moteur prend à présent les faces pleines et gère les faces cachées.

Conclusion :


Il est possible, en mettant le tri des faces et le tracage des faces cachées (i.e. au démarrage, décocher la première cases et cocher la seconde), de rentrer à "l'intérieur" du cube :)
Cela pour dire que je n'ai pas encore mis ni de fonction de détection de collisions, ni de fonctions permettant de procéder à un Frustum Clipping (ce qui permettrait de 'couper' un triangle s'il passe de devant à derrière la caméra). Je suis en train de lire un tutorial dessus...
Il n'y a pas non plus de ZBuffering, ni de gestion d'objets externes (importer objet).
Il y a donc beaucoup de lacunes à ce programme...

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.