osgcamera例子

这个例子是一个多相机、多视口的例子,我们有机会研究一下OSG中的视口相机。
首先,程序最外面run了两次,通过EnableVBOVisitor的方式使用了定点缓冲对象,EnableVBOVisitor继


承自NodeVisitor,在accept的时候执行一次,执行NodeVisitor中的apply方法。
enum TraversalMode
        {
            TRAVERSE_NONE,
            TRAVERSE_PARENTS,
           


 TRAVERSE_ALL_CHILDREN,
            TRAVERSE_ACTIVE_CHILDREN
        };
递归的模式,不递归、向上级递归、向下级递归,递归下级所有活动的节点。
OpenGL中绘制物体的方式:glbegin,glend,顶点数组的立即模式;displaylist显示列表;VBO顶点缓冲


对象。VBO几何了前两种方法的优势,数据即可以存储在服务器端,又便于更新。
关于VBO详细的说明:http://www.cnblogs.com/azureforest/archive/2012/07/01/2572237.html
这样想一想,所有的节点的叶节点都是Geode,Geode中有多个drawable,这个drawable就应该是设置VBO


的地方,我们顺着这个思路看看drawable:
有两个函数:setUseVertexBufferObjects、setUseDisplayList
有两个变量:_useDisplayList; _useVertexBufferObjects;
在构造函数里可以看到显示列表是默认的方式,VBO是false。
特别强调,如果drawable是动态更新的,就不能用显示列表,这样不安全。
在Drawable中的draw中看看这个判断
    if (_useDisplayList && !(_supportsVertexBufferObjects && _useVertexBufferOb
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值