OpenSG
OpenSG| 기입처 | C++ |
|---|---|
| 운영 체제 | Windows, Linux, Solaris, OS X |
| 유형 | 장면 그래프 |
| 면허증. | LGPL |
| 웹 사이트 | sourceforge |
OpenSG는 가상현실 애플리케이션 등의 실시간 그래픽 프로그램을 만드는 장면 그래프 시스템입니다.오픈소스 원칙에 따라 개발되었으며 LGPL 라이선스를 받았으며 자유롭게 사용할 수 있습니다.Windows, Linux, Solaris 및 OS X에서 실행되며 OpenGL을 기반으로 합니다.
주요 기능은 고급 멀티스레딩 및 클러스터링 지원(다른 기술 중에서도 정렬 우선 및 정렬 마지막 렌더링 포함)이지만 단일 스레드 단일 시스템 애플리케이션에서도 완벽하게 사용할 수 있습니다.
그것은 크로노스 그룹의 일부가 아니다.
역사
다른 많은 시스템과 마찬가지로 1999년 마이크로소프트와 SGI의 화씨 그래픽스 API 프로젝트가 종료되면서 씬그래프가 소멸되었습니다.저자들이 원하는 기능을 갖춘 장면 그래프 시스템이 시판되지도 않았고 곧 등장할 예정도 없었기 때문에, 그들은 그들만의 시스템을 시작하기로 결정했다.
OpenSG는 OpenGL Performer와 다소 유사한 완전히 다른 장면 그래프 API인 OpenSceneGraph와 혼동해서는 안 됩니다.두 회사의 개발은 거의 비슷한 시기에 시작되었고, 둘 다 비슷한 이름을 선택했습니다.
테크놀로지
OpenSG는 다른 많은 것들과 마찬가지로 장면 그래프이지만, 다른 것들과 구별되는 많은 고유한 기능을 가지고 있습니다.상태 변경 최적화를 위한 오버헤드를 줄이는 블록 상태 관리 시스템, 매우 유연한 트래버설 및 핵심 데이터 구조의 런타임 교환 및 향상을 가능하게 하는 기타 메커니즘을 특징으로 하지만 가장 특이한 점은 멀티 스레딩 접근 [1]방식입니다.
씬 그래프는 수백 메가바이트의 메모리를 쉽게 소비하는 매우 큰 데이터 구조를 포함하고 있기 때문에 멀티 스레딩의 하드 타깃으로 악명이 높습니다.오버헤드가 크기 때문에, 이것들을 복제할 수 없습니다.대부분의 장면 그래프는 병렬 쓰기로 인한 데이터 손상을 방지하기 위해 개별 노드를 잠글 뿐이지만, 이는 부분적인 해결책에 불과합니다.장면 그래프의 상태는 전체 장면 그래프로 표시되며, 개별 노드만 보호하면 결과가 일관되지 않습니다(예: 비동기 물리 시뮬레이션을 실행할 경우 그래프의 일부만 업데이트하면 부분 시뮬레이션 단계가 표시됩니다).OpenSG는 보호할 필요가 있는 스레드별로 그래프의 작은 부분을 복제하면서 정점 배열이나 텍스처 이미지 등의 벌크 데이터를 공유하고 쓰기 메커니즘의 복사를 사용하여만 복제함으로써 선택적 멀티 버퍼링을 사용합니다.개별 스레드의 변경 동기화는 오버헤드를 최소화할 수 있는 변경 목록 방식을 사용하여 수행됩니다.
또, 같은 메카니즘에 의해서, 매우 유연하고 효율적인 클러스터링을 실현할 수 있습니다.여러 기계에서 실행 중인 애플리케이션을 동기화하기 위해 각 프레임의 변경 사항만 각 기계로 전송되고 로컬 장면 그래프에 통합됩니다.이 방법에서는 로컬과 리모트 변경의 구별이 거의 보이지 않습니다.클러스터에서 실행하려는 애플리케이션은 클러스터 간에 모든 변경 사항을 배포할 수 있는 ClusterWindow를 열기만 하면 됩니다. 또한 배포 프로토콜이나 기타 복잡한 문제에 대해 걱정할 필요 없이 Powerwall 또는 CAVE를 매우 쉽게 구동할 수 있습니다.
사람
이 프로젝트는 Dirk Reiners, Gerrit Voss 및 Johannes Behr에 의해 시작되었습니다.그것은 다른 많은 사람들, 특히 현재 주요 관리자로서 기능하고 있는 카르스텐 노이만의 기부를 받았다.
레퍼런스
- ^ Voß, G.; Behr, J.; Reiners, D.; Roth2, M. (2002-01-01). "A Multi-thread Safe Foundation for Scene Graphs and Its Extension to Clusters". Proceedings of the Fourth Eurographics Workshop on Parallel Graphics and Visualization. EGPGV '02. Aire-la-Ville, Switzerland, Switzerland: Eurographics Association: 33–37. ISBN 1-58113-579-3.