STL та боротьба з сіткою

Для початку обговоримо - що таке STL? STL - це популярний формат представлення 3d об'єктів, що представляє собою трикутну полігональну сітку. При цьому всередині ця сітка є порожньою, що досить важливо. Так що таке полігон? ДУЖЕ умовно, полігон - це деякий геометричний елемент (багатокутник), який містить face, edge, vertex. Між точками ми проводимо грані, а грані формують бік полігону. Крім цього, у кожного полігону є нормаль, яка показує, в який бік відбивається світло від даної сторони. Через неправильний напрям цих нормалей дуже часто виникають проблеми з 3д печаткою. Але ми відволіклися. Як правило, використовується квадратна і трикутна сітка - багатогранних сіток намагаються позбавлятися. На жаль, і з трикутною сіткою не все гладко, і зараз розберемо чому.

Етап 1. Робота в інженерній САПР

Для тих, хто працює в інженерній системі, звично побудувати ескіз і зробити з ним операцію. Таким чином збудуємо найпростіший квадратик. Для чистоти експерименту використовуватиму Inventor і Компас. Після того, як збудували геометрію - експортуємо її у форматі stl. З погляду обивателя, ми очікуємо, що у нас буде 6 полігонів, що формуються 8 точками (vertex). Але, на жаль, це не так:

сіткою

сіткою

Малюнок

Малюнок 3. STl прямокутника зі скругленнямиІ якщо апроксимація кола на відрізки - це не надто страшно, то така кількість елементів і втрата симетрії (а у нас тепер непарна кількість стовпців) проблема досить відчутна (Так, в деякому софті можна редагувати налаштування генерованої сітки, але це все одно відбувається автоматично). Це відчується як у розрахунковій програмі на основі формату stl, так і у випадку, якщо ви спробуєте цередагувати у художній програмі. Працювати з такою сіткою дуже незручно. Отже нам потрібен якийсь спосіб працювати з цими сітками.

Етап 2. Робота з сіткою

Візьмемо випадкову модель з порталу thingverse. У моєму випадку вибір припав на череп із гри Warhammer 40k. Відкриємо stl і подивимося на первинну сітку.

Малюнок

Малюнок 4. Первинна STL сітка

Як бачите, сітка не лише вся каламутна, вона ще й асиметрична. У такому випадку рекомендується видалити половину деталі і працювати тільки з частиною, але зараз не будемо це робити. Багато звикли лагодити свої моделі за допомогою різних програм. Візьмемо meshmixer і подивимося, як він вплине на моделі полігонів. Спеціально збережемо виправлену деталь у двох форматах – obj та stl.

боротьба

Малюнок 5. OBJ і STL після Meshmixera

Як бачимо, ретопологія моделі практично не змінилася, а відмінність між obj та stl взагалі нульова. Таким чином розуміємо, що лагодити акуратність сітки нам доведеться руками. Для початку спробуємо використовувати інструментарій, який є всередині Maya (впевнений, що у Blender, Softimage, 3dsmax тощо є аналогічні функції). Першим етапом перетворимо сітку на квадратну, як показано на малюнку.

Малюнок 6. Квадратна сітка початкової моделі

Сітка стала трохи зручнішою, хоча її асиметричність стала помітнішою. Після цього спробуємо скористатися опціями clean up та reduce.

Малюнок 7. Спроба використання clean up

На жаль, опції clean up і reduce не привели до прийнятних результатів - так що сміливо забуваємо про чищення сітки в Maye і переходимо до більш відповідного інструментарію - Zbrush та Mudbox, благо передача даних здійснюється однією кнопкою. Почнемо із Zbrusha.Виглядає це так:

боротьба

Малюнок 8. Первинна сітка в Zbrush

Справа у вкладці Geometry використовуємо функцію ZRemesher, яка чудово переробляє всю ретопологію моделі. Через невеликий час отримуємо такий результат:

боротьба

Малюнок 9. Після першого автоматичного редагування Zremesher

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

Малюнок

Малюнок 10. Після другого автоматичного редагування Zremesher

боротьба

Малюнок 11. STL після конвертації в твердотільний

Як бачите, це твердотільний об'єкт, який складається з купи трикутників, але їх набагато менше, ніж могло б бути у разі первинного експорту - така модель менше вантажить машину і з нею зручніше працювати. Взагалі, я сподівався, що при експорті у форматі iges вийде зберегти квадратну сітку – з нею було б працювати набагато зручніше, але при експорті чомусь до Inventor приходить білий екран. Про цю проблему є пара розділів на форумі Autodeska, але дана тематика вимагає окремого опрацювання, а заглиблюватися в це не дуже хочеться. У будь-якому випадку, після Zbrusha ми отримали дуже прийнятну геометрію, яка набагато зручніша за ту, що була на початку. Подальше її редагування у будь-якій художній програмі не викличе жодних проблем.

Експорт у Mudbox первинної stl сітки не дав жодних результатів – Mudbox відмовився змінювати ретопологію моделі, що мене трохи засмутило. А отпопрацювати з геометрією із Zbrusha вийшло досить цікаво. Я постарався сильно зменшити кількість полігонів, щоб спростити роботу з цим об'єктом. Крім цього в Mudboxe набагато очевидніше зробити симетричність деталі - вийшло таке:

Малюнок 12. До та після переробки Mudboxa

Так, ми злегка зжували якість і нижня частина втратила свою гостроту, але при цьому ми досягли симетрії в нашому об'єкті, зберегли форму черепа та сильно зменшили кількість полігонів. У Inventor це прийде у такому вигляді:

Малюнок

Малюнок 13. STL після Mudboxa в Inventor

Об'єкт вийшов трохи грубуватий, але геометрія цілком робоча. Зробив тестовий елемент видавлювання, щоб показати, що все чудово

Малюнок

Малюнок 14. Виправлена ​​геометрія в Inventor

Сподіваюся, що це було корисно і дуже хочу, щоб мій матеріал хтось доповнив чи вказав корисну літературу – із задоволенням ознайомлюсь. Все, що я написав - це особисте розуміння та досвід, які сформувалися після переходу на полігональне моделювання через 5 років моделювання в Autodesk Inventor.