[C/C++][DirectX] DirectDraw obsolète ?

DirectDraw obsolète ? [C/C++][DirectX] - C++ - Programmation

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

Reply

Marsh Posté le 05-03-2003 à 13:16:40   

Reply

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)

Reply

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 ?

Reply

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.

Reply

Marsh Posté le 05-03-2003 à 18:55:20    

Clie a écrit :

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.
 


 
Moi, je trouve quand même que l'OpenGL est plus facile que D3D.


---------------
iteme.free.fr | Mon feedback
Reply

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 :D ?)
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


---------------
voxel terrain render engine | animation mentor
Reply

Marsh Posté le 06-03-2003 à 08:57:51    

legreg a écrit :

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 :D ?)
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


 
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  ;)

Reply

Marsh Posté le 06-03-2003 à 10:18:03    

ANTSite a écrit :


 
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  ;)  


ta question est pas tres claire, mais la reponse est a priori  oui...

Reply

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 ?

Reply

Marsh Posté le 06-03-2003 à 10:24:42    

ANTSite a écrit :

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 ?


 
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


Message édité par chrisbk le 06-03-2003 à 10:25:03
Reply

Marsh Posté le 06-03-2003 à 10:24:42   

Reply

Marsh Posté le 06-03-2003 à 13:27:58    

Oui c'est pour un genre de jeu à la mario...

Reply

Marsh Posté le 06-03-2003 à 16:57:33    

legreg a écrit :

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 :D ?)
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


 
si directdraw fct a partir de direct3d comment ils font pour les textures non carrees alors ? et sans perdre de qualite aussi

Reply

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

Reply

Marsh Posté le 06-03-2003 à 21:11:21    

red faction a écrit :


si directdraw fct a partir de direct3d comment ils font pour les textures non carrees alors ? et sans perdre de qualite aussi


 
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


---------------
voxel terrain render engine | animation mentor
Reply

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


---------------
voxel terrain render engine | animation mentor
Reply

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.. ?

Reply

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

Reply

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

Reply

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 :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed