The new generation of OpenGL support in ROOT

The new generation of OpenGL support in ROOT
复制标题

DOI:
10.1088/1742-6596/119/4/042028
复制
发表时间:
2008-07
期刊:
Journal of Physics: Conference Series
影响因子:
--
通讯作者:
M. Tadel
M. Tadel
中科院分区:
其他
文献类型:
--
作者:
M. Tadel

文献摘要

被引文献

相似文献

OpenGL已经成为ROOT框架的主要3D渲染引擎。这需要对OpenGL支持的所有级别进行重大的重新模块化,从基本的窗口系统特定接口到中级对象表示和顶级场景管理。这种新的架构允许将外部场景图形库无缝集成到ROOT OpenGL查看器中,并将ROOT 3D场景包含到外部GUI和基于OpenGL的3D渲染框架中。场景表示从查看器内部移除,允许场景数据在多个查看器之间共享,并提供多视图画布布局的自然实现。对象图遍历基础设施允许自由混合3D和2D-pad图形,并使在纯OpenGL中实现ROOT画布成为可能。表示ROOT对象的场景元素基于字典信息和类命名约定触发用户提供的渲染对象的自动实例化。此外,用户还可以对场景更新进行更精细的逐对象控制,从而无需开销即可维护动态3D场景并创建复杂的实时动画。用户输入处理也是模块化的,因此可以轻松支持特定于应用程序的场景导航,选择处理和工具管理。
OpenGL has been promoted to become the main 3D rendering engine of the ROOT framework. This required a major re-modularization of OpenGL support on all levels, from basic window-system specific interface to medium-level object-representation and top-level scene management. This new architecture allows seamless integration of external scene-graph libraries into the ROOT OpenGL viewer as well as inclusion of ROOT 3D scenes into external GUI and OpenGL-based 3D-rendering frameworks. Scene representation was removed from inside of the viewer, allowing scene-data to be shared among several viewers and providing for a natural implementation of multi-view canvas layouts. The object-graph traversal infrastructure allows free mixing of 3D and 2D-pad graphics and makes implementation of ROOT canvas in pure OpenGL possible. Scene-elements representing ROOT objects trigger automatic instantiation of user-provided rendering-objects based on the dictionary information and class-naming convention. Additionally, a finer, per-object control over scene-updates is available to the user, allowing overhead-free maintenance of dynamic 3D scenes and creation of complex real-time animations. User-input handling was modularized as well, making it easy to support application-specific scene navigation, selection handling and tool management.