Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Алгоритмы > Моделирование |
Автор: Амортизатор 6.6.2005, 01:01 |
Необходимо составить модель листа бумаги, который вел бы себя идентично натуральному. Т е имеется нечто вроде книги (книгу прорисовывать необязательно), нужно реализовать что-то вроде перелистывания страниц, т е сделать так, чтобы перемещение листа бумаги с одной стороны книги на другую роисходило в соответсвии с физическими законами. Задача очень сложна. Если браться реализовывать с самого начала, нужно составить соответсвующие дифференциальные уравнения движения поверхности листа и найти способ их численного интегрирования. Что не есть элементарно. Нет ли каких похожих физических алгоритмов, которые можно было бы использовать хотя бы как образцы? PS Хотя вопрос и не для этого форума, но все же заодно спрошу - нельзя ли сделать модель листа с анимацией в Maya или 3DS MAX и экспортировать ее в программу? |
Автор: cardinal 6.6.2005, 01:48 | ||
Ну ты загнул. ![]() ![]() |
Автор: Амортизатор 6.6.2005, 03:05 |
Все это чрезвычайно тяжело реализуется. По всей видимости придется упростить задачу - чтоб сила прикладывалась не к одной какой-то точке страницы, а по всему фронту (краю). Тогда в принципе можно будет рассматривать страницу как упругий стержень. Кроме того, надо наверное будет отказаться от динамики - т е не учитывать ускорения при движении, а прокрутить серию кадров, в каждом из которых она занимает определенное положение. Тогда фактически задача сведется к нахождению формы стержня в зависимости от координаты его верхнего конца... Реализма, конечно, мало но на глаз это не будет заметно. Добавлено @ 03:07 А как насчет Maya? Там ведь есть средства для моделирования физ. процессов. Например, я видел анимацию - развевающийся по ветру флаг, выглядело довольно правдоподобно. |
Автор: III.nfo 6.6.2005, 07:30 |
Может, это тупо и ламерски, но нельзя ли сделать съёмку на камеру движения настоящего листа бумаги с разных ракурсов, а затем уже его перевести в цифровую модель? Там уже можно и законы подыскать. |
Автор: batigoal 6.6.2005, 09:34 |
А на чем будет программа? Если на С++, то есть возможность создать сцену в 3DS Max и экспортировать ее в программу средствами DirectX. |
Автор: Гость_Амортизатор 6.6.2005, 15:38 |
Да, программа на С++ (мфс). Но дело в том, что я совершенно не разбираюсь ни в Maya, ни в том, как оттуда тащить модели. III.nfo, к сожалению далеко не все так просто. ![]() |
Автор: batigoal 6.6.2005, 17:47 |
Тащить-то их оттуда нетрудно... По крайней мере, из 3ДМакса. Достаточно сделать экспорт в файл *.x. А вот разобраться с ДиректИксом намного сложнее. |
Автор: III.nfo 6.6.2005, 18:03 |
АмортизаторА нельзя из фильма «перелить» в 3Dmax/Maya? Или, пользуясь фильмом, сделать там подобную модель - по-моему, будет удобнее. |
Автор: Амортизатор 6.6.2005, 18:49 |
Lamer George, мне бы сделать эту модель в Maya и перетащить в прогу, дальше как нибудь постараюсь разобраться. У меня есть опыт работы с DirectX, правда небольшой - сделал в свое время пару простых моделей. Этого, естественно, не хватит, но постараюсь восполнить пробелы, для этого есть источники. Но вот про экспорт моделей из Maya - нигде ни слова! Уж сколько я не пытался искать - ничего нет. Я уже не говорю про работу в самой Maya - при одном виде ее интерфейса дурно становится. III.nfo, нельзя. Фильм - это всего лишь картинки - растровые (точечные) изображения, следующие друг за другом. Физическая модель основывается на конкретных уравнениях, описыващих моделируемое явление (объект). Для того, чтобы "перегнать" фильм в модель нужна работа искуственного интеллекта, который в данном случае "обобщил" бы движения объекта и позволил бы в буквальном смысле "взглянуть на него под другими углами". Но ИИ еще, к сожалению, не придумали... |
Автор: batigoal 6.6.2005, 21:39 |
Насчет Maya не знаю, но, наверное, там доже должна быть подобная возможность. |
Автор: Амортизатор 6.6.2005, 22:10 |
Ну мне вообще все равно где делать. Я слышал, 3DC MAX куда проще Майи, было бы даже лучше если в нем. |
Автор: III.nfo 7.6.2005, 15:05 | ||
Амортизатор
А вот и суперзадача... Покруче моделирования листа бумаги... |
Автор: podval 7.6.2005, 21:42 |
Амортизатор А ты в MATLAB пробовал развлекаться? В последних версиях есть даже такой Virtual Reality Toolbox - посмотри его. |
Автор: Амортизатор 11.6.2005, 14:41 |
podval, MATLAB знаю не настолько. К тому же, насколько помнится, Virtual Reality Toolbox использует какой-то свой скриптовый язык,изучать который, конечно же. никакого желания не имеется. К тому же неизвестно, можно ли экспортировать оттуда анимацию, ведь для прокрутки анимации в нем используется программа, написанная на этом самом языке. Но в принципе, может MATLAB и можно использовать для того, чтобы просто посчитать матрицу поверхности. |
Автор: podval 11.6.2005, 18:15 | ||
Я всегда делал так: сначала обкатывал модели в МАТЛАБ, а только потом переносил в С. Особенно это касается матриц (у меня были ~30 млн. элементов). Научиться программировать в Матлабе - запросто. Там язык почти такой же, как С. Рекомендую. |
Автор: Kolia 11.6.2005, 20:22 |
Ну вы тут вломили, фильмы снимать предлагаете. Насчет диф. уравнений, ну так поискать в нете такую модель ты можешь. Вполне возможно, что ее кто-то на лабороторках делал. А там сам их численными методами решишь. А флаг я видел. На OpenGL у меня где-то валяется (если надо, вышлю). Там он так развивается. Это, по-моему, стандартный пример SG. А делается такой флаг очень легко. Там используются Безье вычислитель (или как там его по научному). Строится кривая линия/поверхность (второго, третьего … порядка) по контрольным точкам. Эти точки со временем меняются, и создается иллюзия развивающегося флага. Имея поверхность из 9 точек, уже "флаг" сделаешь. Просто запросто ![]() Вобщем если тебе нужна очень точная модель листа, то ищи мат. модель и решай ее ![]() ![]() ![]() |
Автор: Амортизатор 11.6.2005, 20:41 |
Да, совершенно согласен. Твой флаг, о котором ты говоришь, он сделан лишь с целью имитации натурального флага, а я имел ввиду флаг, сделанный в Maya - т е его поведение целиком и полностью определяется физическими законами. Но так поступать, как я уже говорил, в моем случае совершенно не обязательно. Так что мне вполне подойдет некое подобие. Флаг, если тебе не трудно, можешь скинуть на майл. |
Автор: Амортизатор 14.6.2005, 17:45 |
Kolia, спасибо, флаг получил! |