OSG的组成结构

核心结构

OSG的功能类采用“命名空间+类名称”的形式来命名。命名空间的命名方式为:第一个单词小写,后继单词的首字母大写,例如osg、osgUtil、osgViewer等;类的名称则采用每个单词首字母大写的组合,例如MatrixTransform、NodeVisitor等。功能类成员函数使用小写字幕开头,之后每个单词的首字母大写,例如setMatrix()、setAttributeAndModes()等,如果试图描述某个功能类的成员函数,通常使用如下方式书写:osg::MatricTransform::setMatrix().
OSG引擎的组成部分包括一系列动态链接库(.dll/.so)、插件(.dll/.so)、供开发者使用的静态链接库(.lib/.a)、头文件,以及可以执行的工具程序和示例,按照其作用来划分,可以大致分为以下五种类型。
- [x] OSG核心库:提供了基本的场景图形和渲染功能,以及3D图形程序所需要的某些特定功能实现。OSG的核心库包括:
- [x] osg库:其中包括构建场景图形的场景图形节点类、用作向量和矩阵运算的类;可绘制体和几何体类;用于描述和管理渲染状态的类;以及图形程序所需要的典型功能类;例如命令行参数解析,简单动画路径以及错误和警告输出等。
- [x] osgDB库:其中包括用于2D和3D文件读写的插件类注册器,以及用于访问和读写这些插件的特定功能类;此外还提供了数据的动态分页调度机制;可以支持大规模数据的动态度如何让卸载
- [x] osgUtil库:使用工具库,其中包括场景图形的数据统计和优化工具、渲染后台工具、场景裁剪工具;以及大量几何操作相关的类,例如德洛内三角化、三角条带化、发现坐标自动生成、场景树优化等工具。
- [x] osgGA库:提供了各种视景窗口交互事件的管理工具,用于构建一个与平台无关的人机设备抽象层。
- [x] osgViewer库:视景器工具库,即单个或多个场景观察和管理的整合工具,以及与平台相关的底层图形设备代码;同时还提供了多线程,多CPU。多显示器的渲染机制。
- [x] 节点扩展工具箱(NodeKits):扩展了核心OSG场景图形节点的功能,以提供高级节点类型和渲染特效。节点扩展库包括:
- [x] osgAnimation:场景动画处理库,包括各种关键帧的定义、插值方式、动画管理和融合、动画路径、角色动画、变形动画、渐进动画等。
- [x] osgFX:场景特效库 ,包括多种场景特效的实现,例如各向异性光照、卡通着色、凹凸贴图等。随着OpenGL着色语言的发展的逐步应用,这个库已经被逐渐弱化了。
- [x] osgManipulator:场景对象操作库,用于实现场景对象的用户交互控制,包括移动、旋转和缩放等。
- [x] osgParticle:粒子特效库,用于实现简单或复杂的场景粒子效果,例如雨、雪、烟雾、火焰。爆炸、运动尾迹等
- [x] osgShadow:阴影特效库,用于实现多种形式的物体阴影绘制,包括阴影贴图(ShadowMap)、阴影纹理(ShadowTexture)、阴影体(Shadow Volume),以及多种基于GPU的最新阴影实现技法。
- [x] osgSim:仿真工具库,包括DOF节点变化、纹理覆盖节点、点光源节点,以及多种虚拟仿真相关的集合。
- [x] osgTerrain 地形处理库,用于实现实时的地形读取或显示
- [x] osgText:文字处理库,用于实现点阵或者矢量文字的显示,包括纹理形式和三维文字形式,并支持多种字体的选择和多国语言编码
- [x] osgVolume:体渲染实现库,用于实现各种体渲染相关的技术
- [x] osgWidget:三维控件库,用于实现三维场景中的用户交互控件,乐如编辑框、按钮等,这在游戏或者三维场景聊天工具的开发中十分使用。
- [x] OSG文件读写插件:其中包括2D图像,3D图像和其他类型文件的读写功能插件,可以任意扩展或删减
- [x] 内省库:提供OSG与其他开发环境集成的功能,例如脚本语言Python等
- [x] 工具程序和示例集:提供了实用的工具和超过100个有关OSG使用和功能实现的例子。

内容来之《OpenSceneGraph 三维渲染引擎设计与实践》

OSG的组成结构的更多相关文章

  1. osg fbx 模型结构操作

    osg::Node* TeslaManage::findOsgNodeByName(QString &nodeNme) { osg::Node* findNode = NULL; std::v ...

  2. OSG相机与视图

    转自:http://blog.csdn.net/wang15061955806/article/details/51603083 相机与视图     osg::Camera类用来管理OSG中的模型—— ...

  3. OSG 3D场景渲染编程概述

    OSG是Open Scene Graphic的缩写,是基于C++平台的使用OpenGL技术的开源3D场景开发. vs环境安装或者是在Ubuntu中环境的安装网上教程很多,都是大同小异的,认真操作容易成 ...

  4. OSG的节点访问

    OSG的节点访问 转自:http://www.cnblogs.com/kanego/archive/2011/09/27/2193484.html SG中节点的访问使用的是一种访问器模式. 一个典型的 ...

  5. [比较老的文章]三维渲染引擎 OGRE 与 OSG 的比较综述

    1 .引言随着计算机可视化.虚拟现实技术的飞速发展,人们对实时真实感渲染以及场景复杂度提出了更高的要求.传统的直接使用底层图形接口如OpenGL.DirectX开发图形应用的模式越来越暴露出开发复杂性 ...

  6. [OSG]OpenSceneGraph FAQ 以及OSG资源

    1.地球背面的一个点,计算它在屏幕上的坐标,能得到吗? 不是被挡住了吗? 答:计算一个空间点的屏幕坐标,使用osgAPEx::GetScreenPosition函数.当空间点处于相机视空间内(不管它是 ...

  7. [OSG]OSG例子程序简介

    1.example_osganimate一)演示了路径动画的使用(AnimationPath.AnimationPathCallback),路径动画回调可以作用在Camera.CameraView.M ...

  8. osg实例介绍

    osg实例介绍 转自:http://blog.csdn.net/yungis/article/list/1 [原]osgmotionblur例子 该例子演示了运动模糊的效果.一下内容是转自网上的:原理 ...

  9. OSG中的示例程序简介

    OSG中的示例程序简介 转自:http://www.cnblogs.com/indif/archive/2011/05/13/2045136.html 1.example_osganimate一)演示 ...

随机推荐

  1. Linux实用指令(2)

    cat指令     cat 查看文件内容,只读的方式 • 基本语法     cat [选项] 要查看的文件 • 常用选项     -n :显示行号 • 应用实例   注意:cat 只能浏览文件,而不能 ...

  2. CQRS轻量级框架【CQRSlite】学习使用小记

    前言 这几天在研究DDD和CQRS.快把我绕晕了.发现国外的好文质量还是挺高的.之所以先体验CQRSlite这个小框架,是因为看了一位大神写的文章:https://www.codeproject.co ...

  3. Arduino 入门之小星星

    原理:通过编号映射不同的频率音频信号,配合延时输出,达到演奏音乐和跑马灯的效果. 优酷视频链接:https://v.youku.com/v_show/id_XMzcxODQ4NjA3Mg==.html ...

  4. 使用Scanner将InputStream类型转换成String

    我们在测试项目中经常会遇到这样的情形: 1. 从文件或网络得到一个InputStream,需要转换成String赋值到别的变量做为另一个方法的入参. 2. 从文件或网络得到一个InputStream后 ...

  5. UVALive4682 XOR Sum

    UVALive4682 XOR Sum 题意 给定一个数组, 求连续子序列中异或值最大的值. 题解 假设答案区间为 [L, R], 则答案为 XOR[L, R], 可以将区间分解为 XOR[L,R] ...

  6. JQuery给一个元素绑定两次点击事件(第二次点击事件)

    由于项目的要求,需要给复选框设置样式,初始样式:,第一次点击的时候显示,第二次点击时候需要改变该样式:. 设计思路: 当点击次数为奇数时显示带有颜色的图片 当点击次数为偶数时显示没有颜色的图片 下边是 ...

  7. vue 方法相互调用注意事项与详解

    vue在同一个组件内: methods中的一个方法调用methods中的另外一个方法: 可以直接这样调用:this.$options.methods.test(); this.$options.met ...

  8. 如果有人问你CAP理论是什么,就把这篇文章发给他。

    绝对和你在网上看到的CAP定理介绍不一样. CAP 定理(CAP theorem)又被称作布鲁尔定理(Brewer's theorem),是加州大学伯克利分校的计算机科学家埃里克·布鲁尔(Eric B ...

  9. 遗传算法详解及c++实现

    1.什么是遗传算法? 遗传算法是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法.遗传算法是从代表问题可能潜在的解集的一个种群开始的,而一 ...

  10. javascript 时间倒计时效果

    <div id="divdown1"></div> <script language="javascript" type=&quo ...