OSG中嵌入一个opengl代码(且opengl图形能动态更新)
(1)继承osg::Drawable::DrawCallback,在
drawImplementation(osg::RenderInfo& renderInfo,const osg::Drawable* drawable)函数里添加opengl代码。
(2)Drawable设置绘制回调函数,并注意要把显示列表设置为false:
geometry->setUseDisplayList(false);
geometry->setDrawCallback(new DrawCallback);
――――――――――――
参考代码如下(改编自OSG的例子程序osgSpaceWarp):
#include "stdafx.h"
#include <osgViewer/Viewer>
#include <osg/Group>
#include <osg/Geometry>
#pragma comment( lib, "osgd.lib"); //.在Debug版本下的库名都加d,如"osgd.lib"
#pragma comment( lib, "osgDBd.lib")
#pragma comment( lib, "osgViewerd.lib");
#pragma comment( lib, "osg

本文档展示了如何在OpenSceneGraph(OSG)中嵌入OpenGL代码并实现图形的动态更新。通过继承osg::Drawable::DrawCallback并在drawImplementation()函数中添加OpenGL指令,创建了一个动态颜色变化的三角形。关键步骤包括禁用Drawable的显示列表和设置DrawCallback。最终,通过Viewer不断帧更新,实现了OpenGL图形的实时变化效果。
最低0.47元/天 解锁文章
1304

被折叠的 条评论
为什么被折叠?



