Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Звук, графика и видео > Каритнка из 3DsMax


Автор: 5naip 20.10.2006, 17:34
Здравствуйте.
Мне хотелось бы сдлеать программу на Delphi, в которой реализована возможность просмотра (кручения/верчения) 3D модельки из Max`a.
Я не прошу у вас объяснить мне как это делается и сделать за меня.Я прошу подсказать мне - где рыть на предмет мануалов.
Что мне потребуется для этого?
Какие технологии реализуются?
И,если есть - пример готовой программы.

Автор: Nicholas_S 20.10.2006, 18:04
Прывет.
Есть 2 подхода к решению задачи.

Первый. Разобрать документацию по какому-либо графическому формату. Например, это может быть формат 3ds.
В сети есть исходные коды для Delphi по его разбору, так что не поленись, поищи, поисковики никто еще не отменял. smile
Или через альтернативный экспорт, например, в AutoCaD-фомат (DXF).

Второй. 3DMAX имеет встроенный скриптовый язык, который ты можешь испоользовать для написание кода для создание собственного формата файла 3D-сцены. Это требует знаний основ 3D-графики, плюс знание самого скрипта MAX'а. Есть также готовые решения, опять же можешь найти в сети (поищи по ключевому слову "mega" - это название файла скрипта, написанный специально для импорта 3D моделей из Макса. Заодно, может быть, наткнешься на соответствующую статью, в которой рассказывается в деталях, как это происходит).

Затем тебе потребуется реализовать чтение/построение/отрисовку импортированной 3D сцены в Delphi.
Здесь уж, как говорится, на вкус и цвет. Для построения тебе необходимо, опять же, знать основы 3D графики (создание 3D объектов, понятия вершин, граней и проч., как минимум). Отрисовку можешь реализовать используя стандартные библиотеки OpenGL/DirectX. Если есть желание глубже понять, как все это работает, то искренне советую реализовать отрисовку программно.

Если заинтересует тема, то пиши, не стесняйся  smile, помогу. Есть собственные программы/алгоритмы, включающие построение, отрисовку, освещение и др., но, пойми правильно, гораздо приятнее все зделать самому, воспользовавшись помощью, чем тупо скопировать исходники.  smile 

Автор: Bitter 21.10.2006, 23:16
По-моему идеальный вариант - экспортировать объекты в формате .ase . Это текстовый файл, в котором подробно на человеческом языке описан экспортируемый объект, к томуже легко реализовать чтение данного файла. После чего достаточно загнать всю информацию в буффер вершин и вызвать команду DrawPrimitive.
Правда, в данном файле не совсем корректо записываются нормали, по этому расчитывать нормали прийдется самому. Но информации на эту тему в инете полно.
В данном формате вершины перечисляются против часовой стрелки.

Автор: Nicholas_S 22.10.2006, 00:04
Bitter, это приемлемый, но не идеальный вариант. Почему? Потому что практически головой своей думать не надо. Когда же ты делаешь все самостоятельно, приходит незаменимый опыт. Разобравшись в скрипте, можно экспортировать в человеческий, как ты сказал файл, еще человечнее, при этом реализуя разные методы хранения вершин/граней/нормалей. Плюс, можно экспортировать покадрово анимацию, материалы, источники освещения и проч. Согласись, куда приятнее получить результат от себя, чем тупо посмотреть на результат других.  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)