[DirectX] mélanger 2D et 3D

mélanger 2D et 3D [DirectX] - Programmation

Marsh Posté le 24-03-2002 à 15:28:52    

Salut,
 
Dans mon moteur3d, actuellement j'arrive à faire tourner mes objets 3D, à les diriger et à les selectionner mais il faut que j'affiche un HUD par dessus, tel que la position, diverses informations etc... C'est de l'affichage d'objet 2D.
 
Je ne sais pas quoi utiliser :
* ID3dxSprite  
* GDI et BitBlit
* Créer une facette devant la caméra
* utiliser BltFast mais c'est du DX7
 
Qqn a une idée ?


---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran
Reply

Marsh Posté le 24-03-2002 à 15:28:52   

Reply

Marsh Posté le 24-03-2002 à 15:41:27    

GDI et BitBlt tu peux laisser tomber....Il parait que c'est tres lent. Je pense que le mieux c'est de créer une facette devant la camera. Mais je peux me tromper!  :D

Reply

Marsh Posté le 24-03-2002 à 15:45:06    

Ace17 a écrit a écrit :

GDI et BitBlt tu peux laisser tomber....Il parait que c'est tres lent. Je pense que le mieux c'est de créer une facette devant la camera. Mais je peux me tromper!  :D  




 
Le problème c'est que je vais être obligé de faire un truc vilain du style, attacher une facette à la caméra alors que ma classe d'objet permet l'inverse (attacher une camera à un objet)


---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran
Reply

Marsh Posté le 24-03-2002 à 15:47:10    

Hmmmm ca crée une dépendance cyclique....mauvais ca
Pourquoi t'as besoin d'attacher des caméras a des objets?

Reply

Marsh Posté le 24-03-2002 à 16:09:36    

Ace17 a écrit a écrit :

Hmmmm ca crée une dépendance cyclique....mauvais ca
Pourquoi t'as besoin d'attacher des caméras a des objets?  




 
C'est pas une obligation mais c'est une possibilité qui sert bien pour un fps par exemple.


---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran
Reply

Marsh Posté le 24-03-2002 à 16:15:26    

Tu Fait pas les transformations géométrique sur la facette sur laquelle tu met le Hud

Reply

Marsh Posté le 24-03-2002 à 17:06:19    

en D3D tu beneficie aussi du format VERTEX_XYZRHW qui te permettra de specifier des vtx deja transformé . idéal pour un HUD

Reply

Marsh Posté le 24-03-2002 à 17:28:38    

chrisbk a écrit a écrit :

en D3D tu beneficie aussi du format VERTEX_XYZRHW qui te permettra de specifier des vtx deja transformé . idéal pour un HUD  




 
Si j'ai bien compris, ce genre de solution semble parfaitement adaptée : http://www.mvps.org/directx/articles/blit3d.htm
 
Moi ça me semblait un peu trop bidouillé mais si c'est l'usage...


---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran
Reply

Marsh Posté le 24-03-2002 à 23:06:36    

Tetragrammaton IHVH a écrit a écrit :

 
Si j'ai bien compris, ce genre de solution semble parfaitement adaptée : http://www.mvps.org/directx/articles/blit3d.htm
Moi ça me semblait un peu trop bidouillé mais si c'est l'usage...  




 
Euh, ce qui est bidouille au depart
c'est d'afficher de la 2D sur de la 3D.
De toute facon, toute la programmation graphique
c'est des trucs, des bidules assembles.
Exemple: les ombres avec le stencil buffer,
c'est bidouille de chez bidouille.
Les Glowing effect avec rendu sur une texture,
c'est vraiment pas propre..
 
Ce qui importe c'est la performance.
Donc l'integration ne se fait pas en terme
de coherence logique, mais en terme
de coherence du pipeline de rendu
et limitation des pertes.
 
Tu te rendras compte notamment que pour
afficher correctement le HUD dans des resolutions
differentes, le top c'est d'avoir une image de HUD
par resolution, c'est pas clean mais..
 
LEGREG

Reply

Marsh Posté le 24-03-2002 à 23:08:08    

Tetragrammaton IHVH a écrit a écrit :

 
Le problème c'est que je vais être obligé de faire un truc vilain du style, attacher une facette à la caméra alors que ma classe d'objet permet l'inverse (attacher une camera à un objet)  




 
pourquoi ce serait genant?
Tu peux traiter ta camera comme un objet
comme un autre dans ta scene.
Ta camera est attachee a un objet. Et un autre objet
est attachee a ta camera.. Vraiment pas de probleme, ni
philosophique ni technique.
 
LEGREG

Reply

Marsh Posté le 24-03-2002 à 23:08:08   

Reply

Marsh Posté le 25-03-2002 à 12:48:55    

legreg a écrit a écrit :

 
 
Euh, ce qui est bidouille au depart
c'est d'afficher de la 2D sur de la 3D.
De toute facon, toute la programmation graphique
c'est des trucs, des bidules assembles.
Exemple: les ombres avec le stencil buffer,
c'est bidouille de chez bidouille.
Les Glowing effect avec rendu sur une texture,
c'est vraiment pas propre..
 
Ce qui importe c'est la performance.
Donc l'integration ne se fait pas en terme
de coherence logique, mais en terme
de coherence du pipeline de rendu
et limitation des pertes.
 
Tu te rendras compte notamment que pour
afficher correctement le HUD dans des resolutions
differentes, le top c'est d'avoir une image de HUD
par resolution, c'est pas clean mais..
 
LEGREG  




 
 
Qu'est ce que tu leur reproche aux ombres stencilés ? :D
 
au fait, t'as vu la doc d'nvidia sur le shadow volume ?
Ok je sais, c pas neuf, mais en utilisant cette méthode et en la couplant avec un algo d'extraction de silhouette assez veloce (je pense a celui utilisé dans dpvs, qui m'a l'air assez sympa) on doit arriver a qqchose d'interessant (doom3 ? :D )

Reply

Marsh Posté le 25-03-2002 à 16:10:18    

Ok merci pour les réponses.
Sinon pour le coup d'attacher une facette à une camera, ça ne correspond pas à ma philosophie sinon l'univers n'est plus invariant par rapport au point de vue.


---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran
Reply

Marsh Posté le 25-03-2002 à 17:34:03    

Tetragrammaton IHVH a écrit a écrit :

Ok merci pour les réponses. Sinon pour le coup d'attacher une facette à une camera, ça ne correspond pas à ma philosophie sinon l'univers n'est plus invariant par rapport au point de vue.  




 
Oui tout depend ce que tu appelles l'univers.
Ca risque de devenir philosophique voire jesuitique
mais si tu consideres que certaines facettes de ton univers
ne sont visibles que par une camera, comme les lensflares, les facettes ajoutees pour le view-dependant LOD ou les facettes des billboards. Alors ton univers est invariant c'est juste la visibilite qui bouge :). (sans parler des lumieres speculaires,
des reflexions sur les miroirs, des hallucinations et autres mirages)  
 
LEGREG

Reply

Marsh Posté le 25-03-2002 à 18:08:39    

chrisbk a écrit a écrit :

Qu'est ce que tu leur reproche aux ombres stencilés ? :D



 
Determiner l'inclusion d'un pixel de l'ecran dans un volume
d'ombre en utilisant le stencil c'est ingenieux.
Mais l'ingeniosite et la bidouille ca va parfois bien ensemble.
 
Il y a une methode plus rapide et plus robuste je pense
c'est celle des modifier Volumes sur les cartes PowerVR.
L'avantage c'est que c'est quasiment transparent pour
le programmeur.
Par contre je ne crois pas que ce soit possible sur tout autre hardware que celui-ci (ni supporte par DirectX excepte la version CE dreamcast).
 
LEGREG

Reply

Marsh Posté le 25-03-2002 à 18:45:13    

Tetragrammaton IHVH a écrit a écrit :

Salut,
 
Dans mon moteur3d, actuellement j'arrive à faire tourner mes objets 3D, à les diriger et à les selectionner mais il faut que j'affiche un HUD par dessus, tel que la position, diverses informations etc... C'est de l'affichage d'objet 2D.
 
Je ne sais pas quoi utiliser :
* ID3dxSprite  
* GDI et BitBlit
* Créer une facette devant la caméra
* utiliser BltFast mais c'est du DX7
 
Qqn a une idée ?  




 
Tu na cas les afficher comme si c'etait des textures sur un carre ou un truc comme ca ! :hello:


---------------
!!!Achebeneute!!!
Reply

Marsh Posté le 26-03-2002 à 11:30:28    

Projection othographique (cad sans perspective). En plus ca simplifie bcp (par exemple faire un HUD avec alpha blending)
 
On ne mélange pas la 2D et la 3D, c'est gruïk, en plus d'être Mal(c)

Reply

Sujets relatifs:

Leave a Replay

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