-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Вопрос #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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: