Низкий конус многоугольника - гладкое затенение на кончике

Если вы разделите цилиндр на 8-стороннюю призму, вычисляя нормали вершин на основе их положения ("плавное затенение "), это выглядит довольно хорошо.

Если вы подразделяете конус на 8-гранную пирамиду, вычисляя нормали на основе их положения, вы застреваете на кончике конуса (технически это вершина конуса, но давайтеs называют это наконечником, чтобы избежать путаницы с вершинами сетки).

Для каждой треугольной грани вы хотите сопоставить нормали по обоим краям. Но поскольку вы можете указать только одну нормаль в каждой вершине треугольника, вы можете сопоставить одно ребро или другое, но не оба. Вы можете пойти на компромисс, выбрав нормальный наконечник, который является средним из двух ребер, но теперь ни один из ваших ребер не выглядит хорошо. Вот деталь того, как выглядит выбор средней нормали для каждой вершины вершины.

В идеальном мире графический процессор может растеризовать настоящий квад, а не только треугольники. Тогда мы могли бы указать каждую грань вырожденным квадратом, что позволило бы нам задать различную нормаль для двух смежных ребер каждого треугольника. Но все, с чем мы должны работать, это треугольники ... Мы можем разрезать конус на несколько "стеки», так что разрывы по краям видны только на кончике конуса, а не вдоль всего предмета, но кончик все же будет!

У кого-нибудь есть какие-нибудь хитрости для гладких затененных низкополигональных конусов?

Ответы на вопрос(2)

Ваш ответ на вопрос