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

 


Dernière réponse
Sujet : [D3D] Question sur la déclaration dex vertex shaders
Alload J'ai vu d'autres exemples de déclaration des input registers de vertex shaders avec les structures de vertex correspondants.
 
Je pense avoir compris comment ça marchait: en fait l'ordre des déclaration doit être le même que celui dans la structure de vertex.
 
 
Par exemple:
 
DWORD decl[] = {
D3DVSD_STREAM(0),
D3DVSD_REG(0, D3DVSDT_FLOAT3),   //Position
D3DVSD_REG(1, D3DVSDT_D3DCOLOR), //Diffuse
D3DVSD_REG(2, D3DVSDT_FLOAT3),   //Normal
D3DVSD_END()};
 
pour cette strucure de vertex:
 
struc SVertex
{
float position;
D3DCOLOR diffuse;
float normal;
};
 
 
Bon, j'espère que je me suis pas trompé :D

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
Alload J'ai vu d'autres exemples de déclaration des input registers de vertex shaders avec les structures de vertex correspondants.
 
Je pense avoir compris comment ça marchait: en fait l'ordre des déclaration doit être le même que celui dans la structure de vertex.
 
 
Par exemple:
 
DWORD decl[] = {
D3DVSD_STREAM(0),
D3DVSD_REG(0, D3DVSDT_FLOAT3),   //Position
D3DVSD_REG(1, D3DVSDT_D3DCOLOR), //Diffuse
D3DVSD_REG(2, D3DVSDT_FLOAT3),   //Normal
D3DVSD_END()};
 
pour cette strucure de vertex:
 
struc SVertex
{
float position;
D3DCOLOR diffuse;
float normal;
};
 
 
Bon, j'espère que je me suis pas trompé :D
Alload Ils sont pas là les amateurs de D3D? Bah, de toute façon le week-end c'est toujours comme ça :D
Alload J'ai une petite question sur la déclaration des vertex shaders: on doit créer un tableau de DWORD, où on place les déclarations des inputs registers, qu'on utilise lors de l'appel de la fonction IDirect3DDevice8::CreateVertexShader().
 
Mais je me demandais à quoi pouvait donc bien servir cette déclaration. Est-ce que cela permet de dire où se trouvera par exemple la position du vertex dans les inputs registers?
 
Peut-on faire par exemple:
 
DWORD decl[] = {D3DVSD_STREAM(0),
                D3DVSD_REG(5, D3DVSDT_FLOAT3),
                D3DVSD_END()};
 
Pour mettre la position du vertex dans l'input register 5 (v5)?
 
Si c'est exemple est correct, je ne comprends pas comment Direct3D fait pour savoir qu'on veut mettre la position en v5, car on aurait très bien pu vouloir mettre la normal en v5.
 
Et si l'exemple n'est pas correct, y a-t-il un ordre pour ces déclarations? Sont-elles toujours les mêmes? Comment les connaitre?
 
Voilà.

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