Tzu3D est un moteur 3D, destiné aux amateurs désirant produire des jeux 3D en n’ayant aucune connaissance dans le domaine. Mon objectif principal est d’offrir un moteur 3D le plus simple à utiliser possible tout en ayant des performances honorables. Utilisant la technologique .Net il sera possible de l’utiliser avec les langages VB.net, C# ou C++.Net.
Je recherche une personne programmant en vb.net (express 2005) ayant une bonne connaissance de DirectX9 Managed afin de m’aider au developpement de Tzu3D.
Je trouve ça très beau. Ca a été dur à faire? Tiens tu sauras peut être me répondre, mais en java, j’ai fait un Raytracer : ça donne de bons résultats (quand tu te gourres pas dans les coordonnées/etc) mais je sais que ce n’est pas appliqué dans les moteurs 3D dynamique (aka: qui bouge).
Comment cela se passe concrêtement pour un moteur 3D?
Et bien, en gros c’est de la manipulation de triangle à l’aide de matrice. On doit définir quel triangle vont être dessiner, afin d’éliminer ceux qui ne seront pas visible à l’écran. A savoir que moins, il y a de triangle, plus c’est fluide. Par exemple pour les objets (mesh) je calcul leur sphère englobante (bounding sphère) puis, je vérifie si cette sphère est devant la camera ou non. (Frustum culling). On peu y ajouté d’autre technique comme quad tree, octree, occlusion culling, etc… Le but final est d’éliminer tous les triangles inutiles afin d’avoir des performances optimales. Ensuite s’ajoutent des techniques de texturing, lumière, ombrage, etc…
Un moteur3D, fourni des fonctions qui permettent de ne pas s’occuper de tout cet aspect technique, et de simplement dire: Je veux qu mon objet x s’affiche à tel endroit, avec une texture aillant une impression de relief (bump mapping), et une lumière ici, sans avoir à te soucier du coté technique à mettre en oeuvre pour arriver ce résultat.
Sans-Nom tu peux plus ou moins utiliser le même type de fonctionnement qu’un moteur 3D DirectX/OpenGL en Raytracing.
Pour ca il vaut mieux utiliser la formule du triangle (et pas du découpage de plan qui est plus gourmand) pour composer des objets, des bounding boxes / sphere qui englobent tes objets, des techniques de tri binaire pour éliminer les triangles qui ne sont pas dans le champs de vision (les techniques citées par ShadowTzu sont aussi valides en Raytracing). Bon t’as pas toutes les fonctions propres aux APIs 3D qui te facilitent la vie mais c’est marrant de les recoder
Par contre ca n’a plus grand chose à voir avec le Raytracing, là ca touche plus au RTRT (Real Time RayTracing).
J’ai fait un Raytracer plutot sympa (clustering, FSAA, textures, bruit de perlin, reflexion, transparence, triangle, bump mapping, soft shadows, etc) mais j’avais pas eu le temps de me pencher sur les techniques de tri.
oui j’avais compris
CyberJo: et bien déjà sais-tu utiliser directx? Si c’est le cas ça reste de la prog directX et donc il est facile de s’adapter du C# à vb.net.
As-tu une demo ou screen de se que tu as déja fait?
Refonte de Tzu3D (c’est la 2éme depuis ça création (01/01/2005)). Etape qui consiste à ré-écrire le moteur afin d’optimiser encore plus. J’ai commencé par la gestion des objets et j’en ai fait un test poussé, les résultats sont bien au-dessus de mes attentent!