osg节点说明

osg中数据组织是以树形结构组成的,看一下下面类图:
在这里插入图片描述

osg::Geode和osg::Group节点都是继承自osg::Node。

Geode是叶节点,也就是不会再有子节点。叶节点的工作主要是保存可绘制物体。管理的节点都是继承自Drawable这个类,有一个或者多个Drawable对象。

Group组节点最为根节点或者其他节点。管理者众多其他的节点。

常用的节点总结:

  1. 空间变换节点:它可以改变自身在三维空间中的姿态和位置,进而影响子节点的姿态和位置,常用:Transform类来表达空间变换节点。
  2. 开关节点:一个场景中同时又很多节点,但是你在某一种情况下,不需要显示一些节点,也就是可以控制节点的显示与隐藏。常用:Switch和MulitiSwitch节点来表达开关节点和“课细分”的多重开关节点。
  3. 细节层次节点:常用的是根据对象和观察者的距离来决定使用使用模型,根据不同的距离使用不同的细节层次。常用:LOD(Level of Detail).
  4. 相机节点:通过不同角度去观看这些模型,也可以设置多个相机,在不同的窗口显示出来。常用:Camera。camera节点中所有的子节点都会渲染到这个相机的视窗中。Camera节点实现的基础是Transform节点,因为不用的角度的相机会影响到模型的姿态和位置;
    在这里插入图片描述
  5. 投影节点:就是讲场景中的模型投影到二维平面上一个节点,它并不是一个投影转换节点,因为将三维投影到二维平面上是不需要考虑Projection节点内的位置和姿态的。
    在这里插入图片描述
  6. 渲染属性节点:渲染属性是表达真实场景中重要的一部分要素,光照、雾效果、透明效果、纹理贴图等都属于属性效果。StateSet作为Node的成员变量,真正表达了是节点的属性值。
    在这里插入图片描述
  7. 遮挡裁剪节点:这个节点可以通过场景裁剪的方式,提出那些不会被用户看到(背面、视线之外、被遮挡)或者不会过多影响绘制结果的对象,常用:OccluderNode,用于表达遮挡物的形状构造,他们不会被自己裁掉,而场景中的对象可能被OccluderNode节点则遮挡二忽略,从而加速绘制过程。
    在这里插入图片描述
  8. 动态调度节点:有一些大规模的场景需要加载很多的节点,当一次性读入内存时,会占用大量的内存空间。因此就需要一种动态调用机制,对于可以实现动态调用的节点来说,当它的某些子节点对场景绘制没有用时,就会将子节点自动卸载掉。同样也可以动态加载不存在内存中的节点。常用类:PagedLOD节点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wb175208

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值