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

Programmation en C++ avec DirectX 8.1

Tidus_Prog
Tidus_Prog
Niveau 3
01 décembre 2003 à 14:56:58

Voila, j´ai deux questions consernant mon moteur 3D que je code actuellement.

1) Comment dois-je faire pour charger un niveau que j´ai créé sous 3DS Max5 ? Dois-je le considérer comme un mesh? Mais, ça risque pas de faire un mesh un peu gros?
Dois-je découper le niveau? Comment?

2) Comment faire pour charger des animmations qui ont aussi étés créés sous 3DS Max 5 ?
Est-ce que ce sont des sprites?
Quel est la fonction pour les charger?

Merci beaucoup et félicitation à celui qui arrivera à répondre à mes questions car je galère depuis un bon boût de temps !

JeanYvesYves
JeanYvesYves
Niveau 10
01 décembre 2003 à 16:23:36

1)
Tout dépend du format que tu exportes. Je ne connais pas bien les formats de sortie de 3DS. tu as un menu pour faire des macros d´exportation, donc pour définir toi meme la struture de tes fichiers de sortie.
Je te conseille de prendre un format dans lequel tu auras un vertex_array, et la liste des indices des triangles.
Tu les récuperes en faisant une classe a la rigueur ( j´ai pas encore implémenté ça, mais C ce qu´il faut faire)

Si tu consideres le monde en entier, en effet, ce sera trop gros : pas question, a chaque frame de redessiner TOUT le monde. Dessine uniquement ce qui apparait dans le frustum de la caméra.
Dois je le découper ? --> oui.
Comment ? Octree :

Une bonne technique est l´octree :
en gros, imagine ton monde comme un cube : tu coupes ce cube en 8 ( en considérant le milieu de chaque coté), et tu continues a couper récursivement jusqu´a ce que tu aies un petit nombre de triangles dans chaque cube. Le résultat est rangé dans un arbre. Ainsi tu n´affiches que les cubes qui sont visibles dans le frustum de la caméra.
( recherche " Octree" sur le net)

2)
ça dépend du format des sortie de 3DS.
A toi de faire une classe qui gere un objet ( avec un vertex array et des triangles)
A toi de faire un bon constructeur qui charge le bon format.
Apres, a toi de voir si le format de fichier stocke plusieurs animations de ton objet, de définir si une instance de ta classe gardera qu´un seul objet immobile, ou alors une liste de toutes les animations, a toi d´interpoler les animations pour gagner en fluidité.

Sprite ? Si on veut
Fonction pour les charger ? Refais en une toi meme, ou alors trouve en une toute faite : cherche dans la doc de DirectX ( moi j´utilise OpenGL donc je ne sais pas pour DX)

Voila, en espérant avoir pu un peu t´aider !

maskware
maskware
Niveau 8
01 décembre 2003 à 17:13:47

Je repond juste a la 1ere question : ca depend de l´architecture de ton moteur 3D. Penses bien que si tu charges tout dans un seul mesh, tu ne pourras pas y appliquer ensuite des parametres specifiques, pour gerer les events ou la physique par exemple. L´ideal c´est d´utiliser 3DStudioMax pour construire des petits " bouts" de niveaux, des static meshes ( si tu n´a pas de librarie pour charger les 3ds y´en a une ici www.levp.de/3d/3ds/ en BSD), de les convertir pour les exporter sous ton format proprietaire ( suffit d´ecrire les vertices, texture coordinates etc...), et apres de les recharger dans ton propre level editor. Ca parait casse noisettes d´en faire un, ( ca l´est un peu au debut) mais tu seras pas coincé quand tu devras creer la partie " jeu" de ton application. Tu peux utiliser les MFC, GTK ou FLTK pour faire ton editeur mais tu peux aussi utiliser cette petite librarie, construite en surcouche de glut : http://www.nigels.com/glt/glui/. Elle est assez restreinte mais elle est ultra simple a utiliser, et contient plus qu´il n´en faut pour faire un editeur de niveau. Maintenant t´es pas obligé de passer par là mais penses des maintenant a comment tu va gerer ton jeu et ses entités pour pas te retrouver coincé avec un bete loader qui charge un fichier . 3ds et ou la camera peut tourner autour ; )

Lightness1024
Lightness1024
Niveau 10
01 décembre 2003 à 17:31:48

faut faire du parsing.
( pour débuter faut utiliser l´exportation ASCII)

mais tu n´es pas pret d´arriver a refaire le rendus des B-spline et autres animations smoothées ( key-based) de 3D studio.

Tidus_Prog
Tidus_Prog
Niveau 3
02 décembre 2003 à 10:30:48

Merci beaucoup.
Je vais essayer la technique de JeanYvesYves, elle m´a l´air intéressante.
Au fait JYY, pourquoi utilise tu Open GL?
Est-ce mieu que DirectX?
Tu utilise Maya pour modéliser en 3D?

JeanYvesYves
JeanYvesYves
Niveau 10
02 décembre 2003 à 16:21:04

j´utilise OpenGL car c´est portable Linux/Windows, et qu´a la fac, on nous impose Linux...

Mais sinon, DirectX et OpenGL, ça se vaut... au niveau moteur 3D ! !

Car DirectX contient un moteur 3D, mais aussi d´autres trucs comme DirectInput, DirectPlay, DirectSound, etc...
OpenGL n´est lui QUE pour le graphisme ( mais il existe bien d´autres trucs pour s´occuper du reste)

Je ne modélise pas des masses, de temps en temps 3DS max, mais je ne fais pas trop de modeles, tout en bourrin sous GL directement ( je sais c´est pas bien...)
J´ai déja fait ma classe pour importer les textures cependant, a mon format a moi.

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