IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Moteurs 3D Discussion :

Questions sur les apis


Sujet :

Moteurs 3D

  1. #1
    Membre régulier
    Inscrit en
    Août 2008
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 83
    Points : 76
    Points
    76
    Par défaut Questions sur les apis
    Bonjour !

    J'ai quelques questions sur les APIs DirectX et OpenGL :

    - J'aimerais savoir avec quel API ont-ils développé ce jeux : http://www.projectoffset.com/
    Est-ce OpenGL ou DirectX? J'ai beau cherché je ne trouve pas (peut-être ont-ils jamais communiquer l'info aussi^^)

    - J'ai vu que le SDK dx11 est disponible. Comment peut-on programmer un moteur sur dx11 alors que les GPU "compatibles" dx11 ne sont pas sorti?

    - Enfin, comme vous l'aurez surement compris, je me lance dans la création d'un moteur graphique et j'hésite sur l'api à utiliser pour celui-ci. Ma question est d'ordre plus générale: Quel niveau de connaissances mathématiques faut-il posséder pour espérer réussir une telle entreprise?

    Merci beaucoup !

  2. #2
    Membre régulier

    Profil pro
    Inscrit en
    Juin 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 92
    Points : 115
    Points
    115
    Par défaut
    Salut,

    les connaissances mathématiques à avoir ne sont pas le plus gros problème. Car d'une part, une grosse partie du coté mathématique est géré par l'API, et que d'autre part, les aspects mathématiques dans un moteur 3D sont bien connus, et tu pourras trouver des tutoriaux expliquants leur fonctionnement et leur application algorithmique sur le web.

    Je pense que le plus dur dans un tel projet, c'est la maitrise de l'api, ainsi que la compréhension de tous les concepts liés à la programmation 3D.

    Essayes tout dabord de comprendre comment fonctionne un moteur 3D avant de te lancer dans l'aventure, pour cela, commence par en utiliser, pour en comprendre le fonctionement d'un point de vue externe, puis consulte les sources des nombreux moteurs open sources disponibles sur la toile afin d'en comprendre le fonctionement d'un point de vue interne cette fois-ci.

    Pour ce qui est du choix de l'api, cela dépends surtout de la plateforme visé. Si c'est du windows only, je te conseillerais DirectX. Oui, certe OpenGL fonctionne a la fois sur Windows, Mac, et Linux, mais si 90% des jeux PC utilisent DirectX, c'est qu'il y a surement une raison. Si tu recherches la cross-plateformité avant, tout, c'est OpenGL, par contre, il n'y a pas trop le choix là.

    Bonne chance dans ton projet.

  3. #3
    Membre régulier
    Inscrit en
    Août 2008
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 83
    Points : 76
    Points
    76
    Par défaut
    Merci beaucoup pour ces précisions. J'ai déjà pas mal utiliser Ogre mais je continue à chercher des infos sur le fonctionnement d'un tel moteur, c'est compliqué mais intéressant !

    Mais est-ce possible d'arriver un tel projet seul? Et quel sont les possibilités de résultat?

  4. #4
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    Citation Envoyé par ApheX2 Voir le message
    - J'aimerais savoir avec quel API ont-ils développé ce jeux : http://www.projectoffset.com
    As-tu regardé dans leur forum ? Apparemment c'est une solution hybride comme Irrlicht 3d

    http://www.projectoffset.com/forums/....php?f=9&t=543

    - J'ai vu que le SDK dx11 est disponible. Comment peut-on programmer un moteur sur dx11 alors que les GPU "compatibles" dx11 ne sont pas sorti?
    La programmation GPU pour moi c'est un concept avancé.
    Sais-tu comment faire ne serait-ce que pour charger un objet 3d , placer des lumières et la caméra, faire un éditeur de scène ?

  5. #5
    Membre régulier
    Inscrit en
    Août 2008
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 83
    Points : 76
    Points
    76
    Par défaut
    Citation Envoyé par Mat.M Voir le message
    Sais-tu comment faire ne serait-ce que pour charger un objet 3d , placer des lumières et la caméra, faire un éditeur de scène ?
    Non, c'est pour ça que je pose des questions.

    Je suis toujours passer par un moteur comme ogre, j'ai jamais toucher au api dx ou opengl directement (enfin opengl si, pour dessiner des ptits cubes).

  6. #6
    Membre régulier

    Profil pro
    Inscrit en
    Juin 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 92
    Points : 115
    Points
    115
    Par défaut
    Oui, c'est possible de réaliser un moteur 3D tout seul, mais c'est très long.
    Après tout dépends du niveau de qualité que tu te fixes. Si tu veux concurencer le CryEngine2, il est évident que tu n'y arrivera pas tout seul, mais pour réaliser un petit moteur contenant toutes les fonctionalités basiques ( heightmaps, gestion de la scène, affichage de models, éclairages, etc... ), beaucoup en ont déja réalisés seul.

    Pour ce qui est de directX11, le sdk actuel ne contient qu'une démo il me semble, l'api n'est pas encore totalement disponible. Je crois qu'il sortira complétement en même temps que Windows 7 ( peut être un peu avant ). Et pour ce qui est des cartes graphiques compatibles DX11, idem, en même temps que Windows 7. Donc il faudra que tu attendes quelques mois. En attendant, tu peut toujours te documenter sur les moteurs et les apis déja éxistants, DX11 bien qu'apportant son lot de nouveautés, restera dans la continuité de DX10.

    Comme le dit Mat. M, tu peux toujours réaliser un moteur compatible DX et OpenGL, mais je trouve que cette abstraction rajoutes une complexité qui n'est pas nécessaire pour un débutant.

    Au fait, penses à consulter les tutos de developpez.com, ils sont en français, et il en existe un sur la création de moteur 3D, de Laurent Gomila il me semble, un sur directX10, qui est la traduction des tutos anglais de msdn, et un sur OpenGL, qui est une traduction aussi. Après, si tu n'as pas de mal avec l'anglais, le champs de connaissance devient beaucoup plus vaste, et il existe plusieurs livres parlant de la création de moteur 3D, ce qui a mon avis sera une aide très précieuse. Sans compter les nombreux livres sur DirectX et OpenGL.

  7. #7
    Membre actif

    Inscrit en
    Février 2009
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 200
    Points : 235
    Points
    235
    Par défaut
    Je confirme que Direct11 est l'Api typique de Seven (Window 6 !). Des cartes prévues pour existent (les prix baisseront, pour le moment largement prohibitifs !!!) et des informations sur DirectX11 sont disponibles via le canal client de Microsoft.
    Ceci dit, cela ne remet pas en causes les fondamentales de ton problème .

    Pour OpenGL, je te rappelle que c'est à la base un consortium dont la plupart des acteurs importants se sont retirés (Open Source, certes, mais il faut des gros sous quand-même, ce qui explique les "trous" dans les périodes de MAJ d'OpenGL).
    Parmi ceux qui se sont retirés, il y a évidement Microsoft puisque sa technologie est maintenant mûre et complètement autonome.

    Il faut savoir que ces Api s'appuient sur WDM et WDDM (les formats de drivers, donc de l'électronique) qui sont des formats "imposés" par Microsoft... OpenGL sera donc toujours suiveur à ce niveau là et dépendant des stratégies des investisseurs (funeste cas d'OpenAL par exemple et Créative Labs... ).

    DirectX étant un ensemble d'interfaces COM (les apis ne te servant qu'à récupérer les Lp sur les structures des objets) il est donc simple de le rendre "portable" ainsi que ton moteur par la même occasion (à condition de maîtriser un minimum COM évidement mais ce n'est pas la cuvette à boire non plus).

    Le travail solitaire est toujours possible (au point de vue efficacité c'est souvent le plus rapide aussi surprenant que cela puisse paraître) mais travailler en binôme favorise le vis à vis pour l'approche stratégique et te permet de pousser les raisonnements jusqu'au bout, de les confronter etc.
    C'est donc plus long mais le rapport communication/production est le plus élevée.

    Te faire une dll entièrement en assembleur est souvent une très bonne solution (mais je crois comprendre que ce n'est pas vraiment ta culture.) au niveau des perfs et de la maintenance.
    Les temps de développement sont largement réduits puisque c'est de l'assembleur orienté objet (COM) donc en plein dedans !

  8. #8
    Membre régulier
    Inscrit en
    Août 2008
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 83
    Points : 76
    Points
    76
    Par défaut
    Merci beaucoup pour toutes ces précisions !

    Il est évident que dans un premier temps je ne souhaite pas concurrencer le cryEngine. J'ai commencer à lire quelque tutos, la théorie sur le fonctionnement basique du rendu, des textures et d'autres techniques de base (culling, lumière etc.) est presque acquis, je vais commencer à le mettre en pratique !

    Si je commence mon moteur en utilisant dx10, pourrais-je le porter facilement en dx11 quand celui-ci sortira?

    Pour la dll en assembleur, je doute pas que ça doit être rapide... Va falloir apprendre l'assembleur^^

    Sinon j'ai une autre question: Que pensez-vous de CUDA? D'après ce que j'ai compris il permet de programmer directement le GPU. Est-ce utile dans le cadre d'un moteur graphique?

  9. #9
    Membre actif

    Inscrit en
    Février 2009
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 200
    Points : 235
    Points
    235
    Par défaut
    - Pour DirectX le passage de 9 à 10 "est" était dans ton cas, le plus "compliqué" car l'initialisation différait un peu et plusieurs choses avaient heureusement évoluées. Entre 10 et 11, si tu regardes le SDK de DirectX disponible, tu verras que ce n'est qu'un prolongement de DirectX 10.
    Tu ne devrais donc pas avoir de surprises, Microsoft ne désirant pas se tirer une nouvelle balle dans le pied avec les développeurs de jeux...

    - CUDA est très bien apparemment, je n'ai pas encore testé ça de très près, mais il me semble que poser la base DirectX est, n'importe comment, le présupposé incontournable avant toute optimisation conséquente et coûteuse en nouveau temps d'appropriation (D.Small article 2).

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    124
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 124
    Points : 148
    Points
    148
    Par défaut
    Que pensez-vous de CUDA? D'après ce que j'ai compris il permet de programmer directement le GPU. Est-ce utile dans le cadre d'un moteur graphique?
    Je dirais que non.
    Les APIs tel que directx savent mieux gérer le GPU que toi, surtout que si tu ne connais pas CUDA, te lancer dedans pour un moteur 3D sans expériences c'est du suicide. Ce que je me demande, c'est ce que tu comptais faire sur un moteur 3D avec CUDA, a part la physique mais qui n'est pas directement lie au moteur 3D je ne vois pas ce que tu peux faire ? La logique de la scène ?

    Si je commence mon moteur en utilisant dx10, pourrais-je le porter facilement en dx11 quand celui-ci sortira?
    Oui ce sera simple, microsoft a dit sur son site que le meilleur moyen de développer avec directx11 est de passer de directx10 a directx11.

Discussions similaires

  1. Question sur les niveaux d'APIs
    Par BIAtos dans le forum Android
    Réponses: 2
    Dernier message: 24/03/2015, 17h03
  2. Question de n00b sur les APIs
    Par olivierpi dans le forum C#
    Réponses: 2
    Dernier message: 07/11/2013, 19h13
  3. [AJAX] Questions sur les API
    Par Nanais19 dans le forum AJAX
    Réponses: 1
    Dernier message: 27/04/2012, 17h28
  4. Question sur les handles et les couleurs...
    Par MrDuChnok dans le forum C++Builder
    Réponses: 7
    Dernier message: 29/10/2002, 08h45
  5. question sur les message box !
    Par krown dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2002, 16h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo