OSG绘制的部分流程(待修改完善)????????????

本文详细介绍了OSG(OpenSceneGraph)中的图形绘制过程,包括Viewer的更新遍历、RenderStage的绘制阶段以及不同Drawable的实现方法。内容涵盖了主相机和从相机的更新回调、渲染阶段的预处理和后处理回调、以及自定义几何体如Teapot的绘制。同时,还讲解了如何在OSG中绘制文字和形状,如Box的绘制方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 主相机,从相机:

void Viewer::updateTraversal()

{//主相机

if (_camera.valid() && _camera->getUpdateCallback()) _camera->accept(*_updateVisitor);

 

//从相机

for(unsigned int i=0; i<getNumSlaves(); ++i)

{  osg::Camera* camera = getSlave(i)._camera.get();

if (camera && camera->getUpdateCallback()) camera->accept(*_updateVisitor);

}

 

//主相机

if (_cameraManipulator.valid())

{ ……

_camera->setViewMatrix(_cameraManipulator->getInverseMatrix());

}

 

//从相机

updateSlaves();

}

 

void RenderStage::draw(osg::RenderInfo& renderInfo,RenderLeaf*& previous)

{

drawPreRenderStages(renderInfo,previous);

 

if (_camera && _camera->getPreDrawCallback())

    {

        // if we have a camera with a pre draw callback invoke it.

        (*(_camera->getPreDrawCallback()))(renderInfo);

    }

glFlush();

 

if (_camera && _camera->getPostDrawCallback())

    {

        //

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值