[DirectX] Problème de couleurs qui changent à tout bout de champ avec DirectX SDK

Le côté programmation du développement d'un jeu vidéo.

Problème de couleurs qui changent à tout bout de champ avec DirectX SDK

Messagepar WormsParty » 16 Jan 2006, 21:00

Je programme un début de jeu en 3D avec le SDK de DirectX 9, et mais dès que j'ai mis en place plusieurs éléments dans mon décors un effet étrange s'est installé sans que je le veuille : la "couleur à laquelle virenz les objets dans l'ombre" change...
Des fois c'est rose, des fois c'est jaune, des fois c'est normal, des fois c'est vert... la couleur change suivant l'action que je fais comme changer la résolution d'écran ou appuyer sur une touche... même en enlevant ou en ajoutant une variable la couleur change...étrange non ? j'ai mis une copie d'écran des différentes couleurs ici :

http://mypage.bluewin.ch/WormsParty/couleur.JPG

ce serait bien si je pouvais résoudre ce problème rapidement ^^
WormsParty
Hello World, I'm new !
 
Messages: 10
Inscription: 11 Déc 2005, 02:19

Messagepar Loulou » 16 Jan 2006, 22:40

Une variable non initialisée ? Un dépassement ?

Pour être certain qu'il ne s'agit pas d'un erreur avec DirectX tu peux déjà activer le debug runtime et voir ce qu'il te dit.
Loulou
Hello World, I'm new !
 
Messages: 702
Inscription: 10 Avr 2005, 12:00

Messagepar grob1212 » 17 Jan 2006, 10:41

Difficile de dire sans voir le code...
grob1212
Hello World, I'm new !
 
Messages: 277
Inscription: 13 Avr 2005, 15:12

Messagepar Atréides » 17 Jan 2006, 10:56

Si tu décales un pointeur d'un byte, cela peut mettre du rouge sur du vert, du vert sur du bleu et du bleu sur l'alpha...
Souvent présent sur #gcn, irc.langochat.net
Site web : seuret . com (programmation, biostatistiques, CP Explo 2/1)
Avatar de l’utilisateur
Atréides
 
Messages: 1349
Inscription: 13 Mar 2005, 13:12
Localisation: Suisse

Messagepar WormsParty » 17 Jan 2006, 19:09

c'est assez bizarre...
je suis allé regarder dans le matériel que j'utilisait sur les objets.

D3DCOLORVALUE white = { 1.0f, 1.0f, 1.0f, 1.0f };
D3DMATERIAL9 material;
material.Diffuse = white;
pd3dDevice->SetMaterial(&material);

j'enlève tout ce code et laisse les matériaux par défaut :
la matrice au sol est de couleur parfaitement brune comme elle doit normalement l'être, et le cube est tout noir...

comment donc initialiser correctement un matériau pour que ça fonctionne sans déagréments ?
WormsParty
Hello World, I'm new !
 
Messages: 10
Inscription: 11 Déc 2005, 02:19

Messagepar grob1212 » 25 Jan 2006, 10:48

[quote="WormsParty"]c'est assez bizarre...
je suis allé regarder dans le matériel que j'utilisait sur les objets.

D3DCOLORVALUE white = { 1.0f, 1.0f, 1.0f, 1.0f }]

Et les autres champs de la structure D3DMATERIAL9, ils sont correctement initialisés ?
grob1212
Hello World, I'm new !
 
Messages: 277
Inscription: 13 Avr 2005, 15:12

Messagepar WormsParty » 26 Jan 2006, 21:34

C'est bon j'ai résolu mon problème.
En tapant :

material.Diffuse.r = 1.0f;
material.Diffuse.g = 1.0f;
material.Diffuse.b = 1.0f;
material.Diffuse.a = 1.0f;

ça marche parfaitement. Je peux continuer mon projet ^^
( maintenant il me faut un scénario.... mais ça c'est une autre histoire ^^ )
WormsParty
Hello World, I'm new !
 
Messages: 10
Inscription: 11 Déc 2005, 02:19


Retourner vers Programmation

Qui est en ligne

Utilisateurs parcourant ce forum: Yahoo [Bot] et 27 invités

cron