returnmin+static_cast<float>(xorshift32()/static_cast<float>(0xFFFFFFFF/(max-min))); } //线性插值 floatlerp(floatmin,floatmax,floatt) { returnmin*(1.0-t)+max*t; } osg::Vec3f*generateHemisphereSamples(intkernelSize) { osg::Vec3f* kernel=newosg::Vec3f[kernelSize]; for(inti =0; ...
int value = readModeValue(is); pm.setMode(osg::PolygonMode::FRONT, static_cast<osg::PolygonMode::Mode>(value)); 2.4 自定义compressor/decompressor 我们已经自定义了一个ZLIB的压缩器,在src/osgDB/Compressor.cpp中,但是我们可能希望自定义压缩器,只需要重写两个虚函数就可以了。 下面的例子会在输出文件...
osg::Node* child = dynamic_cast<osg::Node*>( is.readObject() ); if ( child ) node.addChild( child ); } is >> osgDB::END_BRACKET; return true; 1. 2. 3. 4. 5. 6. 7. 8. OutputStream 接受<< 重载操作,因此需要对类定义 writeObject(), writeImage(), writePrimitiveSet() 和 wri...
if (numProcessors >= static_cast<int>(cameras.size()+contexts.size())) { return CullThreadPerCameraDrawThreadPerContext; } #endif return DrawThreadPerContext; } OSG 选择使用哪种线程模型是以窗口和相机数为准则,再考虑CPU物理核心数给出结果。 如果是单窗口应用 CPU 是单核, 返回 SingleThreaded,这...
osgViewer::GraphicsWindow* graphWin = dynamic_cast<osgViewer::GraphicsWindow*>(viewer->getCamera()->getGraphicsContext()); graphWin->setWindowRectangle(200, 200, 500, 500); } osg::ref_ptr<osg::Node> buildShapeBox(double x, double y, double z, bool ifAnimation) ...
(loadedModel);//增加宽高比设置QSize size=widget.size();float aspectRatio=static_cast<float>(size.width())/static_cast<float>(size.height());widget.getOsgViewer()->getCamera()->setProjectionMatrixAsPerspective(60.f,aspectRatio,1.f,1000.f);return0;});widget.resize(200,600);widget.show()...
CEGUI::WindowManager& winMgr = CEGUI::WindowManager::getSingleton(); child =static_cast<CEGUI::FrameWindow*>(winMgr.loadWindowLayout("MeasureWindow.layout")); 使用布局文件编辑器编辑好布局后直接通过上述两句代码即可实现直接绘制所看到的效果图。所以布局文件的使用可以使得布局的设计变得方便。 发布者:全栈...
osgViewer::Viewer* pViewer = dynamic_cast<osgViewer::Viewer*>(aa.asView()); if (!pViewer || !pViewer->getSceneData() ) { return false; } osg::ref_ptr<osg::Camera> pCamera = pViewer->getCamera(); if (!pCamera) { return false; ...
我之前在这篇博文《OSG嵌入QT的简明总结》中论述了OSG在QT中显示的可视化问题。其中提到官方提供的osgQt项目(地址:https://github.com/openscenegraph/osgQt)很久前已经更新了。但是我一直没有时间同步更新,最近重新尝试了一下,还是有一些问题。 原先的osgQt版本是兼容Qt4的QGLWidget,这个类Qt官方准备废弃了,现在使用...
osg::Geode* geode=dynamic_cast<osg::Geode *>(result.nodePath.back()); if (geode) geode->removeDrawable(result.drawable); } } int test; }; /** * 节点回调类,每一帧都会执行 */ class ObserveShapeCallback : public osg::NodeCallback{ ...