| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Звук, графика и видео > Каритнка из 3DsMax |
| Автор: 5naip 20.10.2006, 17:34 |
| Здравствуйте. Мне хотелось бы сдлеать программу на Delphi, в которой реализована возможность просмотра (кручения/верчения) 3D модельки из Max`a. Я не прошу у вас объяснить мне как это делается и сделать за меня.Я прошу подсказать мне - где рыть на предмет мануалов. Что мне потребуется для этого? Какие технологии реализуются? И,если есть - пример готовой программы. |
| Автор: Nicholas_S 20.10.2006, 18:04 |
| Прывет. Есть 2 подхода к решению задачи. Первый. Разобрать документацию по какому-либо графическому формату. Например, это может быть формат 3ds. В сети есть исходные коды для Delphi по его разбору, так что не поленись, поищи, поисковики никто еще не отменял. Или через альтернативный экспорт, например, в AutoCaD-фомат (DXF). Второй. 3DMAX имеет встроенный скриптовый язык, который ты можешь испоользовать для написание кода для создание собственного формата файла 3D-сцены. Это требует знаний основ 3D-графики, плюс знание самого скрипта MAX'а. Есть также готовые решения, опять же можешь найти в сети (поищи по ключевому слову "mega" - это название файла скрипта, написанный специально для импорта 3D моделей из Макса. Заодно, может быть, наткнешься на соответствующую статью, в которой рассказывается в деталях, как это происходит). Затем тебе потребуется реализовать чтение/построение/отрисовку импортированной 3D сцены в Delphi. Здесь уж, как говорится, на вкус и цвет. Для построения тебе необходимо, опять же, знать основы 3D графики (создание 3D объектов, понятия вершин, граней и проч., как минимум). Отрисовку можешь реализовать используя стандартные библиотеки OpenGL/DirectX. Если есть желание глубже понять, как все это работает, то искренне советую реализовать отрисовку программно. Если заинтересует тема, то пиши, не стесняйся |
| Автор: Bitter 21.10.2006, 23:16 |
| По-моему идеальный вариант - экспортировать объекты в формате .ase . Это текстовый файл, в котором подробно на человеческом языке описан экспортируемый объект, к томуже легко реализовать чтение данного файла. После чего достаточно загнать всю информацию в буффер вершин и вызвать команду DrawPrimitive. Правда, в данном файле не совсем корректо записываются нормали, по этому расчитывать нормали прийдется самому. Но информации на эту тему в инете полно. В данном формате вершины перечисляются против часовой стрелки. |
| Автор: Nicholas_S 22.10.2006, 00:04 |
| Bitter, это приемлемый, но не идеальный вариант. Почему? Потому что практически головой своей думать не надо. Когда же ты делаешь все самостоятельно, приходит незаменимый опыт. Разобравшись в скрипте, можно экспортировать в человеческий, как ты сказал файл, еще человечнее, при этом реализуя разные методы хранения вершин/граней/нормалей. Плюс, можно экспортировать покадрово анимацию, материалы, источники освещения и проч. Согласись, куда приятнее получить результат от себя, чем тупо посмотреть на результат других. |