begin process at 2012 05 27 18:47:18
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

OpenGL

 > MOTEUR 3D AVEC OPENGL

MOTEUR 3D AVEC OPENGL


 Information sur la source

Note :
6 / 10 - par 5 personnes
6,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :OpenGL Classé sous :moteur, 3d, opengl Niveau :Initié Date de création :16/12/2006 Date de mise à jour :17/12/2006 11:53:21 Vu / téléchargé :11 338 / 1 668

Auteur : crazy lapinou

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (25)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
C'est un moteur 3D qui fonctionne avec OpenGL.
Il permet le chargement et l'affichage:
- d'objects 3D (juste pour le moment au format .OBJ)
- d'images (.TGA, .BMP, .JPG)
- des textes (grace au des polices au format image)

Il est basique mais il fonctionne!



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  •   GLengine
    •   bin
      • example 1.exeTélécharger ce fichier [Réservé aux membres club]221 184 octets
      • example 1.exxTélécharger ce fichier [Réservé aux membres club]221 184 octets
      • GLengine.dllTélécharger ce fichier [Réservé aux membres club]347 648 octets
      • libGLengine.aTélécharger ce fichier [Réservé aux membres club]13 002 octets
      • libGLengine.defTélécharger ce fichier [Réservé aux membres club]1 156 octets
      • log.txtTélécharger ce fichier [Réservé aux membres club]Voir ce fichier496 octets
      • SDL.dllTélécharger ce fichier [Réservé aux membres club]1 291 263 octets
    •   data
      • fond.tgaTélécharger ce fichier [Réservé aux membres club]49 691 octets
      • font.tgaTélécharger ce fichier [Réservé aux membres club]1 048 594 octets
      • font2.tgaTélécharger ce fichier [Réservé aux membres club]1 048 594 octets
      • PORSCHE.MTLTélécharger ce fichier [Réservé aux membres club]574 octets
      • PORSCHE.OBJTélécharger ce fichier [Réservé aux membres club]499 870 octets
    •   examples
      •   example 1
        • example 1.devTélécharger ce fichier [Réservé aux membres club]974 octets
        • main.cppTélécharger ce fichier [Réservé aux membres club]Voir ce fichier1 920 octets
        • main.oTélécharger ce fichier [Réservé aux membres club]4 775 octets
        • Makefile.winTélécharger ce fichier [Réservé aux membres club]896 octets
    •   include
    •   source
    • Desktop.iniTélécharger ce fichier [Réservé aux membres club]Voir ce fichier78 octets

Télécharger le zip


 Historique

17 décembre 2006 11:53:21 :
Ajout d'une capture d'écran

 Sources du même auteur

Source avec Zip UN CASSE BRIQUE AVEC UN MENU (CONSOLE)

 Sources de la même categorie

Source avec Zip Source avec une capture AFFICHER DES COURBES DE BEZIER par shorzy
Source avec Zip Source avec une capture BASE/MOTEUR 3D EN QT/OPENGL (COMPLET ET FONCTIONNEL!) POUR U... par envi33
Source avec Zip Source avec une capture CLASSE AVEC OPENGL - OBJETS 3D ET ANIMATIONS par rasta63
Source avec Zip Source avec une capture LETTRES 3D AVEC OPENGL ET QT par opossum_farceur
Source avec Zip CUBE 3D GLUT32 VC++ ET DEVC++ par bobby03

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture XTENGINE - MOTEUR 3D BASÉ SUR OPENGL, GLEW ET LA SDL par XT95
Source avec Zip MOTEUR A PARTICULES par leo666
Source avec Zip Source avec une capture DÉBUT DE MOTEUR 3D par CyberP
Source avec Zip Source avec une capture DEBUT DE MOTEUR D'AFFICHAGE OPENGL AVEC RENDU DE SKYBOX par Maegis
Source avec Zip Source avec une capture [VC++] 1.3 MOTEUR DE JEU 3D OPENGL [SANS GLUT] par Xentor

Commentaires et avis

Commentaire de rambc le 17/12/2006 10:50:10

Une petite image serait TRES bien venue pour montrer ce qu'il est possible de faire avec ton moteur.

Commentaire de crazy lapinou le 17/12/2006 11:48:10

Je vais mettre une image mais ça sera l'example qui est fourni avec.

Commentaire de shenron666 le 17/12/2006 12:15:03

il gère le son ton... moteur 3D ou seulement l'affichage ?

Commentaire de crazy lapinou le 17/12/2006 12:59:41

Il ne gère que l'affichage pour le moment.
Peut être qu'un jour il pourra jouer des sons ou des musiques.

Commentaire de XT95 le 18/12/2006 18:35:45

Je sais pas si on peut encore appeler sa un moteur 3D :-°

Commentaire de shenron666 le 18/12/2006 19:31:03

effectivement, un peu léger pour un "moteur", un terme malheureusement abusivement utilisé
en dehors de ça c'est pas mal, continues comme ça et ajoutes lui des fonctionnalités (physique, son, script, IA, ...) histoire d'en faire un vrai moteur ;-)
courage, c'est un bon début

Commentaire de katsankat le 18/12/2006 21:30:56

Les gens sont durs.

Commentaire de crazy lapinou le 20/12/2006 17:11:21

Vous êtes un peu dur avec moi!
Bon d'accord! On peut pas appeller ça un moteur!
Mais je suis jeune et je n'avais que ça à faire!
Peut être qu'un jour ça sera un vrai moteur...

Commentaire de XT95 le 20/12/2006 18:14:33

Bah disons que ca aurait été mieux si tu l'avais poster dans un ptit moment avec quelques trucs de plus mais c'est un bon début quand meme ;) !
Continu!!

Commentaire de Arnaud16022 le 21/12/2006 19:09:27

Hum
Disons que le terme de moteur 3D est absolument inapproprié.
Il s'agit davantage d'un set d'helpers pour oGL.

Le problème n'est pas du tout, m'est avis, que tu aurais dû attendre plus, mais plutôt que tu aurais dû mieux organiser ton code :
exemple dans glengine.h, GLSwapBuffers n'a rien à faire dans le même fichier que DrawModelOBJ...

Au fait, je trouve qu'il y a beaucoup de fonctions qui ressemblent étrangement à celles de Sniper, je pense surtout pour l'affichage de texte avec int center, je me trompe ou ça vient de moi ? ( absolument pas une critique hein, ça fait plaisir ^^ )

EDIT :
roh je rêve t'as fait un copier-coller ... très mauvaise idée, le code de Sniper fait partie des plus horribles que j'aie jamais tapé...
genre tu ne t'es pas demandé ce que faisait UINT MD2textures[50];
dans le gestionnaire de textures, si on peut appeller ça comme ça ?
et puis on ne met jamais de code dans un .h, juste des déclarations.
Je sais ces erreurs c'est moi qui les aies faites, mais c'est pas une raison pour ne pas les corriger.
Si tu veux un wrapper pour charger des images, utilise DeviL ( mais un pote m'a dit qu'il avait eu des problèmes avec), ou tgaloader de Funto, ou MP moi, je t'enverrai un _vrai_ code avec tout ce qu'il faut ( ou plutôt non, je le posterai certainement pendant les vacances, encore quelques trucs à finaliser )

++

Commentaire de luhtor le 21/12/2006 20:13:14

Jamais de code dans un .h sauf pour du généric.

Commentaire de shenron666 le 21/12/2006 22:36:33

le code dans le .h c'est pour faire du inline
faut pas non plus y coller des dizaines de lignes

Commentaire de Arnaud16022 le 22/12/2006 12:56:58

C'est bien ce que je dis les gens : j'avais programmé ça comme un porc. Maintenant j'évite même le générique dans le .h, je ré-inclus un .hpp histoire que déclaration et implémentation soient bien séparés ( même si on est bien d'accord que ça ne change strictement rien pour le compilo )
D'où ma critique à l'auteur de cette source : fais gaffe à ce que tu copies-colles du net, c'est pas parce que j'avais eu 10/10 à cette source que c'est forcément bien codé ;)

Commentaire de crazy lapinou le 22/12/2006 20:35:46

J'essaierais de modifier mon code pour qu'il ressemble à un vrai moteur 3d, mais c'est pas gagné...

Si quelqu'un pouvait m'aider à trouver du code permettant de charger des fichiers 3d (.x, .md2, etc...) et des images (.png, etc...)ou à modifier mon code (c'est pas dur...) il pourrai me l'envoyer juste juste pour que j'apprenne de nouveaux truc.

Commentaire de Arnaud16022 le 23/12/2006 15:48:26

Je trouve étrange pour un projet openGL que tu veuilles ouvrir du .x :)
Disons que les formats 3D c'est pas gagné ... encore et toujours dans Sniper ( j'en parle car tu le connais ! ) il  a un loader md2, sinon tu peux aller voir sur google celui de David Henry.
Pour les images, tu l'as déjà ce code :s je dis juste que c'est mal organisé: oriente objet, encapsule, hérite, polymorphise, singletonne, et tout ira mieux ( pour ma dernière phrase, google est ton ami, ou pose des questions plus précises dans le forum :)   )

Bye, bonne continuation.

Commentaire de Funto66 le 31/12/2006 01:06:47

Hmm, en fait ton code c'est surtout du récupérage de code fait par plein d'autres gens et un gros mix de tout ça...pas forcément "homogène"...

Oui je sais c'est pas très gentil, dsl, je sais que c'est un début et que quand on voit son modèle 3D s'afficher, sous l'euphorie du "waaah j'ai créé un moteur 3D !!"...

Disons que l'idée du "trouver un code sur le net qui fait", ok, mais pas pour le recopier DANS ton code direct; le principal c'est de comprendre l'algo derrière, de le faire à sa façon, et encore si on peut éviter de piquer un algo déjà fait et se le refaire soi-même, je trouve ça vachement plus intéressant et instructif que de repiquer du code, surtout s'il n'est pas super bien écrit...(je pense notamment à ton jpeglib.h, sauvagement recopié dans ImageLoaders.h par exemple, ce qui ne sert à rien en plus vu qu'on a besoin de la libjpeg pour compiler il me semble, non?).

Intéresse-toi aussi à d'autres moteurs 3D déjà écrits, comme OGRE (je l'utilise ces tempcs-ci, je recommande : très bien écrit et organisé), IrrLicht ou CrystalSpace, qui sont les 3 grosses références, ne serait-ce que pour voir comment organiser ton code (une classe représentant un objet 3D, une représentant une texture...etc).
-> important : l'Orienté Objet !!

Pour ce qui est des formats 3D, comme le dit Arnaud d'expérience (;)), c'est pas gagné : perso s'il y en a un que je sens bien, c'est le .mesh, créé par OGRE. Il existe des exportateurs pour plein de modeleurs 3D, du code le chargeant, tu peux en trouver en fouillant dans OGRE (IrrLicht aussi supporte ce format), et surtout il supporte les textures et l'animation par bones :)

Autre possibilité : te créer ton propre format et l'exportateur qui va avec pour le modeleur de ton choix (genre écrit en Python pour exporter depuis Blender) (Cf une de mes sources, avec un exportateur pour gmax, qui n'est maintenant malheureusement plus en téléchargement libre je crois...).

C'est long et difficile, mais c'est tellement bon :p

Commentaire de maxoss le 31/12/2006 06:08:46

Exemple... ça s'écrit comme ça... sans "a"... Merci, ça faisait mal.
Example, ç'est en anglais...

Commentaire de crazy lapinou le 01/01/2007 18:21:56

Merci de tous vos conseils. J'essayerai de les utiliser dans ce "moteur 3D" et dans d'autres programmes.
Pour information, je suis en train de retravailler mon code pour y implanter de nombreuses fonctionnalités et pour réécrire les algorithmes que j'ai copier à partir du net. Si quelqu'un pouvait m'aider à en écrire, ça serait sympa...

C'est vrai que j'ai copier du code, mais il a quand même fallu le modifier pour qu'il marche. Par exemple, pour la fonction BuildFont(), j'ai du modifier un certain nombre de variables et de valeurs pour que les images s'affichent correctement. Pareil pour bien d'autres fonctions...

J'essayerais de modifier le nombre de polices maximum (il n'y en a que 2 ici) pour pouvoir en utiliser à l'infini...

Merci pour tous vos conseils...

Commentaire de Funto66 le 01/01/2007 18:35:04

Pour tout ce qui est relatif à l'affichage de texte, il existe 3 méthodes :
-utiliser l'API Win32 (ce que tu fais il me semble) pour utiliser les fonts en TTF
-utiliser la librairie FreeType2 (Cf NeHe pour un tuto sur le sujet)
-utiliser une texture contenant tous les caractères à afficher, et les plaquer sur des quads

Ou sinon utiliser GLUT, qui utilise les bitmaps OpenGL (glRasterPos et tout ça...).

Le truc avec la tienne c'est qu'elle n'est pas portable, perso en général j'utilise une texture (j'ai posté une source sur le sujet il me semble ici)...
Après ça dépend, si tu veux que ton moteur 3D soit portable ou pas...

PS : une autre possibilité aussi c'est de réimplémenter sous les autres OS le système avec l'API Win32 (genre en utilisant la Xlib sous Linux...).

Commentaire de crazy lapinou le 01/01/2007 19:06:20

Je pense que dans ta liste, la méthode que j'utilise et la 3eme et pas la 1ere.
Je charge une image et j'affiche le caractèrequi est dans cette image.

GLUT est une bonne lib, mais j'aimerais plutôt créer mes librairies (c'est pas gagné). Pour la portabilité, j'essayerais de créer des classes qui puissent marcher sur différents systems (Linux, MacOS, Windows ...)

Pour le probleme des textures qui ne sont pas toutes créer pareil (les lettres ne commences pas à la même positions, les lettres sont plus ou moins grosses ...) je pense créer un script qui définira la grosseur des lettres, la position de départ...

Si tu as quelques idéées ou quelques astuces, tu pourrais peut être me les poster dans ma boite au lettre.

a+

Commentaire de Funto66 le 01/01/2007 20:07:48

Ok, cool que ce soit celle-là, elle est portable ^^

Quand tu parles de te passer de GLUT, tu veux dire pour la gestion de fenêtres, l'input clavier/souris...etc ? Perso j'utiliser GLFW pour ça, et je ne trouve pas forcément utile de refaire ce qu'elle contient...
Surtout que gérer ça sur plein de plate-formes différentes n'est pas une mince affaire; sur Windows la doc est assez facilement trouvable, sous Linux faut apprendre à bidouiller avec la Xlib (pas très facile...), sous Mac c'est avec Cocoa en Objective-C, et encore faut-il avoir un Mac...
Alors qu'utiliser GLFW ou GLUT (préférence pr GLFW qd même, qui est libre, n'est pas abandonné, est moins buggué et donne plus de libertés à l'utilisateur (on voit la mainloop)) est facile et efficace...

Commentaire de crazy lapinou le 02/01/2007 11:18:54

Je ne connaissais pas cette lib. Je vais faire un tour sur le net et si elle me plait, je l'utiliserais surement.

Merci encore pour ton aide (et pour celle des autres)...

Commentaire de Arnaud16022 le 04/01/2007 12:56:52

+1 pou glfw, ils la conseillent même à Epita ^^

"(je pense notamment à ton jpeglib.h, sauvagement recopié dans ImageLoaders.h par exemple, ce qui ne sert à rien en plus vu qu'on a besoin de la libjpeg pour compiler il me semble, non?)." -> j'aime bien le sauvagement lol ... même moi je me le suis dis quand je l'ai fait xD ( oui tu as bien lu, c'est de moi cette horreur )

Commentaire de Funto66 le 04/01/2007 22:14:55

Ca ne m'étonne même pas :p

Commentaire de crazy lapinou le 20/02/2008 17:38:20

bon... comme vous l'avez sûrement deviné, j'ai mis en pause se moteur ^^
En effet, mon PC a reformater plein de fois, je suis passé sous windows, j'ai d'autres projets en prog... bref, pas le temps de continuer.
Je pense peut être le continuer plus tard en ajoutant une gestion du son, un moteur réseau, orienté objet, etc... parce que j'aimerais bien programmer un MMORPG (mais je me lance sur un 2D d'abord)
Donc, restez dans le coin, peut être qu'une nouvelle version sortira ;)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Moteur 3d OpenGL [ par Stormy ] Salut. Je recherche des personnes motives pour travailler sur un moteur 3d sous OpenGL. Les bases sont deja etablies (Detection de collisions, sons, m OpenGL et moteur3D [ par adess00 ] Salut, Je voudrais savoir ce qu est la difference entre un moteur 3D et openGL Je pensai qu un moteur 3D etait un ensemble de fonction qui permet de Problème avec OpenGL [ par Xaviou ] Bonjour, Je suis en train de réaliser un prog permettant de visualiser des fichiers 3D au format STL. Si j'éxécute mon prog depuis Visu Moteur 3D [ par mondrone ] Salut à tous. En fait je ne demande ni bout de code, ni programme, .... Je voudrais une fois pour toutes comprendre la différence entre le m Création d'un moteur 3D en partant de rien [ par poiuytrez3 ] Bonjour, je souhaiterai créer un petit moteur 3D le plus simple possible en partant de rien. Quelqu'un en a t il déjà fait un? Je ne so Comment fonctionne un moteur 2D ? [ par psykocrash ] Bonjour,J'ai pour projet de développer un rpg à la Final Fantasy (en 2D, 4 héros, un inventaire pour les techniques et les armes, des c Moteur 3D. [ par pauledouard ] Voila, bonjour à tous, je suis tout nouveau.Ma question est simple, avez vous une marche à suivre pour construire un moteur 3D en opengl en partant de Moteur 3d [ par deguelatore ] Tout d'abord, à quoi sert un moteur 3d. Ensuite, comment en programmer un sous OpenGL?   Merci et @+ Du 3D dans une fenêtre Windows [ par Tibabou ] Bonjour/soir,J'aimerais savoir comment insérer dans une fenêtre windows toute simple une zone de "dessin": un cadre avec du 3D dedans en fai moteur graphique [ par vladisback ] bonjour je pense depuis quelque temps a essayer de réaliser un moteur graphique (bien que ce ne soit peut etre pas le bon terme) comme opengl et direc


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,170 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales