Розбиття поверхні — це метод, що використовується у тривимірній комп'ютерній графіці, який дозволяє створювати гладкі поверхні шляхом послідовного уточнення кусково-лінійної полігональної сітки.
Розбиття використовується для представлення складних форм із використанням простіших базових сіток, які з часом стають все детальнішими та плавнішими.
Метод активно використовується в комп'ютерній графіці, анімації, CAD-системах та інших сферах, де потрібно відтворювати складні об'єкти з плавними поверхнями. Ідея полягає у тому, що на початковій, грубій полігональній сітці (так званій базовій сітці) послідовно застосовують правила уточнення, які розбивають великі грані на менші, а положення нових і старих вершин коригують для наближення гладкої поверхні. Такий процес можна повторювати багато разів (тобто рекурсивно), отримуючи дедалі більш деталізовану поверхню. Відмінність підроздільних поверхонь від інших методів полягає у тому, що вони дозволяють моделювати складні криволінійні форми, зберігаючи відносну простоту полігональної сітки та можливість редагування.
Загальне уявлення Район поверхні визначається рекурсивно. Процес починається із заданої полігональної сітки. Потім до цієї сітки застосовується схема уточнення. Цей процес займає сітку і ділить її, створюючи нові вершини та нові грані. Позиції нових вершин в сітці обчислюються на основі позицій сусідніх вершин. У деяких схемах уточнення, позиції старих вершин також можуть бути змінені (на основі позицій нових вершин).
Цей процес виробляє більш дрібну сітку за оригінал, що містить більше полігональних меж. В результаті чого сітка може передаватися через ту саму схему уточнення знову і знову.
Поверхня граничного розбиття — поверхня, отримана з цього процесу, ітераційно може застосовуватися нескінченно багато разів. Однак в практичному використанні цей алгоритм застосовується обмежену кількість разів. Гранична поверхня також може бути обчислена безпосередньо для більшості підрозділів поверхонь із використанням техніки , яка усуває необхідність у рекурсивному уточненні. Поєднані поверхні та Т-сплайни є конкурентними технологіями. Математичні поверхні із розділенням є сплайн-поверхнями з особливостями.
Схеми уточнення Схеми удосконалення поверхонь підрозділів можуть бути в широкому сенсі розділені на дві категорії: інтерполяція та апроксимація. Інтерполяційні схеми необхідні, щоб відповідати вихідному положенню вершин у вихідній сітці. Апроксимаційні схеми — навпаки; Вони можуть і будуть коригувати ці позиції за потреби. У цілому, апроксимаційні схеми мають велику гладкість, але редагування додатків, які дозволяють користувачам встановлювати точні поверхневі обмеження, вимагає оптимізації.
Існує ще один підрозділ в схемах розбиття поверхонь — тип полігону, на якому вони працюють. Деякі функції чотирикутників (квадроцикли), в той час як інші працюють на трикутниках.
Апроксимаційні схеми Апроксимація означає, що граничні поверхні апроксимують початкові сітки та після розбиття новостворені контрольні точки не перебувають на граничних поверхнях. Прикладами схем розбиття є: (1978) узагальнив бі-кубічний рівномірний B-сплайн, щоб зробити його уточнюючу схему. Для довільних початкових сіток, ця схема генерує граничні поверхні, які є безперервними С2 всюди, за винятком надзвичайних вершин, де вони є безперервними С1 (Петерс і Райф 1998). — Друга схема розбиття була розроблена Ду та Сабіном (1978), яка успішно розширила метод кутового розрізання Чайкіна для кривих поверхонь. Вони використовували аналітичний вираз біквадратичної однорідної поверхні B-сплайнів для створення своєї процедури розбиття для отримання граничних поверхонь С1 з довільною топологією для довільних початкових сіток. (1987) запропонували свою схему розбиття на основі сплайна четвертинного квадрата із шести направленими векторами, щоб забезпечити правило для генерації безперервних поверхонь C2 всюди, крім виняткових вершин, де вони безперервні по C1. Схема підрозділу середнього краю. Схема підрозділу середнього краю була запропонована незалежно Петерсом-Рейфом (1997) і Хабіб-Уорреном (1999). Перший використовував середню точку кожного ребра, щоб побудувати нову сітку. Останній використовував сплайн з чотирма напрямками для побудови схеми. Ця схема породжує C1 безперервні граничні поверхні на початкових сітках із довільною топологією. Схема розбиття √3 — Ця схема була розроблена Коббелтом (Kobbelt, 2000): вона обробляє довільні трикутні сітки, усюди неперервна, крім виняткових вершин, де вона C−1 переривається і при необхідності пропонує природну адаптивну обробку. Схема проявляє дві особливості: це подвійна схема для трикутних сіток та вона має більш повільну швидкість подрібнення, ніж первинна.
Схеми інтерполяції Після розбиття контрольні точки вихідної сітки та нові згенеровані контрольні точки інтерполюються на граничну поверхню. Найбільш ранньою роботою була схема «метелики» Діна, Левіна і Грегорі (1990), яка розширила чотириточкову інтерполяційну схему розбиття кривих на схему розбиття поверхні. Зорін, Шредер і Свелденс (1996) помітили, що схема «метелики» не може генерувати гладкі поверхні для нерегулярних трикутних сіток і таким чином модифікувала цю схему. Коббальт (1996) додатково узагальнив чотириточкову інтерполяційну схему розбиття кривих на схему розподілу тензорного добутку поверхонь. Ден і Ма (2013) додатково узагальнили чотириточкову інтерполяційну схему розбиття на довільний ступінь. Метелик, Трикутники — мають таку назву через форму схеми. Середнє розбиття, Чотирикутники. Коббальт, Чотирикутники — метод варіаційного розподілу, який намагається подолати рівномірні недоліки підрозділів. Ден-Ма, Чотирикутники — 2n точкове розбиття, узагальнене на довільний непарний ступінь.http://dl.acm.org/citation.cfm?id=2487231
Редагування поверхні розбиття Поверхні підрозділу можуть бути природно відредаговані на різних рівнях підрозділу. Починаючи з базових форм, ви можете використовувати бінарні оператори для створення правильної топології. Потім відредагуйте грубу сітку, щоб створити базову фігуру, потім відредагуйте зміщення для наступного кроку поділу, а потім повторіть це на тонших рівнях. Ви завжди можете бачити як ваші зміни впливають на граничну поверхню за допомогою оцінки поверхні GPU.
Дизайнер поверхні також може починати з об'єкта сканування або об'єкту створеного з поверхні NURBS. Ті ж самі основні алгоритми оптимізації використовуються для створення грубої базової сітки з правильною топологією, а потім додають деталі на кожному рівні, щоб об'єкт можна було редагувати на різних рівнях. З такими типами поверхонь може бути важко працювати, тому що базова сітка не має контрольних точок в тих місцях, куди розмістить їх дизайнер. З просканованого об'єкта з цією поверхнею легше працювати, ніж із сирою трикутною сіткою, але в об'єкта NURBS, ймовірно, були добре розкладені контрольні точки, які після конверсії поводяться менш інтуїтивно, ніж раніше.
Див. також
Рівень деталізації Гладка функція
Ключові розробки 1978: Поверхні розбиття були виявлені одночасно Едвіном Катмуллом і Джимом Кларком (див. Поверхня розбиття Кетмула-Кларка). У тому ж році Даніель Дуо і Малком Сабін опублікували паперовий макет за цією роботою (див. Поверхня розбиття Ду-Сабіна). 1995: Ульріх Рейф характеризував поверхні поділу поблизу незвичайних вершин by treating them as splines with singularities., розглядаючи їх як сплайни з особливостями. 1998: Джос Стам вніс свій внесок в метод точної оцінки поверхонь розбиття Кетмула-Кларка і Loop- розбиття при довільних значеннях параметрів.
Примітки
Посилання Geri's Game: Oscar-winning animation by Pixar completed in 1997 that introduced subdivision surfaces (along with cloth simulation) Subdivision for Modeling and Animation tutorial , SIGGRAPH 1999 course notes Subdivision of Surface and Volumetric Meshes , software to perform subdivision using the most popular schemes Surface Subdivision Methods in CGAL, the Computational Geometry Algorithms Library Modified Butterfly method implementation in C++