3DGine3, le moteur 3D opensource
Posté le 24/05/2015 17:26
Attention chercheur de trésor, sache qu'ici ne se trouve qu'une hérésie abandonnée car irréaliable
, ici tu ne peut qu'apprendre de mes erreurs, abandonne cette dimention de trop et retourne parmis les vivants !
Bonjours, je vous présent aujourd'hui ma dernière création (qui m'a prie sacré un paquet de temps
), mon moteur 3D en temps réel avec support de textures, chargement d'OBJ et de textures et rendu sur texture 8) . Il n'est pas complet, mais il est déja capable de vous afficher un beau triangle avec une texture de damier
.
Le moteur est une version lourdement modifiée et portée en C du moteur de Thebennybox
, j'ai abandonnée après 2 essais (et 4 mois
) de faire mon propre moteur de zero (Impossible de faire fonctionner correctement la correction de perspective sur les textures
)
J'vous met le G1A et les sources, si vous avez une idée ou un morceau de code pour optimiser, je prend
G1A:
http://s000.tinyupload.com/index.php?file_id=67428310954471580503
Sources:
http://s000.tinyupload.com/index.php?file_id=65440581134840777060
Le code:
C'est pas propre, je sait, j'utilise mon "sdk" le GCCSHCBSDK (Imprononçable ? pas du tout
), vous le trouverez ici:
http://www.planet-casio.com/Fr/forums/lecture_sujet.php?id=13755&page=
Citer : Posté le 24/05/2015 17:27 | #
Un moteur 3D ? Bravo Nessotrin.
Pong400
PierrePaCiseaux (CP400)
Les Triangles
Menu
ASCII
Nombres premiers
Citer : Posté le 24/05/2015 17:29 | #
Merci, je le prépare depuis longtemps, c'est pour ça que je n'ai pas posté de jeu depuis un moment
Voici Spassus2, mon jeu de combat spatial procédural abandonné, le NESSCASDK, mon SDK 'barebones' fait maison (C'est pour les maso uniquement) et CasioUsb, mon utilitaire de transfert d'addin pour Linux.
Citer : Posté le 24/05/2015 17:59 | #
Bravo ! C'est quoi comme type de moteur ? Raycasting, moteur 3D temps réel ou plus pour de la visualisation genre "Blender" ?
Citer : Posté le 24/05/2015 18:03 | #
C'est du moteur 3D temps réel (tu saurais si t'avais lu la description ;p )
Voici Spassus2, mon jeu de combat spatial procédural abandonné, le NESSCASDK, mon SDK 'barebones' fait maison (C'est pour les maso uniquement) et CasioUsb, mon utilitaire de transfert d'addin pour Linux.
Citer : Posté le 24/05/2015 18:05 | #
Je l'ai lue en diagonale
Ajouté le 24/05/2015 à 18:05 :
Le problème c'est que justement c'est sur la diagonale
Ajouté le 24/05/2015 à 18:07 :
J'ai pas ma calto sous la main, donc je ne peux pas tester, mais tu gère jusqu'à combien d'objets avant de descendre en dessous de 5-6 fps ?
Citer : Posté le 24/05/2015 18:11 | #
Peu, très peu, pour l'instant Avec un triangle, je varie entre 20 fps et 8 quand il rempli l'écran
EDIT:
C'est pour ça que j'apprécierai de l'aide pour l'optimiser
Voici Spassus2, mon jeu de combat spatial procédural abandonné, le NESSCASDK, mon SDK 'barebones' fait maison (C'est pour les maso uniquement) et CasioUsb, mon utilitaire de transfert d'addin pour Linux.
Citer : Posté le 24/05/2015 18:14 | #
Pour tes calculs, t'utilise les floats ou les fixed ? Le gain de temps peut être assez gros en utilisant la deuxième option.
Citer : Posté le 24/05/2015 18:16 | #
J'utilise des floats, les fixed c'est bien, mais c'est pas compatible avec beaucoup d'opérations mathématiques complexes. Il faut vérifier que le gain de vitesse ne soit pas perdu en opérations de conversion
Voici Spassus2, mon jeu de combat spatial procédural abandonné, le NESSCASDK, mon SDK 'barebones' fait maison (C'est pour les maso uniquement) et CasioUsb, mon utilitaire de transfert d'addin pour Linux.
Citer : Posté le 24/05/2015 18:19 | #
Lesquelles ? Parce que dans la lib t'as de quoi calculer les fonctions trigo (et leurs inverses si je ne m'abuse).
Ajouté le 24/05/2015 à 18:20 :
Pour avoir fait les deux, sur mon moteur 3D perso (Firefly 3D), je tournais à 9-10 fps pour afficher un cube avec les float, contre 14-15 avec les fixed. Donc oui, le gain est vraiment bon.
Citer : Posté le 24/05/2015 18:33 | #
D'un côté, si tu as porté un moteur existant, tu ne peux pas vraiment prétendre à des opérations d'optimisation, je pense
Mais ça m'a l'air d'être du bon boulot ! Y'a moyen d'afficher 15-20 carrés pour créer un environnement complet ?
Sinon, mets des screens !
Citer : Posté le 24/05/2015 18:48 | #
@Ds: pour la trigo, j'utilise les fonctions de Lephe
@Lephe: Je peut optimiser le moteur, je le connait aussi bien que si je l'avais écrit moi même x) (enfin, presque, mais c'est pas loin )
Pour afficher les carrés, faut je répare le chargeur de .OBJ (corruption mémoire ) , 10-15 carrés, c'est trop je pense, le moteur est vraiment trop lent pour l'instant (Si t'a envie d'opti, te gène pas )
Pour les screens ... J'ai que 1 triangle, donc ça va pas loin x)
Voici Spassus2, mon jeu de combat spatial procédural abandonné, le NESSCASDK, mon SDK 'barebones' fait maison (C'est pour les maso uniquement) et CasioUsb, mon utilitaire de transfert d'addin pour Linux.
Citer : Posté le 24/05/2015 18:52 | #
Ben justement, pour le coup les fonction de trigo de fixed sont bien plus rapides car basées sur une table de sinus. Du coup c'est en accès direct, pas besoin de calculer de polynôme.
Citer : Posté le 24/05/2015 18:53 | #
#define flême
Mais pour les fixed, faut que je recode toutes les fonctions de maths
#undef flême
Voici Spassus2, mon jeu de combat spatial procédural abandonné, le NESSCASDK, mon SDK 'barebones' fait maison (C'est pour les maso uniquement) et CasioUsb, mon utilitaire de transfert d'addin pour Linux.
Citer : Posté le 24/05/2015 18:55 | #
Avec Sublime Text, t'en a pour 20 secondes
Moi je suis comme Lephe : GCC + Sublime Text >> all
Citer : Posté le 24/05/2015 18:58 | #
20 secondes ? j'ai pas les fichiers pour le fixed, et je connait pas les fonctions x)
Moi, je suis comme moi, GCC + Codeblocks + Calculib > all
Voici Spassus2, mon jeu de combat spatial procédural abandonné, le NESSCASDK, mon SDK 'barebones' fait maison (C'est pour les maso uniquement) et CasioUsb, mon utilitaire de transfert d'addin pour Linux.
Citer : Posté le 24/05/2015 19:02 | #
Avec Sublime Text, t'en a pour 20 secondes
Moi je suis comme Lephe : GCC + Sublime Text >> all
+1
Pong400
PierrePaCiseaux (CP400)
Les Triangles
Menu
ASCII
Nombres premiers
Citer : Posté le 24/05/2015 19:04 | #
Tu va me dire que t'a payé les 70 dollards ?
Voici Spassus2, mon jeu de combat spatial procédural abandonné, le NESSCASDK, mon SDK 'barebones' fait maison (C'est pour les maso uniquement) et CasioUsb, mon utilitaire de transfert d'addin pour Linux.
Citer : Posté le 24/05/2015 19:11 | #
Bon, visiblement il reste encore un bout de travail avant de pouvoir s'en servir en soi alors
Bon courage, je suivrai ce projet avec attention
Citer : Posté le 05/06/2015 21:36 | #
J'ai lancé l'add-in sur ma calto et elle a ramé pendant 15 minutes sans rien m'afficher (après j'ai appuyé sur reset)
Est-ce normal?