osg 1 添加纹理

#ifdef _DEBUG#pragma comment(lib,"osgd.lib")#pragma comment(lib,"osgDBd.lib")#pragma comment(lib,"osgViewerd.lib")#pragma comment(lib,"OpenThreadsd.lib")#pragma comment(lib,"osgGAd.lib")#else#pragma comment(lib,"osg.lib")#pragma comment(lib,"osgDB.lib")#pragma comment(lib,"osgViewer.lib")#pragma comment(lib,"OpenThreads.lib")#pragma comment(lib,"osgGA.lib")#endif#include #include #include #include #include #include #include #include #include #include osg::ref_ptr CreateBox(){osg::ref_ptr geode = new osg::Geode;osg::ref_ptr hints = new osg::TessellationHints;osg::ref_ptr shape = new osg::ShapeDrawable(new osg::Box(osg::Vec3(.0,0.0,0.0),10.0,10.0,10.0),hints);osg::ref_ptr material = new osg::Material;osg::ref_ptr texture2D = new osg::Texture2D;osg::ref_ptr image = new osg::Image;shape->setColor(osg::Vec4(0.2,0.4,0.6,0));//设置材质material->setAmbient(osg::Material::FRONT_AND_BACK,osg::Vec4f(1.0,1.0,1.0,1.0));material->setDiffuse(osg::Material::FRONT_AND_BACK,osg::Vec4f(1.0,1.0,1.0,1.0));material->setSpecular(osg::Material::FRONT_AND_BACK,osg::Vec4f(1.0,1.0,1.0,1.0));material->setShininess(osg::Material::FRONT_AND_BACK,60.0);//设置纹理image = osgDB::readImageFile("Images/road.png");if(image->valid()){texture2D->setImage(image);}geode->getOrCreateStateSet()->setAttributeAndModes(material,osg::StateAttribute::ON);geode->getOrCreateStateSet()->setMode(GL_BLEND,osg::StateAttribute::ON);geode->getOrCreateStateSet()->setTextureAttributeAndModes(0,texture2D,osg::StateAttribute::ON);hints->setDetailRatio(0.5);geode->addDrawable(shape);return geode;}int main(){osg::ref_ptr viewer = new osgViewer::Viewer;// viewer->setSceneData(osgDB::readNodeFile("glider.osg"));viewer->setSceneData(CreateBox());return viewer->run();}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值