У своєму проекті я створюю систему деформування високодетальної сітки (одягу), щоб вона «підходила» до опуклої сітки. Для цього я використовую карти глибини предмета і «корпусу», щоб визначити, в якій точці світового простору відбувається відхилення і ступінь.
Просто перетворення всіх окульованих вершин на глибини, визначені «корпусом», є досить ефективним і має хороші показники, але це страждає від проблеми не збереження особливостей сітки і вимагає широкого відсікання, щоб уникнути помилкових позитивних результатів.
Я хотів би замість цього створити з карти відхилення глибини набір простих «деформаторів», які будуть «штовхати» * всі вершини деформованої сітки назовні (у світовому просторі). Таким чином, всі функції сітки зберігаються і немає необхідності мати складну евристику для викреслення невідповідних вершин.
Я не впевнений, як іти про створення цього деформаторного набору, проте. Я уявляю щось на зразок алгоритму, який намагається зіставити сферичну поверхню з кожним патчем суміжних відхилень у певному діапазоні, але не знаю, з чого почати це робити.
Чи може хтось запропонувати відповідний фільтр або алгоритм для генерації деформаторів? Або кажучи про інший спосіб «стиснення» карти глибини?
(* Поштовх, тому що його прилягання до опуклого "булькатого" гуманоїда, тому перетворення, ймовірно, будуть "сферичними" від ПОВ поверхні.)
Редагувати: Ось правильно запропоноване зображення / діаграма, що ілюструє те, що я намагаюся досягти.
Крім того, я повинен сказати, оскільки це питання було розміщено, я працював набагато більше над цією проблемою, і хоча я ніколи не вирішував, як отримати деформатори, я врешті-решт вирішив, що карти глибини для цього не підходять як:
- Якщо деформована сітка не є повною, можна отримати на карті текстилі, які мають бути з іншого боку опуклої сітки (оскільки їх не затьмарюють ті, хто знаходиться ближче до камери на правильній стороні).
- Ефективність була не такою високою, як я сподівався через те, що потрібно 6 карт на деформацію.
Не те, що це були нерозв'язні, але інше рішення, яке передбачало тестування зіткнень у ядрах, що працюють на графічному процесорі, призвело до більш високої якості та було набагато простішим, хоча воно може бути не таким швидким.
Я все ще думаю, що ця проблема є цікавою, хоча я зацікавив би будь-якими відповідями, тому що я впевнений, що існують ситуації, коли це було б краще.