четверг, 12 марта 2015 г.

Триангулированные сетки.

В прошлой моей статье Еще один шаг на пути к 3D манекену, я показывал чего мы добились на этом поприще. Ну что стоит сказать. Первый блин вышел комом.
А задействованный мной способ генерации сетки не правильный. Стоит напомнить как он выглядел.


Видите как располагаются треугольники в деталях? Это то и сеткой назвать можно с трудом. Нет построение верно, но только с точки зрения разбиения детали на треугольники. А вот для алгоритмов симуляции ткани совершенно не подходят. 

Эти алгоритмы используют грани треугольник как места сгибов ткани. А теперь представьте себе как будет изгибаться этот пример. Вот, вот.

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

Трех угольная сетка и

четырехугольная сетка. 

Первая лучше повторяет структуру ткани и соответственно лучше подходит для ее симуляции.

Вторая же, как мне пояснили, лучше для моделирования, человеку легче с ней работать. Стоит заметить, что некоторые программы для моделирования ткани тоже требуют именно такой вариант сетки.

Важным условием для таких сеток является длина ребра. Чем она меньше тем лучше ведет себя ткань. Вот пример что бы понять о чем я говорю.


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

Не буду пока что раскрывать всех подробностей. Покажу только результаты которые есть на этот момент.

Вот это все еще напоминает прошлый результат.
Лучше, но не подходит.
 Вот оно, но не оптимизировано и длина ребер большая.
А вот это уже наш размерчик. Только больно хаоса много.
 Ну и как вы ведите более упорядоченная сетка. Правда есть еще уплотнения, но это оставим на другой раз. 
Код которые генерирует эту красоту почти что готов. Ждет своего часа в отдельном месте.

Комментариев нет:

Отправить комментарий