zoukankan      html  css  js  c++  java
  • OSG学习:多重纹理映射

     
    #include<osgViewerViewer>
    
    #include<osgNode>
    #include<osgGeode>
    #include<osgGeometry>
    #include<osgTexture2D>
    #include<osgTexGen>
    #include<osgTexEnv>
    
    #include<osgDBReadFile>
    #include<osgDBWriteFile>
    
    #include<osgUtilOptimizer>
    
    int main()
    {
    	osg::ref_ptr<osgViewer::Viewer> viewer = new osgViewer::Viewer();
    
    	osg::ref_ptr<osg::Group> root = new osg::Group();
    
    	osg::ref_ptr<osg::Node> node = osgDB::readNodeFile("cow.osg");
    
    	//读取贴图
    	osg::ref_ptr<osg::Image> image = osgDB::readImageFile("Images/primitives.gif");
    
    	if (image.get())
    	{
    		//创建二维纹理
    		osg::ref_ptr<osg::Texture2D> texture = new osg::Texture2D;
    		texture->setImage(image.get());
    
    		//设置自动生成坐标
    		osg::ref_ptr<osg::TexGen> texgen = new osg::TexGen;
    		texgen->setMode(osg::TexGen::SPHERE_MAP);
    
    		//设置文理环境,模式为BLEND
    		osg::ref_ptr<osg::TexEnv> texenv = new osg::TexEnv;
    		texenv->setMode(osg::TexEnv::BLEND);
    		//设置BLEND操作的颜色
    		texenv->setColor(osg::Vec4(0.6f, 0.6f, 0.6f, 0.0f));
    
    		//启用单元1自动生成文理坐标,并使用纹理
    		osg::ref_ptr<osg::StateSet> stateset = new osg::StateSet;
    		stateset->setTextureAttributeAndModes(1, texture.get(), osg::StateAttribute::ON);
    		stateset->setTextureAttributeAndModes(1, texgen.get(), osg::StateAttribute::ON);
    
    		//设置纹理环境
    		stateset->setTextureAttribute(1, texenv.get());
    	}
    
    	root->addChild(node.get());
    
    	//优化场景数据
    	osgUtil::Optimizer optimizer;
    	optimizer.optimize(root.get());
    
    	viewer->setSceneData(root.get());
    
    	viewer->realize();
    
    	viewer->run();
    
    	return 0;
    }


    结果图:



  • 相关阅读:
    Algs4-2.3.11快排遇与切分值相同时继续扫描是平方级
    使用kubeadm搭建Kubernetes集群
    kubernetes发布解释型语言应用的最佳实践
    docker化php项目发布方式
    linux服务器免密钥登录
    cp 递归复制时 复制实际文件而不是链接文件
    nginx配置http访问自动跳转到https
    nfs服务器
    nginx防止恶意域名解析
    如何建立自己的知识体系?(摘)
  • 原文地址:https://www.cnblogs.com/huahai/p/7270945.html
Copyright © 2011-2022 走看看