Открыть Инвентор
Эта статья нуждается в дополнительных цитатах для проверки . ( сентябрь 2009 г. ) |
Стабильная версия | 2.1.5.10 / 2003 г |
---|---|
Репозиторий | |
Тип | набор инструментов для 3D-графики |
Лицензия | Меньшая стандартная общественная лицензия GNU [1] |
Веб-сайт | сеть |
Open Inventor , первоначально IRIS Inventor , представляет собой C++ объектно-ориентированный набор инструментов для 3D-графики с сохранением режима , разработанный SGI для обеспечения более высокого уровня программирования для OpenGL . Его основные цели — повышение удобства и эффективности программиста. Open Inventor существует как в виде проприетарного программного обеспечения, так и в виде бесплатного программного обеспечения с открытым исходным кодом , при условии соблюдения требований GNU Lesser General Public License (LGPL) версии 2.1.
Основная цель заключалась в том, чтобы сделать 3D-программирование доступным путем введения объектно-ориентированного API, позволяющего разработчикам создавать сложные сцены без сложностей низкоуровневого OpenGL. В набор инструментов включены такие функции, как графы сцен, заранее определенные формы и автоматическое отсечение окклюзии, чтобы упростить управление сценой. В то время как Open Inventor фокусировался на простоте использования, проект OpenGL Performer, возникший в том же контексте, делал упор на оптимизацию производительности. Позже эти два проекта объединились в попытке найти баланс между доступностью и производительностью, кульминацией чего стали такие инициативы, как Cosmo 3D и OpenGL++. Эти проекты прошли различные стадии разработки и доработки, способствуя развитию парадигм программирования 3D-графики.
Ранняя история
[ редактировать ]Примерно в 1988–1989 годах Вэй Йен попросил Рикка Кэри возглавить проект IRIS Inventor. Их целью было создать набор инструментов, который упростил бы разработку приложений для 3D-графики. Стратегия была основана на предпосылке, что люди не разрабатывают достаточное количество 3D-приложений с помощью IRIS GL, поскольку это отнимает слишком много времени с помощью низкоуровневого интерфейса, предоставляемого IRIS GL. Если бы 3D-программирование стало проще за счет использования объектно-ориентированного API, тогда бы больше людей создавали 3D-приложения, и SGI выиграла бы. Таким образом, кредо всегда было «простота использования», а не «производительность», и вскоре слоган «3D-программирование для людей» стал широко использоваться.
Использовать
[ редактировать ]OpenGL низкого уровня (OGL) — это интерфейс прикладного программирования , который принимает списки простых полигонов и отображает их как можно быстрее. Чтобы сделать что-то более практичное, например «нарисовать дом», программист должен разбить объект на серию простых инструкций OGL и отправить их в движок для рендеринга. Одна из проблем заключается в том, что производительность OGL очень чувствительна к тому, как эти инструкции отправляются в систему, что требует от пользователя знать, какие инструкции отправлять и в каком порядке, и заставляет их тщательно отбирать данные, чтобы избежать отправки объектов, которые не являются его даже не видно на полученном изображении. Для простых программ необходимо выполнить огромный объем программирования, чтобы начать работу.
Open Inventor (OI) был написан для решения этой проблемы и предоставления общего базового слоя для начала работы. Объекты можно было разделить на подклассы из ряда заранее созданных фигур, таких как кубы и многоугольники, а затем легко преобразовать в новые формы. «Мир», который нужно было нарисовать, был помещен в граф сцены, управляемый OI, при этом система автоматически применяла отсечение окклюзии к объектам на графике. OI также включал ряд объектов-контроллеров и систем для их применения к сцене, упрощая общие задачи взаимодействия. Наконец, OI также предоставила общий формат файлов для хранения «миров» и код для автоматического сохранения или загрузки мира из этих файлов. Базовые 3D-приложения затем можно было бы написать в несколько сотен строк в рамках OI, связав части набора инструментов «связующим» кодом.
С другой стороны, OI, как правило, работал медленнее, чем написанный вручную код, поскольку общеизвестно, что 3D-задачи трудно добиться хорошей производительности без перетасовки данных в графе сцены вручную. Другая практическая проблема заключалась в том, что OI можно было использовать только с собственным форматом файлов, что вынуждало разработчиков писать преобразователи во внутреннюю систему и обратно.
Исполнитель
[ редактировать ]Примерно через год после начала проекта Inventor начала проявляться другая философия. Вместо того, чтобы просто упростить написание приложений в системах SGI, цель была изменена, чтобы затруднить написание медленных приложений. Члены команды Inventor ушли, чтобы сформировать собственную группу, которая легла в основу проекта OpenGL Performer . Performer также основывался на внутреннем графе сцены, но ему было разрешено модифицировать его для повышения скорости по своему усмотрению, даже удаляя «менее важные» объекты и полигоны, чтобы поддерживать гарантированный уровень производительности. Performer также использовал ряд процессов для параллельного выполнения задач для повышения производительности, что позволило запускать его (в одной версии) на нескольких процессорах. В отличие от Inventor, Performer оставался проприетарным, поэтому у SGI была возможность модифицировать API по мере необходимости, чтобы идти в ногу с последними усовершенствованиями аппаратного обеспечения.
Один из 1990-х.
[ редактировать ]В какой-то момент в середине 1990-х годов стало понятно, что нет веской причины, по которой эти две системы нельзя было бы объединить, в результате чего был создан единый API высокого уровня, обладающий как производительностью, так и программируемостью. SGI начала работу над еще одним проектом, направленным на объединение этих двух проектов, кульминацией которого в конечном итоге стал Cosmo 3D . Однако у Cosmo был ряд практических проблем, которых можно было бы избежать с помощью лучшего дизайна.
В конечном итоге все эти идеи объединились, чтобы создать проект OpenGL++ вместе с Intel , IBM и DEC . По сути, это очищенная и более «открытая» версия Cosmo 3D, работа над Cosmo закончилась, и SGI полностью перешла на OpenGL++. Разработка OpenGL++ затянулась и в конечном итоге была прекращена, а затем SGI снова попыталась сотрудничать с Microsoft с аналогичным проектом «Фаренгейт» , который также умер. В 1994 году SGI передала лицензию на Open Inventor двум сторонним разработчикам: Template Graphics Software (TGS) и Portable Graphics; в 1996 году TGS купила Portable Graphics, став единственным лицензиатом.
Новейшая история
[ редактировать ]После многих лет доступности исключительно по проприетарной лицензии от TGS (теперь FEI ), Inventor был выпущен под LGPL лицензией с открытым исходным кодом в августе 2000 года и доступен от SGI. Примерно в то же время Coin3D SIM (Systems in Motion) выпустила библиотеку клонов API . Позже SIM была приобретена группой Kongsberg и переименована в Kongsberg SIM . Библиотека Coin была написана с нуля , не используя общий код с исходной библиотекой SGI Inventor, но реализовав тот же API из соображений совместимости. Kongsberg завершил разработку Coin3D в 2011 году. [2] и выпустил код под лицензией BSD с 3 пунктами.
Версия с открытым исходным кодом от SGI не поддерживается, и SGI не заявила о своем намерении продолжать развивать библиотеку. Однако версия с открытым исходным кодом используется в MeVisLab (MeVis Medical Solutions AG и Fraunhofer MEVIS), и ее разработка продолжается. [3] Thermo Scientific Open Inventor все еще находится в разработке, и в него добавлен ряд улучшений к исходному API Inventor для медицинских изображений , вычислений медицинских изображений , трехмерной сейсмологии отражения и моделирования нефтяных пластов .
API Open Inventor по-прежнему широко используется в широком спектре научных и инженерных систем визуализации по всему миру для разработки сложного прикладного 3D-программного обеспечения.TGS была приобретена Mercury Computer Systems в 2004 году. В июне 2009 года она стала независимой компанией Visualization Sciences Group (VSG). В 2012 году VSG была приобретена компанией FEI. Компания FEI была приобретена в 2016 году подразделением научных материалов и структурного анализа Thermo Fisher , которое продолжает разрабатывать (и поддерживать) Open Inventor.
Ссылки
[ редактировать ]- ^ «SGI — Центр разработчиков с открытым исходным кодом — Open Inventor» . Архивировано из оригинала 19 октября 2017 г. Проверено 25 октября 2013 г.
- ^ «Coin3D/Coin/wiki/Home — Github» . Гитхаб . 30 марта 2020 г.
- ^ MeVisLab
Внешние ссылки
[ редактировать ]- Официальный сайт SGI Open Inventor
- Thermo Scientific Open Inventor , Коммерческая реализация API
- Открыть форум пользователей Inventor
- Coin3D , Независимая реализация API
- Koin3D , LWJGL-порт Coin3D
- API-интерфейсы 3D-сцены
- Интерфейсы прикладного программирования
- Библиотеки C Sharp
- библиотеки С++
- Кроссплатформенное программное обеспечение
- Графические библиотеки
- Библиотеки Java (язык программирования)
- Инструменты разработки Java
- OpenGL
- Комплекты разработки программного обеспечения
- Программное обеспечение, использующее Qt
- Виртуальная реальность