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

DirectX Discussion :

Quel style de DirectX pour un jeu 2D ?


Sujet :

DirectX

  1. #21
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par défaut
    Avec DirectDraw, on peut creer des surfaces en mémoire système, et u utilie le dma, ce qui ne bloque pas le processeur. Si tu n'a pas optimisé DirectDraw pour ton application, il n'y a la rien d'etonant...

    P.S. Quelques ms pour le processeur ou pour la carte vidéo ?

  2. #22
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par défaut
    y parait que si j'utilise DirectGraphics, ca va etre la merde pour le redimensionement de la texture parce qu'il va faire des mimaps, ca va bouffer du temps de calcul pour ien, et de la mémoire, et en plus ca va pas etre joli. C'est vrai ? (en plus ca marche que pour les cartes 3d qui prennent des textures superieures à 512*512)

  3. #23
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Pour les niveaux de mipmapping, tu peux dire à D3D de ne pas les créer avec un simple flag lors de la création de la texture.
    (en plus ca marche que pour les cartes 3d qui prennent des textures superieures à 512*512)
    Non non, normalement aucun rapport
    Mais tu vois, DGraphics a l'air d'être vraiment la meilleure solution. Le tout c'est de savoir quoi utiliser et comment faire le rendu.
    Question : tu vises quelle config mini pour faire tourner ton émulateur ?

  4. #24
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par défaut
    200 MGHz, pas de carte 3d. C'est le minimum. Mais ca dépend de ce que l'on veut émuler. J'ai du mal a etre convaincu pour DirectGraphics. Quelle methode il va utiliser pour redimensionner la texture ?? Moi ce que je veux comme motion blur, c'est juste une image intermediaire intercallée, et j'ai l'impression que DirectGraphics ne le gère pas (du moins ce qu'il appelle Motion Blur, lui c'est une trainée toute moche que j'ai pu voir dans un sample)

  5. #25
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Si tu veux que ça tourne sur de simples cartes graphiques c'est deja + chaud... (en + ça fait des années que les cartes seulement "2D" ont disparu, sauf dans les fac et lycées )
    A mon avis, sans accélération 3D, t'auras pas de texturage ni de rendu de primitive, faudra tout faire en software. Donc tes effets du genre motion blur, faudra que tu les fasses toi meme avec simplement de la manipulation de surfaces. Enfin tu vas avoir beaucoup de mal si tu ne comptes pas gérer la moindre accélération 3D...

  6. #26
    Nouveau candidat au Club
    Inscrit en
    Mai 2003
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 2
    Par défaut
    Il faut évidement un minimum de support 3D sur la carte video...
    Les resizes sont fait en bi-linéaires.
    Ce qui est bien aussi, c'est que le rendering peut se faire en sub pixels aussi. (les positions sont en coordonées float)

    Pour le motion blur, il suffit de renderer la même image plusieurs fois avec un petit décallage dans le temps et les mixer ensembles; via pixel shaders ou le blending.

    Maintenant, faut pas confondre motion blur et un effet de trainée sur plusieurs frames.

    Pour les resizes, j'ai testé DX (avec mipsmaps) contre AfterFX, et sur une carte récente, la version DX est nettement plus smooth. (After a tendance à faire de l'aliasing). Assez étonnant... j'aurais juré que after ferais mieux... C'est probablement lié au mipmaps.

    Pour la taille des textures, il en plus possible d'utiliser les modes habituels 256, 16 et 32 bits, mais aussi les formats de textures compressées. (ex: DXT1 fait du 8:1) Ce qui n'est pas disponible sour DD.
    Il est généralement aussi possible de faire des texture repeats ou mirroirs avec un simple flag.
    Mais de nouveau, faut vérifier quelles cartes supportent ces fonctions...
    En tout cas, quand on crée le mesh 3D pour la texture 2D, on y indique des coordonées de la texture, donc rien n'empèche de faire des petits carrés avec des coordonées vers des zones variables de la texture 2D. C'est très simple à faire.

    Aussi gare aux overlays qui ne sont pas supportés par toutes les cartes...

  7. #27
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par défaut
    L'alpha blending et le bilinear filtering sont des fonctions 2d... Donc pas besoin d'acceleration 3d ded ce coté la normalement. C'est DirectX qui appelle motion blur la trainée. Il y a un sample Direct3d (qui dit utiliser le motion blur) qui fait une salle trainée toute moche et qui ne ressemble pas du tout a du motion blur.

    Le problème avec DirectX+Mimap, c'est que bien sur je veux agrandir mes images, mais il se peut que je veuilles aussi les reduire. Si je lance eun jeu (Duke Nukem par exemple) en 1600 * 1200 j'aimerais qu'il soit affichable en 1024 * 768. Pour revenir au problème que je n'ai pas encore énoncé, c'est qu'il parait qu'avec DirectX + Mipmap l'image est trop reduite puis agrandie, il me semble de sorte que la taille de l'image reduite soit un multiple de la taille initiale.

    Euh, l'effet miroir ca srt a quoi pour un émulateur ?

  8. #28
    Membre averti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 26
    Par défaut
    Bon faut arreter là lol,

    Il est EVIDENT que faire de la 2D avec DirectXGraphics est plus RAPIDE que de faire de la 2D avec DirectDraw pour la simple et bonne raison qu'en faisant de la 2D avec DGraphics ont bénéficie de l'accélération MATERIEL 3D et l'AGP et des dernières technologie des nouvelles cartes graphiques, ce qui n'est pas le cas dans DirectDraw.

    Un exemple simple, essayez de faire de l'alphablending sur une image de 800*600 en DirectDraw puis avec DirectXGraphics.
    Non seulement que c'est plus compliqué avec DDraw car il faut faire sois même la fonction de manipulation des pixels pour faire cette effet de semi-transparence (Alpha-Blending) et de ce faite c'est SOFTWARE et donc archi lent, DirectXGraphics permet de faire cette effet directement via le matériel en appliquant une couche alpha sur ta texture et c'est plus simple d'utilisation.

    Cependant, il est vrai que de faire du DGraphics en utilisant l'interface ID3DXSprite c'est pas la meilleur chose a faire, la meilleur solution est l'utilisation d'un quad (défini par 4 vertices) qui recouvre la surface de l'écran et dont on applique une texture, on désactive la lumière de D3D sinon on ne vera rien, et faut pas oublier de créer une matrice ORTHOGRAPHIQUE et non une matrice Field of View (perspective) (a moins qu'on ne veuille faire de la 3D en meme temps).
    Dans ce cas alors il faut utiliser des vertices 4D avec un RHW (Reciprocal Homogeneous W) à 1.0 et un Z de 0.0 (ou supérieur).

    Mais bon je m'arrête là j'ai pas poster pour vous faire un tutoriel sur commnt faire de la 2D convenablement avec DirectXGraphics mais tout simplement pour vous dire que DGraphics est, sans l'ombre d'un doute, supérieur à DirectDraw.

    Voilà, sur ce, a la prochaine


    PS : La dernière version de DirectDraw a été faite avec DirectX7, la dernière version de DirectXGraphics est jusqu'a présent toujours mise à jours avec les nouvelles version de DirectX ce qui permet une gestion des nouvelles technologies qui apparaissent entre les version de DirectX.

    PS2 : je sait que c'est un peu tard pour répondre mais ne dit on pas :
    " mieux vaut tard que jamais ?"

  9. #29
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par défaut
    Merci de m'avoir définitivment convaincu d'utiliser OpenGL...

  10. #30
    Membre averti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 26
    Par défaut
    La solution de facilité n'est pas toujours la meilleur

  11. #31
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par défaut
    Je ne dirais pas facilité... je dirais... voyons... la liberté non ? et puis, la portabilité ? la performance ? ou alors le fait qu'OpenGL est toujours deux ou trois année d'avance sur Direct3D ?

  12. #32
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Pitié, pas de troll sur Dx vs OpenGL...

  13. #33
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par défaut
    J'ai pu constater à plusieurs reprises loulou, que tu n'avais assez peu de lecons a donner de ce coté là...

  14. #34
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Effectivement, d'ailleurs c'était pas le but, je voulais simplement éviter une n-ième discution sans fin.

  15. #35
    Membre averti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 26
    Par défaut
    Citation Envoyé par Blustuff
    Je ne dirais pas facilité... je dirais... voyons... la liberté non ? et puis, la portabilité ? la performance ? ou alors le fait qu'OpenGL est toujours deux ou trois année d'avance sur Direct3D ?
    Faut que t'arrete de raconter des conneries genre 'OpenGL est meilleurs que DirectX' et de plus que ce soit les performances d'OpenGL ou de DirectX je ne pense pas que l'un des 2 te soit un facteur limitant dans ta conception de projets

    Je dit pas que DirectX est meilleur que OpenGL, mais ... il n'a rien du tout a envier à OpenGL, déjà DirectX est une API COMPLETE contrairement à OpenGL mais je n'irai pas plus loin.

    Pour moi ce débat est clot

Discussions similaires

  1. Quel(s) langage(s) pour un jeu multijoueurs ?
    Par x0s__ dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 06/08/2014, 18h23
  2. Quel composant utiliser pour un jeu de cartes?
    Par Soilwork dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 11/03/2008, 23h03
  3. Quels revenus pour un jeu vidéo?
    Par gamerome dans le forum Projets
    Réponses: 26
    Dernier message: 24/01/2008, 17h16
  4. Quel moteur pour un jeu de combat spatial?
    Par DindonSauvage dans le forum Moteurs 3D
    Réponses: 6
    Dernier message: 31/10/2007, 10h04
  5. Réponses: 7
    Dernier message: 12/10/2006, 01h23

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