osg::ClipNode与osg::ClipPlane

原创 2007年09月13日 16:12:00
  • osg::ClipNode继承自osg::Group,功能是定义场景中裁剪面的位置。
  • osg::ClipPlane继承自osg::StateAttribute,定义一个裁剪面,可参考:glClipPlane().
  • 先看一下osg::ClipPlane的构造函数:

ClipPlane (unsigned int no, const Vec4d &plane) 
ClipPlane (unsigned 
int no, const Plane &plane) 
ClipPlane (unsigned 
int no, double a, double b, double c, double d) 

 

后四个参数其实构建了一个平面方程:

aX+bY+cZ+d=0

第一个参数指定定义哪个裁剪面,至少支持6个。

定义多个裁剪面时可调用

setClipPlaneNum 和setClipPlane 函数
  • osg::ClipNode的使用
    //创建节点    
    osg::ClipNode* clipped_subgraph = new osg::ClipNode;
    //得到subgraph节点的包围球
    osg::BoundingSphere bs = subgraph->getBound();
    bs.radius()
    *= 0.4f;
    //根据包围球创建一个6面体,刚好包住球体
    osg::BoundingBox bb;
    bb.expandBy(bs);
    clipped_subgraph
    ->createClipBox(bb);
    //添加子节点
    clipped_subgraph->addChild(subgraph);

相关文章推荐

OpenGL学习09_裁剪平面ClipPlane

除了视景体的6个裁剪平面(左、右、底、顶、近和远)之外,还可以另外再指定最多可达6个的其他裁剪平面,对视景体施加进一步的限制。 每个平面都是由它的方程式Ax + By + Cz + D= 0的系...

osg::clipNode

这一段的功能主要是绘制线型的节点     //创建根节点     osg::Group* rootnode = new osg::Group;     //创建状态集     osg:...

用OpenSceneGraph实现的NeHe OpenGL教程 - 第二十六课

简介 这节课主要介绍了如何使用OpenGL中的模板缓冲区和裁剪平面来

Examples osgclip注释

详细源码见osg例子 osgclip,这里只分析decorate_with_clip_node函数 这一段的功能主要是绘制线型的节点     //创建根节点    osg::Group* roo...

有关osg交集的一些总结

交集           你可以将通过点击鼠标的节点选择想象成是从鼠标(光标)位置向场景中发射了一条射线。被鼠标选中的场景部分将与射线有一个交集。如果场景是由线和点元素组成的,那么射线的交运算可...

用OpenSceneGraph实现的NeHe OpenGL教程 - 第二十六课

简介 这节课主要介绍了如何使用OpenGL中的模板缓冲区和裁剪平面来

OSG的相关的例子

一直都没有沉下心思好好研究OSG,这几天认真看书看代码,发现也不是很难。古人说得好:临渊羡鱼,不如退而结网。 下面列出站长可能会用到例子: 1、example_osganimationmorph 演...

CityMaker学习教程12 osg模型的创建

1、加载一个FDB文件到场景。 2、加载完绑定事件axRenderControl1.RcMouseClickSelect += AxRenderControl1_RcMouseClickSelect...
  • shh369
  • shh369
  • 2016年06月13日 16:36
  • 524

第一次运行OSG入门程序失败记和搞定的情况

简介 OpenSceneGraph(简称OSG)使用OpenGL技术开发,是一套基于C++平台的应用程序接口(API),它让程序员能够更加快速、便捷地创建高性能、跨平台的交互式图形程序。它作为中间件(...

osg中实现文字显示和HUD

一开始不知道什么事HUD,云里雾里,后来看了孤独钓客的博客才明白,后来自己就仿照做了一个。 /* *Add text to a scene - both HUD style text and te...
  • smells2
  • smells2
  • 2012年02月23日 22:02
  • 5499
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:osg::ClipNode与osg::ClipPlane
举报原因:
原因补充:

(最多只允许输入30个字)