[D3D8] Réaliser un systeme de vues multiples

Réaliser un systeme de vues multiples [D3D8] - Programmation

Marsh Posté le 06-02-2002 à 19:25:01    

Mon application tourne en plein écran. Sur l'écran, j'aimerais que le joueur puisse voir le monde dans lequel il évolue (vue subjective), mais qu'il puisse voir aussi une jauge de vie ou une carte, placés a titre d'indicateurs quoi. C'est pour ca que je voudrais faire un systeme a plusieurs vues, car il y a plusieurs scenes.
 
J'ai d'abord pensé a faire des rendus dans des render targets pour ensuite copier ces surfaces dans mon back buffer, et ensuite présenter le back buffer a l'écran. Seulement les render targets ne marchent pas chez moi (il me renvoie INTERNALDRIVERERROR a la création).
 
LEGREG m'a dit qu'il fallait créer une deuxieme Swap Chain mais il est proclamé partout dans la doc qu'une seule chaine ne peut etre crée en full screen, mais surtout dans le cas ou deux vues se superposent, elles vont se disputer la place du dessus!
 
Voila, je bloque, si quelqu'un pouvait me ré-aguiller...je cherche depuis assez longtemps

Reply

Marsh Posté le 06-02-2002 à 19:25:01   

Reply

Marsh Posté le 06-02-2002 à 20:30:03    

bin j'ai pas essayé, mais tu as une structure D3DVIEWPORT8, et des fonctions:  
 
IDirect3DDevice8::GetViewport  
IDirect3DDevice8::SetViewport  
 
les renders targets, c ce qu'il fo faire pour du cube mapping & co..., mais là je pense que c'est ça qu'il te faut non ?

Reply

Marsh Posté le 06-02-2002 à 21:00:51    

oui les swap chains ca ne fonctionne
que si les vues sont en mode fenetre.
ca me paraissait evident desole
et j'ai stupidement lu "vues multiples".
 
D'ailleurs tu comprendras aisement pourquoi ca
ne marche pas en pleine ecran: quand tu fais
le present, le driver si il le peut
fait un simple flip des  
surfaces (qui couvrent tout l'ecran).
 
Dans ton cas, il faut rendre chaque
vue dans leur partie de l'ecran  
et faire le present a la fin
(pas la peine de rendre dans une texture).
de plus quand deux vues se superposent  
il faut au prealable effacer la partie
de l'ecran couverte par la vue que tu auras
decide de mettre en dessous (il faut faire un choix!)
et tracer la vue "superieure" apres.
 
A+
LEGREG

Reply

Marsh Posté le 06-02-2002 à 21:06:59    

Si tes objets couvrent  
toute la vue superieure
tu n'es pas oblige de nettoyer (par Clear(..) )
le tampon de couleur, il te suffit de
nettoyer le tampon de profondeur.
 
tu peux egalement vouloir des effets
ou seule une partie de la vue soit
couverte. (objet 3D flottant au dessus de la vue,
une carte en relief par exemple).
 
Tu peux egalement utiliser les tests
sur le stencil buffer pour ne pas tracer
la vue la ou elle sera ecrasee.
Bref il y a un grand nombre de possibilites.
 
A+
LEGREG

Reply

Marsh Posté le 06-02-2002 à 21:21:50    

Merci a vous deux!! Ca y est j'ai réussi! C'était bien le coup des Viewports en effet, j'y pensais meme plus a ces viewports obligatoires sous Dx7 et facultatifs sous Dx8..  :hello:

Reply

Marsh Posté le 07-02-2002 à 12:23:03    

Une (derniere?) petite question, comment je dois mettre les composantes 1;1 et 2;2 de ma matrice de projection pour que ce qui soit rendu ne soit pas stretché en fonction des dimensions du viewports? Par exemple, si j'ai un viewport qui a une forme tres aplatie, je ne veux pas que l'image dedans le soit aussi! Je voudrais que ca soit coupé.

Reply

Marsh Posté le 18-02-2002 à 16:19:51    

Desoler de poluer ton topic mais j'essaie en vain d'avoir une reponse de ta part  
j'avais poser une question sur ce topic tu m'avais repondu
que les entete tu pouvais me les donner
et je les voudrais j'en ai vraiment besoin
malheureusement mon topic est partie au oubliette
alors si tu peu aller sur mon topic poster la reponse ca serait sympa
http://forum.hardware.fr/forum2.ph [...] p=1&trash=  
 
merci
 :??:

Reply

Marsh Posté le 28-05-2002 à 09:18:39    

Ace17 a écrit a écrit :

Une (derniere?) petite question, comment je dois mettre les composantes 1;1 et 2;2 de ma matrice de projection pour que ce qui soit rendu ne soit pas stretché en fonction des dimensions du viewports? Par exemple, si j'ai un viewport qui a une forme tres aplatie, je ne veux pas que l'image dedans le soit aussi! Je voudrais que ca soit coupé.  




 
up

Reply

Sujets relatifs:

Leave a Replay

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