调试最长的一帧(第17天)

先看看流程

 

电子书上介绍了渲染器osgViewer::Renderer类,osgViewer::Renderer为摄像机渲染场景的工作提供了一个公共接口,当我们向视景器viewer添加了一个新的摄像机camera时,一个与摄像机相关联的渲染器Renderer也会被自动创建。当准备渲染场景时,与特定图形设备GraphicsContext相关联的摄像机也会自动调用其渲染器的响应函数,执行场景筛选与绘制等工作。渲染器负责调用场景视图

获取摄像机附带渲染器的代码:

关于场景视图在渲染器中的体现,

关于创建摄像机,就会有渲染器,

在摄像机类中,成员变量

派生关系

现在跟踪renderer::cull()

所以要设定

可以进去renderer::cull()

全局渲染状态

 

osg::State是状态机在OSG中的具体实现,封装了几乎所有的opengl状态量,属性参数,以及顶点数组的设置值,对Stateset,Geometry等类的操作,实质上都交由State类在保存和执行。它提供了对Opengl状态堆栈的处理机制,对即将进入渲染管线的数据进行优化(执行渲染状态数据的排序,减少Opengl状态的频率),同时还允许用户直接查询各种OpenGL状态的当前值

场景筛选SceneView::cull()以后会深入,所以这里不扩展。

接下来将了场景绘制

 

当然,重点在于Renderer::draw(),这里不扩展,是因为下一天的内容扩展了,就到这里吧。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值