Подскажите, где искать информацию
От: Reostat Россия  
Дата: 10.11.04 13:52
Оценка:
Доброго времени суток!
Есть такая задача: нужно программно нарисовать 3D фигуру человека, причем с анатомической точностью. Параметром модели является некоторое число... грубо говоря, коэффициент количества мышц. Т.е. при 100% должен рисоваться эдакий "качок", при 0% — "Шурик"
Я в этом деле профан, поэтому даже не знаю, с чего начать. Что использовать: DirectX или OpenGL? И как эти мышцы на кости натягивать — функции какие-нить для интерполяции использовать? Или движок какой есть специальный? Подскажите, плз, с чего начать и где искать информацию...
...бабочки, курицы и прочие травоядные.
Re: Подскажите, где искать информацию
От: Программер  
Дата: 10.11.04 14:10
Оценка:
Здравствуйте, Reostat, Вы писали:

R>Подскажите, плз, с чего начать и где искать информацию...


Начал бы я с учебника по анатомии
А если в программинге, то почитай доки по DirectX, поставь DirectX SDK
Re: Подскажите, где искать информацию
От: yxiie Украина www.enkord.com
Дата: 10.11.04 14:20
Оценка:
Здравствуйте, Reostat, Вы писали:

R>Доброго времени суток!

R>Есть такая задача: нужно программно нарисовать 3D фигуру человека, причем с анатомической точностью. Параметром модели является некоторое число... грубо говоря, коэффициент количества мышц. Т.е. при 100% должен рисоваться эдакий "качок", при 0% — "Шурик"
R>Я в этом деле профан, поэтому даже не знаю, с чего начать. Что использовать: DirectX или OpenGL? И как эти мышцы на кости натягивать — функции какие-нить для интерполяции использовать? Или движок какой есть специальный? Подскажите, плз, с чего начать и где искать информацию...

Direct3D Skinned Mesh? начиная с восьмой версии есть
... << RSDN@Home 1.1.3 stable >>
Re: Подскажите, где искать информацию
От: Ulys  
Дата: 10.11.04 18:35
Оценка:
Здравствуйте, Reostat, Вы писали:

R>Доброго времени суток!

R>Есть такая задача: нужно программно нарисовать 3D фигуру человека, причем с анатомической точностью. Параметром модели является некоторое число... грубо говоря, коэффициент количества мышц. Т.е. при 100% должен рисоваться эдакий "качок", при 0% — "Шурик"
R>Я в этом деле профан, поэтому даже не знаю, с чего начать.

Сначала подумать: действительно ли это тебе нужно?
Во первых, нарисовать 3d модель с анатомической точностью ОЧЕНЬ сложно даже в специальной программе (без всякого там программирования). В 3d MAX, например, для этого существует плагин Absolute Character Tools (последняя версия пока 1.6), но даже с ним требуется большие навыки работы с такими программами (в свое время я как-то делал простенькие рекламные ролики в 3d Studio для местного TV, да и сейчас иногда студентов 3d MAX-у учу, но за это не взялся бы). Считай, тебе придется писать 3d MAX вместе с плагином, да потом еще и моделировать учиться.
Во вторых, естественно, анатомия: минимум атлас медицинский проштудировать, там несколько томов, медики не один семестр изучают.
В-третьих, навыки программирования иметь надо (минимум MFC+OpenGL, и побольше, чем просто ознакомиться).

Исходя из этого, можно составить твой план действий на ближайшую пару лет:
1) Посмотреть программы по 3d моделированию, освоиться со способами моделирования и выбрать наиболее подходящие (6 мес).
2) Запастись в ближайшей библиотеке медицинскими анатомическими атласами и проштудировать их (6 мес).
3) Залезть на www.ПЕРВЫЕ ШАГИ.ru и/или http://www.proglib.ru/ (или еще где), поискать подходящие исходники и перепотрошить их (1-2 мес).
4) Накачать из интернета учебников по DirectX или OpenGL, изучить и решить, чем выбранные способы моделирования реализовать (2-3 мес).
5) Написать программу (неограниченно).

Если серьезно, самый простой выход — написать программу, читающую 3ds или wrml объекты (исходник тут есть http://lib.training.ru/Lib/ArticleDetail.aspx?ar=3334&amp;l=n&amp;mi=75&amp;mic=330), найти готовую модель (в запаковке Absolute Character Tools 1.6 есть очень точная, называется cgAdam_v1.0.2.5.max, весит около 10 мегов), научиться ее считывать и редактировать. Я бы смотрелку сделал в OpenGL (для новичка куда проще директа), только тебе для моделирования еще математику учить придется (видимо, масштабирование с искажаниями по одной или нескольком осям, координаты точек поверхностей пересчитывать и т.д), или функцией glScaled(x,y,z) пользоваться, тока слабо представляю как каждую мышцу масштабировать.

А вообще, прикинь степень нужности программы и количество потраченного времени и реши, браться за нее, или нет.
Впрочем, не хочу вас слишком обнадеживать: я вовсе не уверен, что все понял правильно. Два смысловых слоя я уловил, но, по-моему, там был еще и третий... (А&Б Стругацкие, "Жук в муравейнике").
Re[2]: Подскажите, где искать информацию
От: Reostat Россия  
Дата: 11.11.04 10:51
Оценка:
Здравствуйте, Ulys, Вы писали:

U>Сначала подумать: действительно ли это тебе нужно?

После прочтения твоего ответа действительно начал над этим задумываться
U>Во вторых, естественно, анатомия: минимум атлас медицинский проштудировать, там несколько томов, медики не один семестр изучают.
Да, с этим-то вот уж действительно проблема... правда, под рукой есть сам медик
U>В-третьих, навыки программирования иметь надо (минимум MFC+OpenGL, и побольше, чем просто ознакомиться).
Ну, я уж не настолько профан... два высших образования (причем не купленных), одно из них — информационные технологии в физических исследованиях Просто с 3D графикой на таком уровне детализации не работал.
U>...только тебе для моделирования еще математику учить придется...
Мало того, что уже выучил (см. выше), да еще и студентам уже четыре года преподаю

Ну а если без лирики, то спасибо за столь развернутый ответ, Ulys. У меня также возникла пара идей (через Mesh'ы и интерполяцию), но там тоже без художников и медиков не обойтись... в общем, овчинка выделки не стоит.

P.S. Да, с "профаном" я чего-то погорячился
...бабочки, курицы и прочие травоядные.
Re[3]: Подскажите, где искать информацию
От: Ulys  
Дата: 11.11.04 13:05
Оценка:
Здравствуйте, Reostat, Вы писали:

R>У меня также возникла пара идей (через Mesh'ы и интерполяцию), но там тоже без художников и медиков не обойтись... в общем, овчинка выделки не стоит.


Все-таки поищи исходники программ, читающих 3ds или wrml, а самое главное, готовые 3d модели (та, что я упомянул, например, ОЧЕНЬ детализирована — кости, мышцы, связки, кожа и т.д.). С преобразованием разобраться гораздо проще.
А еще проще, если есть навыки программирования, попробовать писать скрипты в 3d MAX. Теоретически, так можно сделать то, что задумано, используя готовую модель, но естественно, не в собственной программе.
Впрочем, не хочу вас слишком обнадеживать: я вовсе не уверен, что все понял правильно. Два смысловых слоя я уловил, но, по-моему, там был еще и третий... (А&Б Стругацкие, "Жук в муравейнике").
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.