DirectX et VB

Bonjour,

Voilà, je me suis mis a la prog DirectX 8 en VB6. Ca marche sauf que j’ai un bug graphique très bizzare. J’ai un objet (en l’occurence un croiseur imperial de starwars, stocké dans un .X avec les textures). Ma camera demarre a l’interieur du croiseur et avec les touches directionnel (WSAD, sur clavier QWETZ) je fais bouger la camera jusqu’a la faire sortir du croiseur. A ce moment, des trainée apparaissent partout, mais disparaisse dès que je rentre dans le croiseur. Si c’etait un problème d’algo, j’aurais les trainée tout le long au moindre deplacement, mais elle n’apparaisse que quant je sors du croiseur (donc une histoire avec le fond, ou la profondeur de vue, ou un effet de miroir qui sors de je ne sais ou)

Si qqun connais DirectX et VB et que mon problème lui semble clair, ca m’aiderais.

PS: je peux mettre le listing du code, mais ca va faire beaucoup de page, alors j’attend que vous me le demandiez avant de le mettre.

Simple: tu n’as pas d’environnement box (le cube tres grand avec un fond étoilé, des nuages ou que sais je d’autre), et tu ne fais pas de clear du back buffer (le truc dans la mémoire vidéo qui stocke l’image). Donc forcément il va rester a chaque frame, le reste des anciennes images vu que tu n’as pas nettoyé le backbuffer et que t’as pas d’environnement box.

Si tu avais un environnement box, tu n’aurais pas ce problème vu que toute ton image est remplie au pire, par l’environnement box. En fait quand tu est dans le croiseur, c’est le croiseur qui fait office d’environnement box, donc le probleme ne se pose que quand tu sors dudit croiseur…

J’espère avoir été assez clair :stuck_out_tongue:

Rien a ajouter :stuck_out_tongue:
En gros, DirectX ne re-dessine que la partie de l’ecran qui n’est plus ‹ valide ›.
Dans ton cas, ce qui est hors du vaisseau n’est pas defini, donc jamais ‹ invalide ›.
D’ou la box de Perecil, equivalent 3D du background en direct draw.

Ok, j’ai capter, je vais retester et je vous tiens au courant. Merci pour ces quelques pistes.

Je doutais un peu de moi, vu ma connaissance pas énorme en DirectX… :stuck_out_tongue: mais visiblement, si KiniK confirme, j’ai plus confiance, la :stuck_out_tongue:

Chouette, maintenant que j’essaye de resoudre le problème (en fesant un .clear avant de rendre l’anim), j’ai une erreur d’automation. Bon, je croit que je vais recoder un mini moteur 3D, histoire de tester juste l’effacement du backbuffer, et je vous redit. Parce que debugger un soft ou j’ai deja plein d’autre truc, ca va etre une usine a gaz.

C’est bon, j’ai réussi a regler le problème. En fait, il me semble que quant je fesait le .clear, je ne donnait pas de couleur de fond, donc il remplissait avec ce qui passait par la (en l’occurence un effet de degradé avec les couleurs du croiseur). Maintenant que je met le fond a noir (avec un bete vbblack), ca passe tout seul.

Sauf que maintenant (enfin, je pense que je l’avais avant aussi, mais il etait moins “visible”), j’ai un effet de transparence des faces visibles (je vois que les faces de “derniere” et pas celle de devant).

Mais je suis content, j’arrive a me balader avec ma camera autour du croiseur (bon, y a des bug de collision et de deplacement, mais le principe fonctionne).

Bien content de voir des geeks qui se font plaisir avec ca :stuck_out_tongue:
Ca me fait penser, je suis en train de coder un media center en C#/dx9.
Si y a des motives pour participer… :stuck_out_tongue: