-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Вопрос #1
Comments
Дорый день. Для начала давайте определимся с тем, что нам нужно. Например, в этой модели, что вы даёте, логично определить одну нормаль на каждую вершину и спокойно их интерполировать. Едем дальше, очень часто бывает нужно так, что нам нужно сглаживание, но не везде. On 15-01-28 09:12:21, KOLANICH wrote:
|
Точнее по две одинаковых (иначе нарушится параллелизм по данным), так? Линейность нарушается из-за того, что у нас поверхность на деле не гладкая? В пределе при неограниченном увеличении числа вершин различие (напр. подсчитанное как сумма квадратов разности всех компонент всех пикселов) между тонировками будет стремиться к нулю? |
Стоп. Мы говорим о разных вещах.
То есть, можно вообще забыть, что у нас есть много треугольников, можно ограничиться просто одним. Дальше. Если мы вдруг зададим все три нормали к углам треугольника просто равной нормали к плоскости треугольника, Теперь представим два треугольника, которые имеют общее ребро. Мы дадим три одинаковые нормали одному треугольнику Вот пример - модель у нас абсолютно одна и та же, но http://wiki.polycount.com/w/images/5/51/BenMathis_SmoothingGroups_Excerpt.gif On 15-01-29 12:21:32, KOLANICH wrote:
|
Понятно, спасибо. |
Здравствуйте.
http://habrahabr.ru/post/248723/#comment_8241713
1 Если у нас по 1 нормали к каждой точке, то мы неверно выразим негладкую поверхность (у которой нормали в особых точках вообще не существует). Вывод - к стыкам должно быть столько нормалей, сколько полигонов там стыкуются. То есть односторонние пределы. В вашем примере должно быть по 2 нормали: одна - на боковую сторону, другая - на верхнее основание. Тогда тонировки Фонга и Гуро должны дать одинаковые результаты в силу линейности умножения.
Как вообще получают нормали к особым точкам, если их не существует, а они нужны?
2 Если же возьмём по 1й нормали, то либо верхнее основание будет затонированно неправильно (если возьмём нормали к боковым сторонам), либо боковые стороны (если возьмём нормали к верхнему основанию), либо всё будет затонированно неправильно.
3 И неплохо бы заполнить хабрапрофиль, в частности контактные данные, так как не все могут на Хабре писать.
The text was updated successfully, but these errors were encountered: