void TestScene3::runOsg() { // open window auto viewer = new osgViewer::Viewer(); viewer->setUpViewInWindow(560, 240, 800, 600); // adjust camera auto camera = viewer->getCamera(); camera->setViewMatrixAsLookAt(osg::Vec3d(100, 100, 100), osg::Vec3d(0, 0, 0), osg::Vec3d(0, 1, 0)); // loop runOsgLoop(viewer); }
void TestScene5::runOsg() { // open window auto viewer = new osgViewer::Viewer(); viewer->setUpViewInWindow(560, 240, 800, 600); // adjust camera auto camera = viewer->getCamera(); camera->setViewMatrixAsLookAt(osg::Vec3d(100, 100, 100), osg::Vec3d(0, 0, 0), osg::Vec3d(0, 1, 0)); // load & integrate model auto modelNode = osgDB::readNodeFile("/home/soulmerge/projects/Diplomarbeit/Prototype/resources/Ogre/alexandria.3ds"); auto modelPositioner = new osg::PositionAttitudeTransform(); modelPositioner->addChild(modelNode); modelPositioner->setPosition(osg::Vec3(-100, -100, -100)); viewer->setSceneData(modelPositioner); // loop runOsgLoop(viewer); }
void WeaponHUD::createWeaponHUD() { ref_ptr<Node> crow = osgDB::readNodeFile("../BlenderFiles/exports/Brecheisen.ive"); /* * here a transformation is applied to the crowbar to show * it at the lower right of the screen as if it is held in * the right hand */ ref_ptr<MatrixTransform> crowTransform = new MatrixTransform; crowTransform->setMatrix( Matrix::rotate(osg::DegreesToRadians(3.0f), Y_AXIS) * Matrix::rotate(DegreesToRadians(190.0f), Z_AXIS) * Matrix::translate(osg::Vec3(1.0f, 1.5f, -1.5f)) ); crowTransform->addChild(crow); /* * adjusting the shininess to give the crowbar a good appearance */ brtr::ModifyMaterialVisitor mmv; mmv.setShininess(42).setSpecular(Vec4(0.4, 0.4, 0.4, 1)); crow->accept(mmv); /* * Adding a weapon switch to enable multiple weapon use */ ref_ptr<Switch> switcher = new Switch; switcher->addChild(crowTransform, true); _switcher = switcher; _handler = new WeaponSwitchHandler(switcher); ref_ptr<brtr::CelShading> celshade = new brtr::CelShading; celshade->addChild(switcher); celshade->setNodeMask(~brtr::interactionAndCollisionMask); setClearMask(GL_DEPTH_BUFFER_BIT); setRenderOrder(Camera::POST_RENDER); setReferenceFrame(Camera::ABSOLUTE_RF); setProjectionMatrixAsPerspective(100, 1, 0.001, 5); setViewMatrixAsLookAt(Vec3(), Vec3(0,1,0), Z_AXIS); getOrCreateStateSet()->setMode(GL_LIGHTING, StateAttribute::OFF | StateAttribute::PROTECTED | StateAttribute::OVERRIDE); addChild(celshade); }