Cono de polígono bajo - sombra suave en la punta

Si subdivides un cilindro en un prisma de 8 lados, calculando los vértices normales según su posición ("sombreado suave"), se ve bastante bien.

Si subdivides un cono en una pirámide de 8 lados, calculando las normales en función de su posición, te quedas atascado en la punta del cono (técnicamente el vértice del cono, pero llamémoslo la punta para evitar confusiones con los vértices de malla) .

Para cada cara triangular, debes hacer coincidir las normales a lo largo de ambos bordes. Pero como solo puede especificar una normal en cada vértice de un triángulo, puede hacer coincidir un borde u otro, pero no ambos. Puede comprometerse eligiendo una punta normal que sea el promedio de los dos bordes, pero ahora ninguno de sus bordes se ve bien. Aquí hay un detalle de cómo elegir el promedio normal para cada vértice de la punta.

En un mundo perfecto, la GPU podría rasterizar un verdadero quad, no solo triángulos. Luego podríamos especificar cada cara con un cuadrante degenerado, lo que nos permite especificar una normal diferente para los dos bordes contiguos de cada triángulo. Pero todo con lo que tenemos que trabajar son los triángulos ... Podemos cortar el cono en múltiples "pilas", de modo que las discontinuidades de los bordes solo sean visibles en la punta del cono en lugar de a lo largo de toda la cosa, pero todavía habrá una ¡propina!

¿Alguien tiene algún truco para los conos de baja poli de sombra suave?

Respuestas a la pregunta(2)

Su respuesta a la pregunta