Чому згладжені сітки в 3D-студії закінчуються однаковою кількістю вершин / трикутників? Як тоді їх можна згладити з однаковою геометрією?


11

Я намагаюся зрозуміти, чому сітки, згладжені в 3D-студії (Modifiers / Smoother), мають однакову кількість вершин / граней до або після цього процесу, а також таку ж геометрію.

У наступному прикладі обидві сітки мають 32 вершини та 60 граней.

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

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

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

Тому я прошу:

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

2) чи згладжування принаймні збільшує пам'ять, що виділяється / використовується для зберігання нової сітки порівняно з вихідною?

Пояснення дуже вітаються, але посилання (академічні чи ні) також оцінені.


Тут не надто досвідчено, але, мабуть, ви могли б використовувати інший шейдер в одному. Ламберт виглядав би як той, що праворуч. Але гуанди їх би переоцінили і зробили б більш плавними. prosjekt.ffi.no/unik-4660/lectures04/chapters/jpgfiles/…
Ендрю Вілсон

1
Дякуємо за Ваш коментар! Відверто кажучи, єдине, що я зробив, це застосувати модифікатор Smoother. Раніше не було додано шейдерів, і після цього я не додав жодного шейдера.
Луї15

Історичні терміни полягають у тому, що "це різниця між затіненням плоского та гуру". На практиці це стосується нормальних норм, як пояснив joojaa
v.oddou

Яке програмне забезпечення ви використовували на скріншоті? THX :)
xyz

Відповіді:


14

Гладка в цьому випадку просто робить поверхневі нормали у вершинах точки однаковим чином, при інтерполяції вона виглядає гладкою. Meshsmooth додав би вершини.

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

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

Інтерполюючи вершини нормалів, ваша поверхня набуде виду плавної течії. Оскільки ця норма використовується для обчислення остаточного відбитого кольору, ви отримуєте гладке кольорове поле.

Плоскі заштриховані проти гладких затінених

Зображення 1 : плоска затінена нормальна проти нормалей плавної інтерплантації. Чорний звичайний лежить на вершині. Кольорові інтерполюються.

Ніщо не говорить про те, що нам потрібно робити лінійну інтерполяцію. Насправді, збурюючи нормали, ми можемо викликати зміну зовнішності плоскої поверхні. Ось як працює збільшене картографування та нормальне відображення. Ефект може бути переконливим, якщо край поверхні не відіграє занадто велику роль, в якій ілюзія порушується.

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

Зображення 2 : плоска заштрихована поверхня (ззаду), гладка заштрихована (в середині) і відображена гладка нормальна. Ілюзія хвилястої поверхні порушується, оскільки край грає настільки помітну роль у зображенні, замість цього можна збільшити норми

2) чи згладжування принаймні збільшує виділену пам'ять

Важко сказати остаточні речі про основний графічний двигун. Нормали так чи інакше потрібно надсилати на відеокарту, швидше за все, ці дані є кешованими, але їх можна обчислити під час руху (в обох випадках).

Оскільки Макс використовує групи згладжування, мені здається, що використання пам'яті постійне незалежно. Важко сказати, навіть якщо його не кешовано, це не мало би великої зміни. Це робить шейдер крихітним трохи складнішим, але тільки, швидше за все, ця складність присутня, використовуйте його чи ні.


Чудова відповідь! Це саме те, що я шукав: концептуальне пояснення, яке не залишало важливих деталей, але все ще було зрозумілим і прямим до суті. Велике спасибі
Louis15

2
"Око однак надзвичайно чутливий до різких змін кольору, і тлумачить це як важку складку". Насправді зорова система людини дуже добре виявляє зміни в похідній від затінення. Затінення може бути безперервним, але якщо є розриви в швидкості зміни, як на цьому зображенні, це може бути дивно помітним. Пошук ефекту групи Маха.
Simon F

1
@SimonF ось чому вони бачать складку, тому що вони виявляють її виявлення країв і все таке. Але людський мозок насправді не оцінює градієнтний потік. 2 гладкі всі майже рівні з більшістю людей (наприклад, немає другого зондування дервіата). Отже, мати гладку сферу є гладкою, навіть якщо нормали не ведуть себе повністю сферично так само, доки вони гладкі. Тети, чому ми тікаємо з хитрістю. Дуже мало поверхонь насправді так поводиться.
joojaa

"(немає, наприклад, другого зондування дервіата)" Я щойно перевірив "Принципи цифрового синтезу зображень" Гласнера (Том 1, стор. 29) ... і тепер я більше заплутався, ніж будь-коли.
Саймон Ф

@SimonF Вас можуть збентежити роздуми, які, природно, є похідними нижче, ніж поверхня. Таким чином, людина може за певних умов відчувати другу похідну. Але справа в тому, що люди можуть бачити складки, але вони не мають значущої різниці між усіма різними змінами, той факт, що відбиття трохи відключене або в неправильному напрямку, автоматично не видно людині. Без більш глибокого аналізу. Тільки до тих пір, поки не відбудеться різких змін, здебільшого досить хороших за багатьох обставин. Ми повинні продовжувати це в кімнаті чату
joojaa
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.