Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les nuanceurs pilotent le pipeline graphique programmable.
Référence du nuanceur de vertex
différences de nuanceur de vertex résume les différences entre les versions du nuanceur de vertex.
Informations de référence sur le nuanceur de pixels
différences de nuanceur de pixels résume les différences entre les versions du nuanceur de pixels.
Référence du modèle de nuanceur 4 et 5
Les sections 'assembly shader model 4 et shader Model 5 décrivent les instructions qui prennent en charge le modèle de nuanceur 4 et 5.
Comportement des registres de constantes dans les nuanceurs d’assembly
Il existe deux façons de définir des registres de constantes dans un nuanceur d’assembly :
- Déclarez une constante de nuanceur dans le code d’assembly à l’aide de l’une des instructions def*.
- Utilisez l’une des méthodes d’API Set***ShaderConstant*.
Constantes de nuanceur Direct3D 9
Dans Direct3D 9, la durée de vie des constantes définies dans un nuanceur donné est limitée à l’exécution de ce nuanceur uniquement (et n’est pas substituable). Les constantes définies dans Direct3D 9 n’ont aucun effet secondaire en dehors du nuanceur.
Voici un exemple utilisant Direct3D 9 :
Given:
Create shader1 which references c4 and defines it with the def instruction
Scenario 1:
Call Set***Shader shader1
Call Set***ShaderConstant* to set c4
Call Draw
Result: The shader will see the def'd value in c4
Given:
Scenario 1 has just completed
Create shader2 (which references c4 but does not use the def instruction
to define it)
Scenario 2:
Call Set***Shader shader2
Call Draw
Result: The shader will see the value last set in c4 by
Set***ShaderConstant* in scenario 1. This is because shader 2
didn't def c4.
Dans Direct3D 9, l’appel de Get***ShaderConstant* récupère uniquement les valeurs constantes définies via Set***ShaderConstant*.
Constantes du nuanceur Direct3D 8
Ce comportement est différent dans Direct3D 8.x.
Given:
Create shader1 which references c4 and defines it with the def instruction
Scenario 1 (repeated with Direct3D 8):
Call Set***Shader with shader1
Call Set***ShaderConstant to set c4
Call Draw
Result: The shader will see the value in c4 from Set***ShaderConstant
Dans Direct3D 8.x Set***ShaderConstant prend effet immédiatement. Tenez compte de ce scénario :
Given:
Create shader1 which references c4 and defines it with the def instruction
Scenario 3:
Call Set***Shader with shader1
Call Draw
Result: The shader will see the def'd value in c4
Given:
Scenario 3 has just completed
Create shader2 (which references c4 but does not use the def instruction
to define it)
Scenario 4 :
Call Set***Shader with shader2
Call Draw
Result: The shader will see the def'd value in c4 (set by def in shader 1)
Le résultat indésirable est que l’ordre dans lequel les nuanceurs sont définis peut affecter le comportement observé des nuanceurs individuels.
Configuration requise pour le modèle du pilote shader
Les interfaces Direct3D 9 sont limitées aux pilotes DDI (Device Driver Interface) qui sont directX 7 et versions ultérieures. Pour vérifier le niveau DDI, exécutez l’outil de diagnostic DirectX et examinez le fichier texte enregistré.
Pour référence, les interfaces Direct3D 8 fonctionnent uniquement sur les pilotes DDI qui sont directX de niveau 6 et versions ultérieures.
Format binaire du nuanceur
La disposition au niveau du bit du flux d’instructions du nuanceur est définie dans D3d9types.h. Si vous souhaitez concevoir votre propre compilateur de nuanceur ou outils de construction et que vous souhaitez plus d’informations sur le flux de jeton de nuanceur, reportez-vous au Kit de développement de pilotes Direct3D 9 (DDK).
Langage de nuanceur de type C
Consultez référence HLSL pour découvrir un langage de nuanceur de type C.
Rubriques connexes
-
informations de référence sur hlSL