[osg]osg背景图设置

转自:https://blog.youkuaiyun.com/qq_30754211/article/details/61190698

#include <osg/Geometry>  
#include <osg/Geode>  
#include <osg/Depth>  
#include <osg/Texture2D>  
#include <osgDB/ReadFile>  
#include <osgViewer/Viewer>  
  
int main( int argc, char** argv )  
{  
    osg::ref_ptr<osg::Texture2D> texture = new osg::Texture2D;  
    osg::ref_ptr<osg::Image> image = osgDB::readImageFile( "D:/background1.png" );  
    texture->setImage( image.get() );  
      
    osg::ref_ptr<osg::Drawable> quad = osg::createTexturedQuadGeometry(osg::Vec3(), osg::Vec3(1.0f, 0.0f, 0.0f), osg::Vec3(0.0f, 1.0f, 0.0f) );  
    quad->getOrCreateStateSet()->setTextureAttributeAndModes( 0,texture.get());  
      
    osg::ref_ptr<osg::Geode> geode = new osg::Geode;  
    geode->addDrawable( quad.get() );  
      
    osg::ref_ptr<osg::Camera> camera = new osg::Camera;  
    camera->setClearMask( 0 );  
    camera->setCullingActive( false );  
    camera->setAllowEventFocus( false );  
    camera->setReferenceFrame( osg::Transform::ABSOLUTE_RF );  
    camera->setRenderOrder( osg::Camera::POST_RENDER );  
    camera->setProjectionMatrix( osg::Matrix::ortho2D(0.0, 1.0, 0.0, 1.0) );  
    camera->addChild( geode.get() );  
      
    osg::StateSet* ss = camera->getOrCreateStateSet();  
    ss->setMode( GL_LIGHTING, osg::StateAttribute::OFF );  
    ss->setAttributeAndModes( new osg::Depth(osg::Depth::LEQUAL, 1.0, 1.0) );  
      
    osg::ref_ptr<osg::Group> root = new osg::Group;  
    root->addChild( camera.get() );  
    root->addChild( osgDB::readNodeFile("cessna.osg") );  
      
    osgViewer::Viewer viewer;  
    viewer.setSceneData( root.get() );  
    return viewer.run();  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值