Microsoft fournit un list expliquant les sémantiques d'entrée et de sortie des vertex et des pixel shaders. À présent, j'ai vu des exemples de code qui n'utilisent pas les types de données documentés. Ils utilisent float3
comme entrée COLOR
pour le pixel shader ou float2
comme entrée POSITION
pour le vertex shader. Même si une position à 2 composants ou une couleur 3 composants font sens pour moi, je ne trouve pas cette documentation, ce qui me fait me demanderQuelles tailles de type puis-je utiliser pour des sémantiques spécifiques
Puis-je utiliser
float3
comme entrée de vertex shadersPOSITION
(si je sais que je n'utiliserai pas le composant W) sans s'attendre à des erreurs? Si je peux utiliser d'autres types de données que ceux documentés, existe-t-il une liste qui affiche tous les types de données autorisés pour une sémantique ou une règle du genre "Tant que le type de données utilisé est plus petit ou égal au documenté, vous pouvez l'utiliser "?
exemples de code ne suit pas la documentation:
StackOverflow - Passing colors through a pixel shader in HLSL
C++/DirectX11 Tutorials - S02E05 - Creating and loading Shaders à 9:33
Ahh, c'est génial! Après avoir réfléchi, cela a du sens. Étant donné que la structure d'entrée du shader et la structure de sommet dans le code sont également structurées, DirectX copie simplement la structure brute sur le GPU et n'a donc pas besoin de connaître les tailles de composant spécifiques. Je vous remercie :) – Cubinator73