Salut, ça fait un petit moment que je traîne ce projet et c'est du coup la v2 du projet que je vous présente, car j'ai malheureusement suivis une mauvaise architecture au départ.
J'ai donc tout refondu proprement et même si cette version vient tout juste de fonctionner, je suis très satisfait du résultat.
C'est un petit moteur 3d minimaliste basé sur l'API OpenGl et bientôt sur les shaders Cg (de nVidia).
Il comprend actuellement :
-un gestionnaire de VBO qui charge, supprime et répertorie les pointeurs VBO.
-un autre pour les textures globalement pareil.
-encore un autre gère le clavier et la souris. Croyez-moi ou pas c'est un boulot de dingue !
-un gestionnaire de gui. On ne peut pas encore l'appeler comme ça, il n'y a que les Labels qui fonctionnent mais ils sont aussi en VBO.
C'est donc une gui 3D rendue après le rendu principal et fixe par rapport à l'écran. Un future shader interne contrôlera les couleurs.
-un Render, il en faut bien un il gère bien sûr le rendu complet, du calcul du framerate et de la création de la fenêtre.
Les objets ne sont actuellement composés que d'un vbo et d'une texture.
Plus tard j'ajouterai un material avec une solution de rendu complexe avec des rendus vers textures (via FBO) plusieurs textures, et des shaders bien sur.
Pour parler compatibilité, c'est encore léger: les formats 3d supportés sont *.skz (le mien) et *.obj (Wavefront en mode triangle sans support des materials).
Les texture supportées sont *.tga et voilà .
Le code est portable Linux évidemment !! Mais je n'ai pas encore débuggé et ça crash lamentablement. Mais c'est prévu
Alors bien sûr il faut rester sur terre il n'y a QUE le rendu principal, mais je fais des scores de 1000fps+ alors que l'ancienne version plafonnait beaucoup plus bas.
Pour finir j'aimerais en profiter pour demander si quelqu'un connait un peu CUDA... j'aimerais l'utiliser, mais je manque de temps et je n'ai pas bien compris dans quelles mesures et de quelle façon, on peut mêler le c++ avec.
Ce projet représente beaucoup de travail, j'ai commencé de rien et je n'ai jamais cédé à la facilité donc, toute suggestion ou critique est bienvenue mais personne ne fait de mal à mon bébé ! .
je n'ai malheureurement pas la competence requise ni des notions pouvant t'aider. je ne peux donc que te souhaiter bon courage dans ce que tu entreprends et j'espère de tout coeur que quelqu'un repondra favorablement a ton appel d'aide.
Cordialement !
Hors ligne
Salut TUpac.
Beau boulot, tu t'es lancé dans un projet qui n'a rien d'évident (un moteurs 3D).
Je vois que ton moteur tourne déjà, c'est vraiment bien.
Tu t'es lancé dans cette aventure suite à un besoin réél d'un moteur collant parfaitement à tes besoin, ou par pur plaisir ?
Sinon, pour CUDA, je n'ai pas encore essayé, ceci dit, si je puis me permettre, pourquoi vouloir intégrer cette API pas évidente du
tout dans ton moteur, alors qu'il y a déjà pas mal à faire avec l'exploitation profonde d'OGL (shader, etc...) ?
Hors ligne
Merci tmyke le but est effectivement d'avoir un moteur parfaitement adapté et sans fioritures inutiles. Bien sur c'est aussi pour le plaisir car c'est passionnant
Sinon comme je l'ai déjà dit, la première version était quasi-complète et je refait le code à une vitesse folle donc je commence à penser à l'optimisation de la boucle de rendu. De plus, Cuda permet un travail directe en Vram et je voudrais faire un moteur de collisions donc j'ai besoin d'un accès direct aux VBOs.
Hors ligne
Dans ce cas effectivement, cela devrait être intéressant.
Petites curiosité, pourquoi partir sur du 'fait maison' alors que des solutions de moteurs3D comme de moteurs physiques sont désormais légions et relativement
intéressantes ? (hormis le coté passion/formateur)
Hors ligne
et bien tu l'a dit, la passion et la formation sur les Api qui aident à comprendre les autres projets.
Mais surtout car c'est le meilleur moyen de créer de nouvelles techniques de rendu maison elles aussi.
Je pourrai toujours hacker un moteur opensource mais la aussi je devrais décrypter le travail des codeurs et ça revient au même en moins éducatif.
Hors ligne
Noble approche
Je ne connais pas OpenGL (j'ai toujours été plutôt DirectX), mais si t'as besoin, n'hésites pas à passer dans le coin
on va suivre ton projet d'un œil attentionné.
Hors ligne
Merci beaucoup voilà qui est motivant
Hors ligne
Tu vois, personnellement je suis la démarche plutôt inverse que la tienne, puisque je suis en train de travailler sur un moteur de jeux,
assemblage de plusieurs moteur existant (moteur3D, moteur physique, partie son, etc...).
Hors ligne
Peut-on tester ton moteur ?
Est-il open source ?
as-tu suivi un tutoriel aux commencements ?
Merci de me répondre.
Hors ligne
mmorpglefilm :
Peut-on tester ton moteur ?
Est-il open source ?
à tu suivi un tutoriel aux commencement ?
Merci de me répondre.
la question concerne-t-elle le projet de TUpac ou mon dernier message ?
Hors ligne
Si c'était pour moi, les sources sont fermées tant que le projet n'est pas fini. Cependant, ça n’empêche pas de le distribuer mais il n'est pas assez aboutit pour être intéressant.
Hors ligne
Celui de TUpac...je voudrais savoir si tu as suivi un tutoriel pour réaliser les bases de ton moteur ?
Hors ligne
Bonne question, même si elle parait naïve. Je n'en ais pas suivis; je me suis beaucoup inspiré de l'architecture de Ogre3d pour la gestion des ressources mais c'est de la pure création. Ce genre de projets ne se construit pas à partir d'un tuto.
Hors ligne
C'est ça se que je voudrais apprendre, savoir décrypter des programmes pour savoir comment ils fonctionnent , savoir où commencer à lire dans un projet fini, comme pour irrlicht.
J'avais eu l'idée de créer un moteur 3D, mais comme je ne savais absolument pas comment faire j'ai suivi le tutoriel sur developpez.com.
Hors ligne
Si tu veux mon avis, il faut apprendre les techniques avancées en c++.
Ce que tu fais avec irrlicht est très simple, il faut aller plus loin...
Sinon developpez.com c'est le must !! Regarde les cours de loulou par example
Hors ligne
En effet, arpente 'developpez.com', il y a plein de tuto et autre info très intéressante, et élargie ton champ d'apprentissage avec d'autre site aussi.
Vouloir créer son propre moteur requiert déjà un niveau minimum, que ce soit en programmation 3D ou que ce soit en programmation..tout court.
Ne brule pas les étapes, sinon tu iras régulièrement vers des désillusions et des découragement, c'est dommage, et cela ne te servira pas
Hors ligne
J'ai enfin ajouté la gestion des shaders et j'ai bien galéré mais voici un aperçu:
http://www.youtube.com/watch?v=_HY_IsKIMJQ
Le système fonctionne grâce à deux fichiers, un .cg qui contient le fragment et le vertex shader en cg et un .mtl qui contient des infos sur les paramètres.
Seules les paramètres de textures sont supportés pour le moment donc j'ai fait un splatting shader qui n'a besoin de rien d'autre.
voici le fichier mtl:
base.cg // fichier shader utilisé
frag tex grass grass.tga // paramètre de texture
frag tex dirt dirt.tga // frag pour le shader cible (ou vert)
frag tex mask mask.tga // tex pour texture, ensuite le nom du paramètre et enfin le fichier texture.
tout est en lien directe avec le moteur mais je dois ajouter de nouveaux types de paramètres et ensuite j'ajouterais des shaders intégrés avec le support de la lumière
à suivre ...
Hors ligne
excellent.
Tu t'inspires un petit peu, dans le principe, du système que l'on retrouve sous Ogre non ?
Hors ligne
Merci encore et oui l'architecture ressemble fortement à Ogre avec des scripts matrials qui font les liens entre les ressources. Mais il y'a aussi l'utilisation finale du moteur qui y ressemble. On lance le moteur dans le main et on code dans des callbacks. Pour le moment il y'a le callback appelé après le chargement et celui appelé à chaque frame.
Ps: j'aimerais changer la vidéo du projet mais j'ai pas trouvé. Help nico !!
Dernière modification par TUpac (02-01-2011 15:58:21)
Hors ligne
TUpac :
Ps: j'aimerais changer la vidéo du projet mais j'ai pas trouvé
Dans le carré en haut à droite avec ton avatar en haut de page, tu n'a pas l'option modifier ?
Hors ligne
Si mais je ne peux que retoucher le texte, rien d'autre apparemment.
Dernière modification par TUpac (02-01-2011 17:21:01)
Hors ligne
donne moi le lien de ta vidéo, je le remplacerais
en attendant j'ai mis celui du post au dessus...
Hors ligne
Pages: 1
Options | Liens officiels | Caractéristiques | Statistiques | Communauté |
---|---|---|---|---|
Corrections |
|
xhtml 1.0 css 2.1 Propulsé par FluxBB Traduit par FluxBB.fr |
882 membres 1429 sujets 11119 messages |
Dernier membre inscrit: LiseBuisson96 10 invités en ligne Aucun membre connecté RSS Feed |