DirectDraw obsolète ? [C/C++][DirectX] - C++ - Programmation
Marsh Posté le 05-03-2003 à 14:16:05
c'est pas ça ddraw a fusionné avec le d3d.
j'ai jamais utilisé ddraw, mais dans l'absolu, fo certainement initialiser d3d, lancer le mode vidéo, et locker la surface, etc...
si ça se trouve y'a que la phase initialisation qui change (et encore)
Marsh Posté le 05-03-2003 à 18:26:37
Donc dois-je continuer à utiliser Direct Draw comme si de rien n'était en suivant les tutorials classiques (gamedev.net,...) ou alors dois-je me retourner vers l'API windows pure ?
Question rapidité ? DirectX je pense ?
Marsh Posté le 05-03-2003 à 18:43:14
Non a priori ddraw est bien obsolete
Cependant, pour des raisons de compatibilités, il sera toujours present dans les directX à venir.
Donc tu peux te lancer dans ddraw.
Mais a ta place je passerais direct a D3D.
Pourquoi ? :
- Parceque ca t'introduit sans difficultés particulière à la prog 3D
- Parceque ca t'offre la possibilté de profiter de D3D pour faire plein d'effet spéciaux facilemment.
D'après ce que j'ai pu voir il y a au moins 2 techniques pour faire ca :
- Le billboard(voir la demo fournit avec directX)
- L'affichage d'une texture sur une feuille (objet 3D rectangulaire d'epaisseur nulle) que tu dimensionne pour qu'elle occupe l'ecran.
Marsh Posté le 05-03-2003 à 18:55:20
Clie a écrit : Non a priori ddraw est bien obsolete |
Moi, je trouve quand même que l'OpenGL est plus facile que D3D.
Marsh Posté le 05-03-2003 à 20:17:06
le problème de la 3D utilisé pour la 2D
c'est qu'il n'y pas un rasterizer qui fonctionne
pareil qu'un autre et que parfois il
faut faire des compromis sur la précision du tracé
(ce qui n'est pas forcément génant dans les jeux 3D).
Sinon utiliser l'API 3D n'a que des avantages (à part
une courbe d'apprentissage un peu plus pentue mais
on est des "warriors" ou pas ?)
Le pipeline accélère les rotations d'angles arbitraires, les magnifications minimisations. Il accélère le mipmapping des textures (niveau de détail automatique pour les sprites). Il gère de façon native la transparence et toutes sortes de transparence l'additif, l'alpha blending, l'alpha test, le multiplicatif etc.. (à part le chroma key mais il suffit de rajouter une couche alpha). Et puis il décharge le CPU de toutes ces opérations ce qui fait qu'un jeu qui nécessitait une bête de course et une résolution mini tourne bien sur le PC de grand mère grâce à l'accélération 3D.
Bon évidemment l'autre inconvénient de la 3D sur la 2D, c'est qu'il faut un hardware compatible.. Donc si tu vises le PC de ton arrière grand mère ou un hardware embarqué (GBA, Pocket PC), il faudra utiliser les bonnes vieilles techniques.
LeGreg
Marsh Posté le 06-03-2003 à 08:57:51
legreg a écrit : le problème de la 3D utilisé pour la 2D |
Donc je pourrais me lancer à coder avec de l'API pure c'est bien ça?
Sinon je retiens l'idée de se mettre à D3D
Marsh Posté le 06-03-2003 à 10:18:03
ANTSite a écrit : |
ta question est pas tres claire, mais la reponse est a priori oui...
Marsh Posté le 06-03-2003 à 10:22:39
Ben la question est simple:
est-ce possible (pas trop lent question perf) de n'utiliser aucune librairie / com comme DirectX et de n'utiliser que les fonctions de bases de l'API, genre LineTo, FillRect,... pour faire une application 2D uniquement ?
Marsh Posté le 06-03-2003 à 10:24:42
ANTSite a écrit : Ben la question est simple: |
heuh, ca depend de ton appli...si c pour du tps real alors la non (sauf si pas trop complique), si c pour un viewer d'image (pas ex), oui
Marsh Posté le 06-03-2003 à 16:57:33
legreg a écrit : le problème de la 3D utilisé pour la 2D |
si directdraw fct a partir de direct3d comment ils font pour les textures non carrees alors ? et sans perdre de qualite aussi
Marsh Posté le 06-03-2003 à 18:57:17
Si tu affiche une surface pile poil de la taille de l'ecran avec une texture pile poil de la taille de l'ecran y pas de raison d'avoir des imprecisions.
D'ailleurs il faut surment veiller a virer antialiasing et autre..
Sinon antsit le mot que tu cherche est : GDI
C'est ca qu'il te faut est ca marcheras ptet meme sur win3.11
Tu devrais pas avoir de mal a trouver des tutos sur le net
Marsh Posté le 06-03-2003 à 21:11:21
red faction a écrit : |
hein, mais de quoi tu parles?
pourquoi direct draw fonctionnerait a partir de
Direct 3D?
De plus sur les hardwares modernes il
n'y a pas d'obligation d'avoir des textures carrees
(seulement des textures dont les dimensions x et y
sont des puissances de deux pas forcement egales)
Et quelle perte de qualite??
Bref je ne vois pas de quoi tu veux parler..
LeGreg
Marsh Posté le 06-03-2003 à 21:51:37
Clie a écrit : Si tu affiche une surface pile poil de la taille de l'ecran avec une texture pile poil de la taille de l'ecran y pas de raison d'avoir des imprecisions. |
tu oublies que le driver peut biaiser
la mapping des texels/pixels
ceci dit c'est vrai que c'est
soluble dans des cas "simples".
(et là je ne parle pas de l'effet
du mipmaping sur les textures..)
LeGreg
Marsh Posté le 07-03-2003 à 10:27:46
GDI pour faire jeu c'est ok ? De quoi parlait donc chrisbk quand il dit si c'est pour faire du temps réel alors non.. ?
Marsh Posté le 07-03-2003 à 10:28:36
ANTSite a écrit : GDI pour faire jeu c'est ok ? De quoi parlait donc chrisbk quand il dit si c'est pour faire du temps réel alors non.. ? |
du gdi. Perso pour du tps reel je suis pas convaincu mais je peux me tromper
Marsh Posté le 07-03-2003 à 13:30:28
C'est comme ca qu'etais fais certain jeu avant directX.
C'etait pas quake3 mais bon ca aller
Marsh Posté le 07-03-2003 à 15:34:07
Utilise la libSDL stp, et comme ça tu nous fait un portage Linux/MacOs/MacOsX/BeOs/Amiga facile. Merci d'avance
Marsh Posté le 05-03-2003 à 13:16:40
Salut,
Je viens de lire dans un article de GameDev.net que DirectDraw n'est plus mis à jour depuis la version 7 de DirectX et que désormais les applications même si elles n'utilisent que la 2D sont faites avec Direct3D. Donc faut-il abandonner l'idée de commencer un projet en DirectDraw ? Dans ce cas auriez-vous un lien ou autre pour programmer de la 2D uniquement avec D3D ? Pas facile de trouver de la doc la dessus! De la 2D avec D3D, c'est zarb :-) !
merci
ANT