Pregunta

Como una experiencia de aprendizaje, estoy escribiendo un modo inmediato conseguido aplicación DirectX 9.

Estoy calcular manualmente vértices normales en todos los triángulos en una escena para permitir el sombreado Gouraud suave.

Esto funciona como se esperaba, pero supongo que esto no es el enfoque más eficaz. ¿Es posible obtener la GPU para hacer esto por mí?

¿Fue útil?

Solución

Otros consejos

Se podría, en teoría, generar los vértices normales dentro del vertex shader. Esto implica el cálculo cada vez que se procesa una sola malla utilizando dicho sombreado sin embargo, ¿por qué no generarlos con antelación.

Si usted quiere decir que desea generar con antelación de la prestación, pero el uso de la GPU en lugar de la CPU, yo diría que no vale la pena la molestia de acelerar algo que sólo se le va a hacer una vez. Además, no estoy seguro de si DX9 tiene una manera de obtener información computarizada vértice de volver de un shader (DX10 hace).

Con todo, lo mejor que puede hacer en la mayoría de los casos es el tradicional: vértices normales de cálculo en el programa que guarda los archivos de datos que contienen las mallas - do como una etapa de pre-cálculo. Por lo general, los tiene si la malla vino de un paquete de 3D como Max o Maya, ya que existe información artística en las normales, a menos que sepa toda la malla se supone que es perfectamente lisa (o facetas), no es computable en el caso general .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top