Partager via


Registre d’entrée

Registre d’entrée du nuanceur de vertex.

Les données de chaque sommet (à l’aide d’un ou plusieurs flux de vertex d’entrée) sont chargées dans les registres d’entrée de vertex avant l’exécution du nuanceur de vertex. Les registres d’entrée se composent de 16 vecteurs à virgule flottante à quatre composants, désignés comme v0 à v15. Ces registres sont en lecture seule. Un registre d’entrée est lié aux données de vertex par le biais d’une déclaration de vertex.

Les propriétés de registre suivantes contrôlent le comportement de chaque registre :

Propriété Description
Nom v[n] : n est un numéro de registre facultatif. 0 est la valeur par défaut utilisée, si elle est omise.
Count Un maximum de 16 registres, v0 - v15.
Autorisations d’E/S Lecture seule. Ce registre ne peut pas être écrit par l’API ou dans le nuanceur.
Ports de lecture 1. Il s’agit du nombre de fois où un registre peut être lu dans une seule instruction. Voir ci-dessous.

 

Toute instruction unique ne peut accéder qu’à un seul registre d’entrée de vertex. Toutefois, chaque source de l’instruction peut swizzle indépendamment et nier ce vecteur au fur et à mesure qu’il est lu.

Exemple

Voici un exemple d’utilisation d’une déclaration de vertex pour lier des données de position de vertex 2D à l’inscription v0.

La déclaration de vertex appartient à l’application :

D3DVERTEXELEMENT9 decl[] =
{
    { 0, 0, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0 },
      D3DDECL_END()
};

Voici la déclaration de nuanceur de vertex correspondante :

dcl_position v0
Versions du nuanceur de vertex 1_1 2_0 2_sw 2_x 3_0 3_sw
Registre de position x x x x x x

 

Registres du nuanceur de vertex