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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top