Наше программное обеспечение производит много данных, которые имеют географическую привязку и записываются с течением времени. Мы рассматриваем способы улучшения визуализации, и показ (обработанных) данных в трехмерном виде с учетом географической привязки кажется хорошей идеей.
Я ищу рекомендации SO относительно того, какие 3D-библиотеки лучше всего использовать в качестве основы при создании такого рода визуализаций в приложении Windows на основе Delphi- / C ++ Builder. Я добавлю награду, когда смогу.
Исходя из этого, вы можете видеть, что интерактивная пространственно-трехмерная визуализация кажется хорошим подходом.Я предполагаю что-то такое, где вы можете легко и быстро перемещаться в космосе, а данные будут загружаться или генерироваться на лету в зависимости от того, на что вы смотрите. Я бы предпочел, чтобы мы не пытались писать нашу собственную 3D-библиотеку с нуля - для чего-то вроде этого должны быть хорошие существующие библиотеки, с которыми мы можем работать.
Итак, я надеюсь на библиотеку, которая поддерживает:
Есть две основные библиотеки, которые я рассмотрел до сих пор - я ищу компетентные мнения о них или о других библиотеках, которые я не рассматривал.
1. FireMonkey
Это новая библиотека пользовательского интерфейса Embarcadero, которая доступна только в XE2 и выше. Наше приложение основано на VCL, и мы хотели бы разместить его в окне VCL; который официально не поддерживается, но неофициально работает нормально или доступен у третьих лиц .
Сочетание UI-фреймворка и 3D-фреймворка с шейдерами и т. Д. Звучит великолепно. Но я не знаю, насколько сложна библиотека, какую поддержку она имеет для данных, которые не являются простыми объектами, такими как куб или сфера, и насколько хорошо она спроектирована . В этой последней ссылке содержится серьезная критика трехмерной стороны библиотеки - достаточно серьезная, я не уверен, что она имеет смысл в ее текущем состоянии на момент написания нетривиального трехмерного приложения.
Стоит ли пытаться написать новое окно визуализации в нашем приложении VCL с помощью FireMonkey?
2. GLScene
GLScene - это хорошо известная трехмерная среда OpenGL для Delphi. Я никогда не использовал его сам, поэтому не знаю, как он работает или как разработан. Однако я считаю, что он хорошо интегрируется в окна VCL и поддерживает шейдеры и современные графические процессоры. Я не знаю, как работают его граф сцены или навигация, или насколько хорошо могут быть реализованы динамические данные.
В его списке функций особо упоминаются некоторые вещи, которые меня интересуют , такие как легкое вращение / перемещение, процедурные объекты (подразумевающие, что динамические данные легко реализовать) и вспомогательные функции для выбора. Кажется, что шейдеры - это только Cg (не GLSL или другой язык, не зависящий от производителя.) Он также поддерживает «поддержку полиморфного изображения для текстурирования (допускает множество форматов, а также процедурные текстуры), легко расширяемый» - это может означать просто множество форматов изображений или может указывать на то, что текстура может быть изменена динамически, например, для динамических цветовое отображение.
Это единственные две известные мне основные 3D-библиотеки для Delphi или C ++ Builder. Я что-то пропустил? Есть ли плюсы и минусы, о которых я не знаю? Есть ли у вас какой-либо опыт использования любого из них для такого рода целей, и каких ловушек нам следует опасаться или функций, о которых мы должны знать и использовать?
В настоящее время мы используем Embarcadero RAD Studio 2010 и большинство нашего программного обеспечения написано на C ++. У нас есть небольшое количество Delphi, и мы можем рассмотреть возможность обновления IDE, но мы, скорее всего, подождем, пока не будет выпущен 64-битный компилятор C ++. По этой причине лучше всего подойдет библиотека, работающая в RS2010.
Спасибо за ваш вклад :) Мне нужны качественные ответы, поэтому я добавлю награду, когда смогу!