WikiDer > Открыть Inventor

Open Inventor
Открыть Inventor [от SGI]
Стабильный выпуск
2.1.5.10 / 2003; 17 лет назад (2003)
Репозиторий Отредактируйте это в Викиданных
ТипНабор инструментов для 3D-графики
ЛицензияСтандартная общественная лицензия ограниченного применения GNU[1]
Интернет сайтосс.sgi.com/ проекты/ изобретатель/

Открыть Inventorизначально IRIS Inventor, это C ++ объектно-ориентированный сохраненный режим Набор инструментов для 3D-графики, разработанный SGI чтобы обеспечить более высокий уровень программирования для OpenGL. Его основные цели - повышение удобства и эффективности программиста. Open Inventor существует как проприетарное программное обеспечение и бесплатное программное обеспечение с открытым исходным кодом, с учетом требований Стандартная общественная лицензия ограниченного применения GNU (LGPL), версия 2.1.

Ранняя история

Около 1988–1989 гг. Вэй Йен спросил Рикк Кэри возглавить проект IRIS Inventor. Их цель состояла в том, чтобы создать набор инструментов, который упростил бы разработку приложений для 3D-графики. Стратегия была основана на предпосылке, что люди не разрабатывают достаточное количество 3D-приложений с IRIS GL, потому что это отнимает слишком много времени с помощью низкоуровневого интерфейса, предоставляемого IRIS GL. Если бы трехмерное программирование упростилось за счет использования объектно-ориентированного API, то больше людей могло бы создавать трехмерные приложения, и SGI выиграла бы. Поэтому кредо всегда было «простота использования» перед «производительностью», и вскоре лозунг «3D-программирование для людей» стал широко использоваться.

Использовать

OpenGL (OGL) - низкий уровень Интерфейс прикладного программирования который берет списки простых многоугольников и отображает их как можно быстрее. Чтобы сделать что-то более практичное, например «нарисовать дом», программист должен разбить объект на серию простых инструкций OGL и отправить их в движок для рендеринга. Одна из проблем заключается в том, что производительность OGL очень чувствительна к тому, как эти инструкции отправляются в систему, требуя от пользователя знать, какие инструкции отправлять и в каком порядке, и вынуждая их тщательно отбирать данные, чтобы избежать отправки объектов, которые не t даже видно на получившемся изображении. Для простых программ необходимо выполнить огромный объем программирования для начала.

Open Inventor (OI) был написан для решения этой проблемы и предоставления общего базового уровня, с которым можно начать работу. Объекты можно было разделить на подклассы из ряда предварительно свернутых форм, таких как кубы и многоугольники, а затем легко преобразовать в новые формы. «Мир», который нужно было нарисовать, был помещен в граф сцены выполняется OI, при этом система автоматически применяет отсечение окклюзии к объектам на графике. OI также включил ряд объектов контроллеров и систем для их применения в сцене, что упростило общие задачи взаимодействия. Наконец, OI также предоставила общий формат файлов для хранения «миров» и код для автоматического сохранения или загрузки мира из этих файлов. Затем базовые 3D-приложения можно было бы написать в несколько сотен строк в OI, связав вместе части набора инструментов с помощью «связующего» кода.

С другой стороны, OI имел тенденцию быть медленнее, чем рукописный код, так как 3D-задачи, как известно, трудно выполнять без перетасовки данных в графе сцены вручную. Другая практическая проблема заключалась в том, что OI можно было использовать только с его собственным форматом файла, что вынуждает разработчиков писать преобразователи во внутреннюю систему и обратно.

Исполнитель

Примерно через год после начала работы над проектом Inventor начала проявляться иная философия. Вместо того, чтобы просто упростить написание приложений в системах SGI, цель была изменена, чтобы затруднить написание медленных приложений. Члены команды изобретателей ушли, чтобы сформировать собственную группу, которая легла в основу OpenGL Performer проект. Performer также был основан на внутреннем графе сцены, но ему было разрешено модифицировать его для большей скорости по своему усмотрению, даже отбрасывая «менее важные» объекты и полигоны, чтобы поддерживать гарантированный уровень производительности. Исполнитель также использовал ряд процессы для параллельного выполнения задач для повышения производительности, что позволяет запускать (в одной версии) на нескольких процессорах. В отличие от Inventor, Performer оставался частной собственностью, поэтому у SGI была возможность изменять API по мере необходимости, чтобы идти в ногу с последними аппаратными усовершенствованиями.

Середина 1990-х

В какой-то момент в середине 1990-х было осознано, что нет веских причин, по которым две системы нельзя было объединить, что привело к единому высокоуровневому API, обладающему как производительностью, так и программируемостью. SGI начала работу над еще одним проектом, направленным на их объединение, что в конечном итоге привело к Космо 3D. Однако у Cosmo был ряд практических проблем, которых можно было избежать с помощью улучшенного дизайна.

В конечном итоге все эти идеи объединились, чтобы создать OpenGL ++ усилия, наряду с Intel, IBM и DEC. По сути, это очищенная и более «открытая» версия Cosmo 3D, работа над Cosmo закончилась, и SGI полностью перешла на OpenGL ++. Работа над OpenGL ++ затянулась и в конечном итоге прекратилась, и SGI снова попробовал с Microsoft с аналогичным Фаренгейт проект, который тоже умер. В 1994 году SGI передала лицензию на Open Inventor двум сторонним разработчикам, Программное обеспечение для создания шаблонов графики (TGS) и переносимая графика; в 1996 году TGS купила Portable Graphics, сделав их единственным лицензиатом.

Недавняя история

После многих лет существования исключительно по частной лицензии от TGS, теперь FEI, Inventor выпущен под LGPL лицензия с открытым исходным кодомв августе 2000 г., который доступен в SGI.

Примерно в то же время библиотека клонирования API вызвала Coin3D был выпущен компанией SIM (Systems in Motion). Позже SIM была приобретена группой Kongsberg и переименована в Kongsberg SIM. Библиотека монет была написана на чистая комната мода с нуля, без использования кода с исходной библиотекой SGI Inventor, но реализация того же API по соображениям совместимости. Kongsberg завершил разработку Coin3D в 2011 году.[2] и выпустил код под лицензией BSD с тремя пунктами.

Версия с открытым исходным кодом от SGI в настоящее время не поддерживается, и SGI не продемонстрировала никаких обязательств по дальнейшему развитию библиотеки. Однако релиз с открытым исходным кодом используется в MeVisLab (MeVis Medical Solutions AG и Fraunhofer MEVIS), и его разработка продолжается.[3]

Thermo Scientific Open Inventor все еще процветает, находится в стадии активной разработки и добавил множество улучшений в исходный Inventor API специально для медицинская визуализация, обработка медицинских изображений, 3D сейсмология отражений, и нефтяной пласт моделирование.

Open Inventor API по-прежнему широко используется в широком спектре научных и инженерных систем визуализации по всему миру, хорошо зарекомендовав себя для эффективной разработки сложного прикладного программного обеспечения для 3D.

Thermo Scientific Open Inventor
Разработчики)Thermo Fisher Scientific
Стабильный выпуск
10.0 / 10 октября 2018 г.
Репозиторий Отредактируйте это в Викиданных
Написано вC ++ .СЕТЬ Ява
ПлатформаWindows Linux macOS
ТипSDK для 3D-визуализации данных
ЛицензияПроприетарный коммерческое программное обеспечение (Бесплатно для некоммерческого академического использования)
Интернет сайттермоловка.com/ openinventor

В 2004 году ТГС была приобретена Компьютерные системы Mercury, а в июне 2009 года предприятие снова стало независимой компанией, получившей название Группа визуализации наук (VSG). В 2012 году VSG была приобретена Компания FEI. В 2016 г. Компания FEI был приобретен Thermo Fisher Scientific (Отделение материалов и структурного анализа), которое продолжает развиваться и поддерживать Открыть Inventor.

Рекомендации

  1. ^ "SGI - Developer Central Open Source - Open Inventor".
  2. ^ "Coin3D / Coin / wiki / Главная страница - Github". 30 марта 2020.
  3. ^ MeVisLab

внешняя ссылка