Почему сглаженные сетки в 3D-студии имеют одинаковое количество вершин / треугольников? Как тогда они могут быть сглажены с той же геометрией?

11

Я пытаюсь понять, почему сетки, сглаженные в 3D-студии (модификаторы / сглаживатели), имеют одинаковое количество вершин / граней до или после этого процесса, а также точно такую ​​же геометрию.

В следующем примере обе сетки имеют 32 вершины и 60 граней.

введите описание изображения здесь

введите описание изображения здесь

Хотя у меня есть опыт работы с программированием (c ++ и c #), я довольно новичок в компьютерной графике. Таким образом, я ожидал, что сглаженный вид сглаженной сетки потребует дополнительных вершин, то есть подразделения треугольников, чтобы в итоге получить более детальную конечную сетку. Однако, похоже, что это не так.

Поэтому я спрашиваю:

1) как возможно сглаживание без увеличения детализации геометрии сетки?

2) Увеличивает ли сглаживание память, выделенную / использованную для хранения новой сетки, по сравнению с исходной?

Объяснения очень приветствуются, но ссылки (академические или нет) также приветствуются.

Louis15
источник
Не слишком опытный здесь, но я полагаю, вы могли бы использовать другой шейдер в одном. Ламберта будет выглядеть как справа. Но гуранды усредняют их и делают их более гладкими. prosjekt.ffi.no/unik-4660/lectures04/chapters/jpgfiles/…
Эндрю Уилсон
1
Спасибо за ваш комментарий! Честно говоря, я только применил модификатор Smoother. До этого не было никакого добавленного шейдера, и я не добавлял никаких шейдеров после.
Louis15
Исторические термины таковы: «В этом разница между плоским и затенением Гуро». На практике это относится к нормам, подобным тому, что объясняет Джуджаа
v.oddou
Какое программное обеспечение вы использовали на скриншоте? THX :)
xyz

Ответы:

14

Сглаживание в этом случае просто приводит к тому, что нормали поверхности в вершинах указывают одинаково, при интерполяции это выглядит гладко. Meshsmooth добавил бы вершины.

1) как возможно сглаживание без увеличения детализации геометрии сетки?

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

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

Плоская затененная и гладкая затененная

Изображение 1 : плоско заштрихованная норма против нормалей гладкой интерполяции. Черная нормаль лежит на вершине. Цветные интерполируются.

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

введите описание изображения здесь

Изображение 2 : плоская затененная поверхность (задняя часть), гладкая затененная (средняя) и отображенная гладкая нормаль. Иллюзия волнистой поверхности ломается, потому что край играет настолько заметную роль в изображении, что вы могли бы вместо этого увеличить нормали

2) сглаживание хотя бы увеличивает выделенную память

Трудно сказать определенные вещи о базовом графическом движке. В любом случае, нормали должны передаваться на видеокарту, скорее всего, эти данные кэшируются, но могут быть рассчитаны на лету (в обоих случаях).

Поскольку Макс использует группы сглаживания, мне кажется, что использование памяти постоянно независимо. Трудно сказать, даже если он не кэшируется, это не будет иметь большого значения. Это делает крошечный шейдер немного более сложным, но только скорее всего эта сложность присутствует, используйте ее или нет.

joojaa
источник
Отличный ответ! Это именно то, что я искал: концептуальное объяснение, которое не оставляло важных деталей, но было все еще ясным и прямым к сути. Большое спасибо
Louis15
2
«Однако глаз чрезвычайно чувствителен к резким изменениям цвета и воспринимает это как жесткую складку». На самом деле зрительная система человека очень хорошо обнаруживает изменения в производной затенения. Затенение может быть непрерывным, но при наличии скачков в скорости изменения, как на этом изображении, они могут быть удивительно заметны. Поиск эффекта группы Маха.
Саймон Ф
1
@SimonF именно поэтому они видят складку, потому что они определяют ее края и все такое. Но человеческий мозг на самом деле не элюирует сглаживание градиентного потока 2, все они почти равны большинству людей (например, нет никакого второго зондирования). Таким образом, гладкая сфера является гладкой, даже если нормали не ведут себя полностью сферически, пока они гладкие. Thets, почему нам сходит с рук. Очень немногие поверхности действительно ведут себя таким образом.
Джуджаа
«(нет второго ощущения дервиатов, например)» Я только что проверил в «Принципах синтеза цифровых изображений» Гласснера (том 1, стр. 29) ... и теперь я запутался как никогда.
Саймон Ф
@SimonF Вы можете быть озадачены отражениями, которые, естественно, на одну производную меньше, чем поверхность. Таким образом, человек может при определенных условиях ощущать вторую производную. Но дело скорее в том, что люди могут видеть складки, но они не имеют значимой разницы между всеми различными изменениями, тот факт, что отражение слегка отклонено или находится в неправильном направлении, не является автоматически очевидным для человека. Без более глубокого анализа. До тех пор, пока нет резких изменений, по большей части достаточно хороших во многих обстоятельствах. Мы должны продолжить это в чате, хотя
Joojaa