Changeset 12782 for OpenSceneGraph/trunk/examples/osgshadow/osgshadow.cpp
- Timestamp:
- 09/07/11 17:55:54 (21 months ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
OpenSceneGraph/trunk/examples/osgshadow/osgshadow.cpp
r12780 r12782 599 599 if (geometry) 600 600 { 601 OSG_NOTICE<<"geometry->setUseVertexBufferObjects(true);"<<std::endl;602 601 geometry->setUseVertexBufferObjects(true); 603 602 } … … 641 640 cessnaNode->addUpdateCallback( createAnimationPathCallback(50.0f, 6.0f) ); 642 641 cessnaNode->setNodeMask( CastsShadowTraversalMask ); 642 643 // cessna is really poorly optimized so fix this by optimizing the mesh and use VBO's. 644 osgUtil::Optimizer optimizer; 645 optimizer.optimize(cessnaNode.get(), osgUtil::Optimizer::INDEX_MESH | 646 osgUtil::Optimizer::VERTEX_POSTTRANSFORM | 647 osgUtil::Optimizer::VERTEX_PRETRANSFORM); 648 649 UseVBOVisitor useVBOVisitor; 650 cessnaNode->accept(useVBOVisitor); 651 643 652 644 653 osg::ref_ptr<osg::Group> shadowRoot = new osg::Group; … … 655 664 } 656 665 657 // cessna is really poorly optimized so fix this by optimizing the mesh and use VBO's.658 osgUtil::Optimizer optimizer;659 optimizer.optimize(shadowRoot.get(), osgUtil::Optimizer::INDEX_MESH |660 osgUtil::Optimizer::VERTEX_POSTTRANSFORM |661 osgUtil::Optimizer::VERTEX_PRETRANSFORM);662 663 UseVBOVisitor useVBOVisitor;664 shadowRoot->accept(useVBOVisitor);665 666 666 667 return shadowRoot.release(); … … 918 919 else if( arguments.read("--vdsm") ) 919 920 { 920 osg::ref_ptr<osgShadow::ViewDependentShadowMap> vdsm = new osgShadow::ViewDependentShadowMap; 921 while( arguments.read("--debugHUD") ) vdsm->setDebugDraw( true ); 922 923 if (arguments.read("--persp")) vdsm->setShadowMapProjectionHint(osgShadow::ViewDependentShadowMap::PERSPECTIVE_SHADOW_MAP); 924 if (arguments.read("--ortho")) vdsm->setShadowMapProjectionHint(osgShadow::ViewDependentShadowMap::ORTHOGRAPHIC_SHADOW_MAP); 921 osgShadow::ShadowSettings* settings = new osgShadow::ShadowSettings; 922 shadowedScene->setShadowSettings(settings); 923 924 while( arguments.read("--debugHUD") ) settings->setDebugDraw( true ); 925 if (arguments.read("--persp")) settings->setShadowMapProjectionHint(osgShadow::ShadowSettings::PERSPECTIVE_SHADOW_MAP); 926 if (arguments.read("--ortho")) settings->setShadowMapProjectionHint(osgShadow::ShadowSettings::ORTHOGRAPHIC_SHADOW_MAP); 925 927 926 928 unsigned int unit=1; 927 if (arguments.read("--unit",unit)) vdsm->setBaseShadowTextureUnit(unit);929 if (arguments.read("--unit",unit)) settings->setBaseShadowTextureUnit(unit); 928 930 929 931 double n=0.0; 930 if (arguments.read("-n",n)) vdsm->setMinimumShadowMapNearFarRatio(n); 931 932 if (arguments.read("-n",n)) settings->setMinimumShadowMapNearFarRatio(n); 933 934 osg::ref_ptr<osgShadow::ViewDependentShadowMap> vdsm = new osgShadow::ViewDependentShadowMap; 932 935 shadowedScene->setShadowTechnique(vdsm.get()); 933 936 }
