Jump to content

OpenSG

OpenSG
Написано в С++
Операционная система Windows , Linux , Солярис , OS X
Тип Граф сцены
Лицензия LGPL
Веб-сайт исходная кузня .сеть /проекты /opensg /

OpenSG — это система графов сцен для создания графических программ реального времени, например, для приложений виртуальной реальности. Он разработан в соответствии с принципами открытого исходного кода, имеет лицензию LGPL и может использоваться свободно. Он работает в Windows , Linux , Solaris и OS X и основан на OpenGL .

Его основными особенностями являются расширенная многопоточности и кластеризации поддержка (с отрисовкой по первой и последней сортировке , среди других методов), хотя он также прекрасно пригоден для использования в однопоточных односистемных приложениях.

Это не часть Khronos Group .

Он был запущен, как и многие другие системы, в конце исчезновения графов сцен в 1999 году, когда Microsoft и SGI умер проект по графическому API по Фаренгейту . Учитывая, что на рынке и на горизонте не было другой системы графов сцен с теми функциями, которые хотели авторы, они решили создать свою собственную.

OpenSG не следует путать с OpenSceneGraph , который представляет собой совершенно другой API графа сцены, чем-то похожий на OpenGL Performer . Разработка обоих началась примерно в одно и то же время, и оба выбрали схожие названия.

Технология

[ редактировать ]

OpenSG — это граф сцены, подобный многим другим, но обладающий рядом уникальных особенностей, которые отличают его от других. Он имеет блокированную систему управления состоянием, позволяющую снизить затраты на оптимизацию изменений состояния, очень гибкий обход и другие механизмы, позволяющие обмениваться данными во время выполнения и улучшать основные структуры данных, но самым необычным аспектом является многопоточный подход. [ 1 ]

Графы сцен, как известно, являются трудной целью для многопоточности, поскольку они содержат очень большие структуры данных, легко занимающие сотни мегабайт памяти. Дублировать их невозможно из-за больших накладных расходов. Многие графы сцен просто блокируют отдельные узлы, чтобы предотвратить повреждение данных из-за параллельной записи, но это лишь частичное решение. Состояние графа сцены представлено всем графом сцены, только защита отдельных узлов может привести к противоречивым результатам (например, при запуске асинхронного физического моделирования только обновление частей графа приведет к отображению частичных шагов моделирования). OpenSG использует выборочную мультибуферизацию, дублируя небольшие части графа для каждого потока, который необходимо защитить, одновременно разделяя объемные данные, такие как массивы вершин и изображения текстур, и дублируя их только с использованием механизма копирования при записи. Синхронизация изменений для отдельных потоков осуществляется с использованием подхода со списком изменений, который обеспечивает минимальные накладные расходы.

Тот же механизм также обеспечивает очень гибкую и эффективную кластеризацию. Чтобы синхронизировать приложение, работающее на нескольких машинах, на каждую машину отправляются только изменения для каждого кадра и интегрируются в локальный граф сцены. Таким образом, различие между локальными и удаленными изменениями практически незаметно. Приложению, которое хочет работать в кластере, просто нужно открыть ClusterWindow, который может распределять все изменения по кластеру и может очень легко управлять Powerwall или CAVE, не беспокоясь о протоколах распространения и других сложностях.

Проект был начат Дирком Райнерсом , Герритом Воссом и Йоханнесом Бером . в него внесли вклад многие другие люди, в первую очередь Карстен Нойманн, который в настоящее время выполняет функции главного сопровождающего.

  1. ^ Восс, Г.; Бер, Дж.; Райнерс, Д.; Рот2, М. (1 января 2002 г.). «Многопоточная безопасная основа для графов сцен и ее расширение на кластеры» . Материалы четвертого семинара Eurographics по параллельной графике и визуализации . ЭПГГВ '02. Эр-ла-Виль, Швейцария, Швейцария: Ассоциация Еврографики: 33–37. ISBN  1-58113-579-3 . {{cite journal}}: CS1 maint: числовые имена: список авторов ( ссылка )
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: ef1807102a57d334ced425497d4a9e30__1649336940
URL1:https://arc.ask3.ru/arc/aa/ef/30/ef1807102a57d334ced425497d4a9e30.html
Заголовок, (Title) документа по адресу, URL1:
OpenSG - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)