2010-07-07 2 views
1

Ok J'ai un shader compilé sous D3D10.Définition d'une texture dans le tampon constant d'un shader dans D3D10

J'obtiens une réflexion de shader pour obtenir les détails de toutes les constantes/globales dans le shader. Cependant, je suis un peu confus sur quelque chose ... comment puis-je définir une texture à un tampon constant? Je suppose que je ne fais pas que cartographier le tampon constant et y copier le pointeur ID3D10Texture ... Je suppose que j'utilise un ID3D10ShaderResourceView mais je ne suis pas sûr de la façon dont je l'ai défini dans le tampon constant.

Toute aide serait grandement appréciée!

Répondre

1

Vous ne liez pas une texture à un tampon constant. Vous liez des textures, par des vues, à une étape (ici stade GS) en utilisant la méthode:

void GSSetShaderResources(
    [in] UINT StartSlot, 
    [in] UINT NumViews, 
    [in] ID3D10ShaderResourceView *ppShaderResourceViews 
); 

Vues et fait deux employés canadiens choses distinctes.

+0

Ok Je commence à le réaliser mais comment associer un "Shader2D" donné à un slot donné? – Goz

+1

Peut-être que je devrais commencer une nouvelle question ...? Zut pour moi d'utiliser une macine XP pour essayer de faire du DX10 plus tôt;) – Goz

+0

Vous devez utiliser un attribut de registre pour lier un SRV (sur un tampon ou une texture) à un slot donné: par exemple: Texture2D diffuse: register (t0) // emplacement 0 ici – Stringer

Questions connexes