Добрый день,
не найдя ответа самостоятельно решил обратиться к вам за помощью. Передо мной начальством поставлена задача реализовать в 3D модель заводского цеха (объектов будет много, пока не считал, но наверно около 500 штук) с возможностью взаимодействия с моделью по принципу - клик мышью по отдельному объекту - отображение информации.
До этого все сложные на первый взгляд задачи в VB6 заметно упрощались благодаря сторонним ActiveX и dll (работа с GDI+, базы данных, передача данных по сети и прочее). Интересно будет ли все также просто и с 3D.
От библиотеки требуются следующее:
- отображение 3D моделей оборудования в пространстве (модели без текстур, не сложные, скорее схематичные, максимум что может потребоваться - разные поверхности модели разного цвета)
- поддержка как минимум одного источника света и теней (директор разглядел в модели у западных коллег тени, поэтому и нам тени нужны обязательно)
- взаимодействие с моделями (наподобие события "3DObject1_Сlick")
- основной вид на цех должен быть "сверху-сбоку" (а-ля Warcraft), zoom, смена вида камеры на "сверху", навигация "мышкой" как в RTS играх
- сглаживание аналогичное применяемому в GDI+
- ограничитель кадров (vsync?), чтобы ноутбук начальника не перегревался при отрисовке модели с частотой ~1000 кадров в секунду (подозреваю что для простой 3D модели частоты будет примерно такими)
- оконный режим (т.е. не full screen)
- поддержка отображения подписей (не меняющих свое положение в зависимости от положения/зума камеры и привязанных к объекту)
- желательно поддержка движком 2D областей произвольной формы, наподобие тех что используются в GDI+ (для отображения направлений путей эвакуации на полу и т.п.)
- редактор 3D объектов, в котором можно создать модели, расставить в пространстве, а затем импортировать "сцену" (кажется это так называется) в 3D библиотеку в Visual Basic 6... мало знаком с подходами применяемыми в этой области, возможно потребуется добавлять объекты по одному?
- библиотека должна быть легкой, безглючной, работающей одинаково хорошо в разных ОС семейства Windows (включая Windows Vista)
Практически все можно было бы реализовать с помощью GDI+, однако приславутая трехмерность требует совершенно иного подхода.