DirectX 9: fonte atributo Vertex shader
Pergunta
Isso é cerca de DirectX 9.
Em caso típico de renderização com sombreamento de vértice, há uma ou mais fontes de fluxo definidos no dispositivo e formato dos dados de origem é definida usando declaração vértice.
Agora, se um vértice shader usado precisa de algum atributo (por exemplo, um com D3DDECLUSAGE_NORMAL e UsageIndex 1 ou 2), mas a declaração de vértice que é fornecido não tem esse atributo incluído (ie. Dados fornecidos em fontes de fluxo não incluir esse atributo), e DrawPrimitive é chamado, onde é que DirectX obter o valor para esse atributo?
Solução
"Se os dados no fluxo de vértice contém menos componentes do que o tipo de dados sombreador correspondente, os componentes que faltam será inicializado para 0 (excepto para w, que é inicializado para um)."
Tomado de "Documentação do Windows DirectX Gráficos (agosto de 2009)"
Conteúdo> HLSL> Guia de Programação> Escrita HLSL Shaders em Direct3D 9> variando Shader Entradas e Semântica
Outras dicas
Os DirectX 9 define especificação valores "padrão" para os atributos não declarados, geralmente (0,0,0,1). Ou o driver de dispositivo ou GPU cria-los.