Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1392 connectés 

 


Dernière réponse
Sujet : [C++ / DirectX 8] comment vs avez appris Direct3D
LeGreg c'est probablement a cause du backface culling qui est activé.
 
Quand tu rajoutes le vertex pour faire un carre c'est bien
de conserver les propriétés d'ordre de départ
(qui s'inversent une fois sur deux quand tu utilises des triangle strips).
 
Poste ton code ici tu verras mieux de quoi je veux parler.
 
A+
LEGREG

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
LeGreg c'est probablement a cause du backface culling qui est activé.
 
Quand tu rajoutes le vertex pour faire un carre c'est bien
de conserver les propriétés d'ordre de départ
(qui s'inversent une fois sur deux quand tu utilises des triangle strips).
 
Poste ton code ici tu verras mieux de quoi je veux parler.
 
A+
LEGREG
El_gringo ...pouf !
El_gringo et comment vous expliquez ça (g encore pas vraiement cherché, ms là je peux pas, je suis pas chez moi... c frustrant. g envie de savoir) :
Dans l'appli "minimale" que m'a généré le wizard, on avait un triangle. g voulu en faire un carré. g donc changé la taille 3*sizeof (TypeDeVertex) réservée dans le CreateVertexBuffer (ou truc du style) en 4*sizeof (TypeDeVertex). g aussi ajouté pour chaque face. Un vecteur position, et un vecteur normal (0,0,-1) pour la face(le même que pr les 3 autres vertex de face), (O,O,1) pr l'autre coté (aussi). Au final, ça me donne un carré (comme je voulais), mais du coup:
vu de face, les 3 angles qui étaient ceux du triangle de base sont très sombre, et celui que g ajouté est très éclairé.
vu de l'autre coté le carré n'apparait même pas.
Evidement, c pas forcément faisable dis comme ça. il manque plein d'éléments. Ms si qqn à une idée...
bjone

Ace17 a écrit a écrit :

Moi je l'ai, Physics for Game developers
C'est vraiment détaillé
Ca va on arrive a comprendre mais faut un peu s'accrocher quand meme. T'as pas intéret a etre allergique aux maths. :lol:  




 
oki merci.

LeGreg

El_Gringo a écrit a écrit :

 
Ouais, mais donc, d'après ça, si la lumière est - je sais plus comment ça s'appel - l'équivalent d'un point de lumière située à l'infini, ce vecteur normal ne devrait servir à rien, non ?  




 
Ton point de lumiere a l'infini ca veut juste dire que
tes rayons lumineux sont paralleles mais ils ont toujours
une direction. Et c'est cette direction (incidence par rapport a la surface) ainsi que la direction d'observation qui intervient dans le calcul de l'eclairement.
 
A+
LEGREG

LeGreg

chrisbk a écrit a écrit :

 
T&L signifie que c la carte qui prends en charge les transformations et le calcul de lumiere (bref, le CPU fait rien, la carte se depatouille toute seule)




 
nope
 
T&L c'est l'abreviation de transform and lighting
(en francais transformation et eclairage)
par opposition a la rasterisation c'etait toute la partie
du pipeline graphique qui n'etait pas prise en charge
par les cartes 3D grand public jusqu'a recemment.
(pipeline tel que defini par Silicon Graphics et OpenGL)
 
Donc recemment sont apparues des cartes PC grand public
(puisque du hardware dedie existait deja sur les stations
graphiques)  qui gerait ce fameux transform and lighting
en interne (Hardware TnL = unité de transformation et éclairage dediée).
 
Mais ca n'a qu'un lointain rapport avec ton probleme de normale..(meme si les normales sont utilisees dans le process de calcul d'eclairage mais bon..)
 
A+
LEGREG

Ace17 Moi je l'ai, Physics for Game developers
C'est vraiment détaillé
Ca va on arrive a comprendre mais faut un peu s'accrocher quand meme. T'as pas intéret a etre allergique aux maths. :lol:
El_gringo

chrisbk a écrit a écrit :

 
 
 
T&L signifie que c la carte qui prends en charge les transformations et le calcul de lumiere (bref, le CPU fait rien, la carte se depatouille toute seule)
 
Le vecteur normal sert precisement a calculer la couleur d'un vertex en fonction de la lumiere ( plus vecteur lumiere et vecteur normale "se font face" plus le point recoit de lumiere)  




 
Ouais, mais donc, d'après ça, si la lumière est - je sais plus comment ça s'appel - l'équivalent d'un point de lumière située à l'infini, ce vecteur normal ne devrait servir à rien, non ?

chrisbk

El_Gringo a écrit a écrit :

 
 
heu... T&L au fond c quoi ? Texturing and Lighting ? non, c un truc que font certaines cartes graphiques, non ?
Ouais, ms le pb c que g trouvé à aucun endroit (à part à l'initialisation) ou ce vecteur normal est utilisé. c à cause des vertex buffers, c ça ? c un flag d'une fonction qui dit qu'on précise la normale de chaque vertice dans le vertex buffer ? quel flag de quelle fonction alors ?
 
Je compte pas seulement faire aussi bien que Microsoft qd il programme, je compte faire 100 fois mieux, évidement !
Et j'espère bien que toi aussi. c la moindre des choses :D  




 
 
T&L signifie que c la carte qui prends en charge les transformations et le calcul de lumiere (bref, le CPU fait rien, la carte se depatouille toute seule)
 
Le vecteur normal sert precisement a calculer la couleur d'un vertex en fonction de la lumiere ( plus vecteur lumiere et vecteur normale "se font face" plus le point recoit de lumiere)

El_gringo

legreg a écrit a écrit :

tout ca est tres bien explique
dans la doc encore une fois.
 
Toutes les informations liees aux vertex et necessaires
au T&L ainsi qu'a l'affichage sont inclus dans ton format
de vertex.
Une normal c'est un vecteur de surface : sur ton triangle
suivant que tu le regardes d'un cote ou de l'autre ton
vecteur de surface pointe dans un sens ou dans l'autre
cherche pas a comprendre c'est la definition d'une normale.
Cette normale sert principalement a calculer les valeurs d'eclairement donc dans le cas d'un modele eclaire il est
important qu'elle soit correcte.  
 
Pour le code exemplaire: effectivement, tu ne t'attends
pas a ce que le code DirectX soit crade et plante
sur la moitie des machines.  
Je compte sur toi pour faire aussi bien :D
 
A+
LEGREG  




 
heu... T&L au fond c quoi ? Texturing and Lighting ? non, c un truc que font certaines cartes graphiques, non ?
Ouais, ms le pb c que g trouvé à aucun endroit (à part à l'initialisation) ou ce vecteur normal est utilisé. c à cause des vertex buffers, c ça ? c un flag d'une fonction qui dit qu'on précise la normale de chaque vertice dans le vertex buffer ? quel flag de quelle fonction alors ?
 
Je compte pas seulement faire aussi bien que Microsoft qd il programme, je compte faire 100 fois mieux, évidement !
Et j'espère bien que toi aussi. c la moindre des choses :D


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR