Pergunta

Como uma experiência de aprendizagem, eu estou escrevendo um modo imediato conseguiu DirectX 9 aplicação.

Estou cálculo manualmente normais Vertex em todos os triângulos em uma cena para permitir suavizar Gouraud sombreamento.

Isso funciona como esperado, mas eu estou supondo que esta não é a abordagem mais eficiente. É possível obter a GPU para fazer isso por mim?

Foi útil?

Solução

Verifique este e este .

Outras dicas

Você poderia, em teoria, gerar as normais dos vértices dentro do shader de vértice. Que envolve a computação cada vez que você tornar uma malha usando esse shader embora, então porque não gerá-los com antecedência.

Se você quer dizer que você quer para gerá-los antes de renderização, mas usar a GPU em vez do CPU, eu diria que não vale a pena o incômodo de acelerar algo que você está indo só para fazer uma vez. Além disso, eu não tenho certeza se DX9 tem uma maneira de se calculado informações vértice de volta a partir de um shader (DX10 faz).

Ao todo, a melhor coisa a fazer na maioria dos casos são os tradicionais: normais vértice de computação no programa que salva os arquivos de dados que contêm as malhas - fazê-lo como uma etapa de pré-cálculo. Normalmente você tem los se a malha veio de um pacote 3d como Max ou Maya, porque não há informações artística nas normais, a menos que você sabe toda a malha é suposto ser perfeitamente lisa (ou facetada), não é computável no caso geral .

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