CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Comment importer en OpenGL ?

alex6891
alex6891
Niveau 10
26 août 2005 à 08:49:15

Salut,

J´ai récemment décidé avec un pote de tenter un petit jeu en 3D sous Windows en utilisant Visual Studio et un logiciel 3D comme Studio Max en tant qu´environnement de travail (enfin quand je dis "jeu" je veux plutôt dire "niveau" histoire de voir plus humblement ce que ça donne...)

Je suis étudiant en IUT info (je vais rentrer dans ma deuxième année) donc j´ai de bonnes bases en C++, lui est plutôt dans le graphisme et l´infographie, les montages, etc...

Notre idée est de créer d´une part les éléments graphiques d´un niveau avec tout ce qu´ils comporte (l´architecture, les éclairages, les textures, et les personnages) avec le logiciel de 3D, et d´autre part de coder le programme en C++ pour y integrer les scripts nécessaires (on pense faire un truc du genre Doom-Like pour le gameplay.)

J´ai deux questions :

1) Comment faire pour importer les éléments 3D du logiciel en OpenGL (langage que je compte utiliser avec la librairie GLUT) pour que je n´ai pas besoin de tout redessiner mais juste d´intègrer les éléments graphiques (avec les textures, lumières et tout) à la scène ?

2) Est-ce de cette manière qu´un jeu-vidéo est "normalement" crée par des professionnels ?

PS: je ne vous cache pas que mon ami et moi avons l´ambition à long terme au final de nos études de bosser dans le jeu-vidéo (lui plus le cinéma mais bon^^)

Merci à tous ceux qui me répondront :)

JeanYvesYves
JeanYvesYves
Niveau 10
26 août 2005 à 09:25:48

Si tu utilisais quelque chose de moins vieux que GLUT pour amorcer openGL, tu aurais des fonctions LoadBMP pour importer les textures par exemples, déja :)

certains professionnels utilisent en effet OpenGL (John Carmack pour les Quake par exemple)
mais plus du tout GLUT :non:

alex6891
alex6891
Niveau 10
26 août 2005 à 09:35:11

Ok

Je dis GLUT mais c´est pas définitif comme choix, alors si vous avez des conseils pour m´aider, quelque chose de plus utilisé à l´heure actuelle car plus fiable et polyvalent, merci de me le dire ^^

:)

JeanYvesYves
JeanYvesYves
Niveau 10
26 août 2005 à 09:40:28

SDL :oui:

exemple :
ma carte -> mon site -> tutoC++ §3.1
(je te conseille de faire un tour par le §2.0 avant)

alex6891
alex6891
Niveau 10
26 août 2005 à 18:28:59

Merci bien JeanYvesYves :)

J´ai fait un tour sur ton site qui est pas mal du tout (j´avais déjà du te le dire auparavant :-).) et c´est clair et très bien expliqué (au niveau des tutos.) Par contre j´ai un problème, concernant ton deuxième exemple avec la SDL, le code compile nickel sauf que l´écran qui doit afficher une image qui bouge (intitulé du tuto) est tout simplement noir et vierge : bizarre. D´autant plus qu´en insistant, j´ai fait ramer mon pc (je précise que le premier exemple de l´image fixe marche très bien par contre.)

Enfin, ma question était aussi (et surtout) de réussir à importer des éléments 3D en OpenGL.
Je sais maintenant que j´utilise la SDL dont j´ai compris le principe mais je ne sais toujours pas comment faire pour l´importation.

Encore merci :)

Kouic
Kouic
Niveau 9
26 août 2005 à 18:43:43

Bonjour,
malheuresement, il n´y a pas vraiment de facon simple pour importer des objets lorsque l´on est novice.
La premiere etape est de sauver l´objet 3D cree par le logiciel d´infographie dans un format que l´on sais lire.
Puis dans le code du jeu, lire le fichier pour le transformer en elements comprehensibles par OpenGL : Liste de vertexs, materials, texutres ...

Il y a peut etre sur le net des libraires concue pour importer des fichiers generés par ton logiciel d´infographie, une recherche sur google va s´imposer. Dans le cas contraire il te faudra au moins cree ta propre librairie d´importation, et au pire l´exportateur aussi.
Rien que du bon quoi !
Je te conseil tout de meme Blender, il te permettera de cree tres facilement un exportateur (via Python) histoire de faire un format de fichier facile et adapté.

Du C++, de la 3D, quoi de mieux pour progresser ?

alex6891
alex6891
Niveau 10
27 août 2005 à 10:34:57

Merci Kouic

C´est vrai que ça reste très flou pour moi et c´est rageant parce que je pourrais faire quelque chose, sachant que j´ai des notions en programmation !

JeanYvesYves
JeanYvesYves
Niveau 10
27 août 2005 à 12:31:11

alex6891 > si ton écran reste noir pendant le 2e tuto, c´est peut etre parce que tu as des problemes avec la VRAM : essaie de modifier le code pour mettre l´image en RAM.
Ou alors trace le probleme : tu dois avoir un LoadImage qui te renvoie NULL
Qui sait, peut etre as tu simplement oublié de mettre toutes les images appelées dans le bon répertoire ?

Pour l´importation des modeles 3D : comme te dit Kouic, il te faut un format que tu connaisses.
Quel format veux tu importer ? quelle est l´extention de tes modeles que tu souhaitres importer ?

Sois sur que les lib existent !
Sinon,
- si tu es capable de me dire quel modele tu veux importer (extention, et si tu as des exemples a m´envoyer bien bien)
- si tu me trouve le codage de ce type de fichiers (codage clair)
- si j´ai le temps et la patience

peut etre que je me ferai une petite classe de récupération pour tester (ce serait sympa a mettre sur mon site ça)

on verra...

alex6891
alex6891
Niveau 10
27 août 2005 à 14:25:12

Oui ça me ferais plaisir de participer à ton site JeanYvesYves :)

En fait le truc c´est que je ne connait pas encore de façon définitive le format que je veux importer (j´entends par là que si mon pote travaille sous 3DsMax l´export peut sans doute se faire sous plein de formats différents : une préférence pour l´un d´eux ?. ..)
Sous Blender (je n´ai moi-même pas 3DsMAX) les formats d´export sont .ase et .obj après le mieux serait d´avoir l´avis d´une personne qui a déjà procédé de cette façon pour créer un jeu histoire de savoir quel format choisir et pourquoi le choisir lui plutôt qu´un autre...

alex6891
alex6891
Niveau 10
03 octobre 2005 à 13:48:20

Du nouveau :
Avec mon ami, on a testé plusieurs format d´export à partir de 3DSMax et le format ASE est lisible (avec un simple éditeur de texte.) A partir de ça, comment faire pour "intégrer" tout ça dans un univers créé avec la SDL en C++ ?

N´importe quelle piste serait la bienvenue...

LGV
LGV
Niveau 28
03 octobre 2005 à 14:20:20

il te faut parser les fichiers pour y lire les infos dont tu as besoin (i.e. sommets, faces, listes de triangles, voisinnage, normales, texture mapping, et tout le reste, comme les bones pour les animations, etc.)
Tu peux alors stocker ces infos dans des structures de donnees propres a ton programme ; une fois que tu as la geometrie et les materiaux, il n´y a qu´a generer des flux de donnees intelligibles par l´API 3D que tu utilises (en gros, tu vas iterer sur tes donnees et faire des glVertex3f et autres commandes a tout bout de champs)

commence par un truc simple : geometrie basique (i.e. sommets et listes de triangles seulement), et complexifie au fur et mesure, en fonction de ce dont tu as besoin dans ton programme

alex6891
alex6891
Niveau 10
13 novembre 2005 à 09:59:12

J´ai récemment entendu dire (mais je n´en ai pas eu la preuve) qu´on pouvais importer directement un modèle de 3DSMax avec l´extension .mesh dans du code (en utilisant le moteur 3D Ogre)

Est-ce que certains peuvent confirmer ?

Merci

gollumkawder
gollumkawder
Niveau 10
13 novembre 2005 à 14:08:10

Je confirme.
Actuellement:
Entity *ent1 = mSceneMgr->createEntity( "Robot", "robot.mesh" );

Crée l´entité et charge le mesh robot.mesh
Mais oui il faut bien sûr utiliser les librairies d´Ogre3D. (Lesquelles contiennent sûrement un parser/loader de mesh fait a la mano).

Un ´tit check du manuel pour voir ?
http://www.ogre3d.org/docs/manual/

gollumkawder
gollumkawder
Niveau 10
13 novembre 2005 à 16:20:23

Mwarf, en fait c´est vrai mais pas exact.
Il est écrit quelque part dans la doc que les mesh sont préloadés depuis ExampleApplication.h qui est le header qu´on indique au préproc. Donc a priori la création d´entité et le loading du mesh est l´affaire d´une autre fonction ailleurs.
Toujours est-il que la méthode dans ExempleApplication.h semble charger toutes les ressources situés au path précisé dans le fichier de conf. Lequel ramène au folder des meshes..
Bref, peut etre que placer le mesh voulu dans ce folder, puis appeller le nom via la fonction de création d´entité fonctionne, mais ça peut aussi etre une affaire différente ou une methode est bien distincte pour loader un mesh, chose que je n´ai pas vu puisque c´est probablement dans un autre header attaché a ExempleApplication.h et que je vais pour l´instant pas explorer toute l´API..

=/

tomtomclancy
tomtomclancy
Niveau 9
13 novembre 2005 à 17:47:56

Si tu veux juste importer des object 3D sous openGL j´ai une classe CMesh a te proposer, c´est une classe qui load et affiche un mesh au format .x

alex6891
alex6891
Niveau 10
14 novembre 2005 à 15:05:57

Oui tomtomClancy ça m´interesse.

...mais c´est quoi le format .x ?

Lapintade
Lapintade
Niveau 30
14 novembre 2005 à 15:09:37

C´est le format des exemple directX me semble il non ?

tomtomclancy
tomtomclancy
Niveau 9
14 novembre 2005 à 16:38:45

oui c´est aussi le format des mesh de directX, mais c´est un format generique qu´on utilise.

deepExploration te converti tes .3ds en .x

tomtomclancy
tomtomclancy
Niveau 9
14 novembre 2005 à 16:40:19

autant pour moi ruffi viens de me rappeler que la fonction c´est pour loader les .3ds et non .x :hum:

LGV
LGV
Niveau 28
14 novembre 2005 à 20:01:26

le format .X est entierement documente (et facilement extensible) dans la doc du SDK DirectX ; ecrire un parser autre que celui fournit ne presente pas de difficulte, seulement un peu de temps.

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment