Библиотека визуализации - Visualization Library
Эта статья слишком полагается на Рекомендации к основные источники.Сентябрь 2019) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
изначальный выпуск | 7 мая 2007 г. |
---|---|
Стабильный выпуск | 1.0.0 / 16 мая 2012 г. |
Написано в | C ++ |
Операционная система | Кроссплатформенность |
Тип | 3D графика |
Лицензия | Упрощенная лицензия BSD |
Интернет сайт | библиотека визуализации |
Библиотека визуализации (VL) является промежуточным программным обеспечением C ++ с открытым исходным кодом для приложений 2D / 3D графики на основе OpenGL 4, предназначенный для разработки портативных приложений для Майкрософт Виндоус, Linux и Mac OS X операционные системы.
Цели дизайна
Библиотека визуализации была разработана для:
- Реализуйте интуитивно понятную, тонкую и портативную оболочку C ++ для OpenGL 4.
- Будьте полностью совместимы со старыми версиями OpenGL (1.x, 2.x и 3.x).
- Предоставляйте функции и характеристики современных графических процессоров неигровым приложениям, таким как виртуальная реальность, научная и медицинская визуализация, симуляторы, обучение и т. Д.
- Предоставьте универсальную и детализированную структуру, которую можно использовать для создания настраиваемых методов рендеринга.
- Избегайте архитектурных ограничений парадигмы графа убер-сцены.
- Дайте программисту как можно больше контроля, заботясь о грязных деталях.
Внутренний дизайн
Дизайн библиотеки визуализации основан на алгоритмической специализации и разделении структур данных, в отличие от многих других 3D-фреймворков, входящих в так называемый «uber граф сцены «семейство 3D-движков, которые хранят всю информацию о рендеринге в единой иерархической структуре. Таким образом, библиотека визуализации использует различные структуры данных (возможно, иерархические) для управления каждым конкретным доменом конвейера рендеринга.
Например, дерево преобразования хранится в отдельной структуре данных древовидного графа, а часть сцены («Актеры» на языке библиотеки визуализации) может свободно ссылаться на узел дерева преобразования.
Актеры хранятся в своей собственной структуре данных разделения сцены, из которой их видимость проверяется на соответствие вид усеченной вершины и из которых в конечном итоге они извлекаются во время рендеринга и становятся частью очереди рендеринга. Это позволяет VL быть независимым и использовать преимущества практически любого типа техники управления сценой, такой как PVS, портал / сектор, KdTree, квадродеревья, Octrees и Т. Д.
Шейдеры также являются концепцией, независимой от остальной логики и не требующей использования какой-либо иерархической структуры данных Актером. Однако VL предоставляет класс ShaderNode в качестве сервиса высокого уровня, который позволяет пользователю обновлять шейдеры и управлять ими иерархическим способом, используя правила наследования, аналогичные тем, которые обычно доступны в фреймворках на основе uber-сцены-графа. модульный подход, позволяющий реализовать настраиваемые методы рендеринга путем сборки и повторного использования компонентов VL.
Основные особенности
- Поддержка OpenGL: 1.x, 2.x, 3.x, 4.x.
- Поддержка ОС: Windows XP, Vista, 7, Mac OS, Linux
- Привязки GUI: Win32, MFC, Qt4, wxWidgets, SDL, GLUT.
- Форматы файлов 3D: 3DS, OBJ, PLY (двоичный и ascii), STL (двоичный и ascii), AC3D, MD2. Можно подключить больше.
- Поддерживаемые форматы файлов изображений: JPG, PNG, TGA, TIFF, BMP, DDS, DICOM. Можно подключить больше.
- Визуализация объема: рендеринг объема Raycast (функции передачи, изоповерхность и т.д.), выровненные по экрану срезы, эффективная реализация маршевых кубов.
- Текстурирование: 1D / 2D / 3D текстуры, кубические карты, мульти-текстурирование, массивы текстур, прямоугольники текстур, рендеринг в текстуру, генерация координат текстуры, комбайнеры текстур, генерация mipmapping и mipmaps, анизотропная фильтрация, сжатые текстуры, текстуры глубины, целочисленные текстуры, не нормализованные текстуры, буферы текстур, текстуры мультисэмплов.
- OpenGL Shading Language 1.x - 4.x поддерживает шейдеры геометрии и тесселяции.
- Автоматическое управление прозрачностью.
- Автоматическая сортировка состояний рендеринга и минимизация настроек.
- Автоматическое управление объектами буфера вершин.
- Обширная поддержка объектов фреймбуфера.
- Предоставленные менеджеры сцен: общее иерархическое дерево томов, KdTree, граф сцены на основе портала.
- Высококачественный рендеринг текста в Юникоде и функции и классы обработки текста
- Расширенная библиотека векторов / матриц C ++ на основе GLSL.
- Функции оптимизации геометрии, уменьшение / децимация треугольников, удаление двух вершин и т. Д.
- Молекулярная визуализация.
- Производство экструзии.
- Линейная интерполяция и интерполяция траекторий Катмулла-Рома.
- Бикубические поверхности Безье.
- Улучшение края и силуэта.
- Виртуальная файловая система: абстрактная файловая система, которая прозрачно обеспечивает доступ к файлам на диске, файлам памяти, файлам .zip и .gz.
- Расширяемая система ресурсов для поддержки новых типов ресурсов и форматов файлов.
- Много документации и много примеров.
Статус разработки
Первый публичный выпуск библиотеки визуализаций состоялся 7 мая 2007 года.
Библиотека визуализации в настоящее время находится в своем втором стабильном выпуске, VL 2011.05.1140, который следует за первым, VL 2009.07.640. Несмотря на то, что дизайн остался практически таким же, последний стабильный выпуск отличается от своего предшественника в основном следующими аспектами: поддержка OpenGL 3 и 4 и, в частности, шейдеры тесселяции, однородные переменные двойной точности, новые форматы текстур, такие как текстуры с множеством выборок и объекты текстуры, расширенная поддержка объектов буфера кадра и лучшая настройка для приложений, интенсивно использующих GLSL, среди многих других улучшений.