Что было бы хорошим фильтром для создания «магнитных деформаторов» с карты глубины?

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

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

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

Я не уверен, как это сделать, создавая этот деформирующий набор. Я представляю что-то вроде алгоритма, который пытается совместить сферическую поверхность с каждым патчем смежных отклонений в определенном диапазоне, но не знаю, с чего начать это делать.

Может ли кто-нибудь предложить подходящий фильтр или алгоритм для создания деформаторов? Или, иначе говоря, «сжать» карту глубины?

(* Push, потому что его приспособление к выпуклым выпуклому гуманоиду, которое таким образом трансформируется, вероятно, будет «сферическим» из POV поверхности.)

Изменить: Вот изображение /диаграмма, предложенная правильно, что иллюстрирует то, что я пытаюсь достичь.

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

  1. Если деформированная сетка не завершена, можно получить тексели на карте, которые означают , чтобы быть на другой стороне выпуклой сетки (потому что они не скрыты теми, кто ближе к камера на правильной стороне).
  2. Эффективность не была такой высокой, как я надеялся, из-за того, что для каждой деформации необходимы 6 карт.

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

Я все еще думаю, что эта проблема проблема интересна, хотя и будет интересоваться любыми ответами, поскольку я уверен, что есть ситуации, когда это было бы предпочтительным.

введите описание изображения здесь>> </p></body></html>

10 голосов | спросил sebf 11 PMpWed, 11 Apr 2012 19:01:02 +040001Wednesday 2012, 19:01:02

1 ответ


2

У вас есть карта глубины, которую я предполагаю просто расстояние между выпуклой сеткой A и нейтральной деформированной сеткой B, и у вас есть нормали поверхности сетки A.

То, что вам не хватает, это веса (или группировки) того, как каждая вершина на сетке B влияет на своих соседей. Например, когда центральная вершина перемещается, она также должна перетаскивать соседние вершины на некоторую величину (в процентах), если они находятся в одной группе.

Если у вас есть группа вертов, которые влияют друг на друга на 100%, все они будут вытеснены самым дальним количеством из вашей карты глубины, как если бы они были частью неразветвленной стальной структуры, которая перемещается как единица, установленная на 50 % эта структура может больше походить на толстые резиновые листы и 10%, например, на пластиковую упаковку с фитингом, потому что каждая вершина едва влияет на ее соседку (это то, что у вас есть сейчас.

Очевидно, что происходит смешение и слияние значений. Как @Gajoo сказал: «Что не так с перемещением всей фигуры?»

ответил Patrick Hughes 2 Jpm1000000pmWed, 02 Jan 2013 20:45:28 +040013 2013, 20:45:28

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132