Accueil
Articles
Astuces
Actualités
Auteurs
A propos
Contact
S'enregistrer
|
S'identifier
S'identifier
Authentification invalide
N
om d'utilisateur
M
ot de Passe
S
e souvenir de moi la prochaine fois.
S'identifier
Annuler
S'enregistrer
Mot de passe oublié ?
Conception avancée de shaders DirectX 10.0
Mise en place d’un mécanisme maintenable et performant pour la gestion des shaders générique avec DirectX 10.0
Par
David Catuhe
publié le 28/10/2009 à 20:22, lu 2290 fois, 6 pages
0 commentaire(s)
Tags:
C#
,
DirectX
2 | Présentation de l’uber shader
1 | Introduction
2 | Présentation de l’uber shader
3 | Utilisation des variables uniformes
4 | Utilisation de plusieurs techniques HLSL
5 | Injection de code
6 | Conclusion
Téléchargez le code source - 881 Kb
Présentation de l’uber shader
Notre uber shader va donc prendre le rôle de la fonction fixée de DirectX 9. En effet, DirectX 9 était le dernier des DirectX à permettre de faire des rendus sans aucune utilisation des shaders. Une machine à état était disponible pour régler le pipeline (fixé donc non programmable) en positionnant des variables (par exemple, j’active le bump ou je règle les bones, etc.).
Notre uber shader va donc être un shader (en fait un groupe vertex shader + geometry shader + pixel shader) qui sera suffisamment agile (c’est à la mode) pour pouvoir prendre en compte un grand nombre de situations (donc à l’opposé d’un shader spécifique).
Ce genre de shaders nécessite un grand nombre d’instructions et avant le modèle de shaders 4.0 (celui de DirectX 10) il n’était pas possible de faire réellement un très gros shader capable de tout gérer.
Toutefois, il est à noter qu’avec la dernière technique présentée à la fin de l’article, le shader modèle 3.0 (voir même 2.0 pour certaines options) peut s’avérer suffisant.
Pour mettre tout cela en place, nous utiliserons les effets de DirectX 10 qui constituent un API très rapide à mettre en place pour ce genre de tâches. De plus coté code, cela se fera en C# via SlimDX qui est un excellent wrapper .Net au-dessus de DirectX 10.
1
2
3
4
5
6
»
Démarrer une discussion
Ecrire un commentaire
Titre
Commentaire
Annuler