Transfer from http://www.cnblogs.com/ylwn817/articles/1976851.html
#include <osgDB/ReadFile>
#include <osgViewer/Viewer>
#include <osg/Node>
#include <osg/Geode>
#include <osg/Geometry>
#include <osg/Group>
#include <osg/Texture2D>
#include <osg/TexGen>
#include <osg/TexEnv>
void Main ()
{
Osgviewer::viewer 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 ());
Set auto-Generate texture coordinates
Osg::ref_ptr<osg::texgen> texgen=new Osg::texgen ();
Texgen->setmode (OSG::TEXGEN::SPHERE_MAP);
Set the texture environment, mode is blend
Osg::ref_ptr<osg::texenv> texenv=new osg::texenv;
Texenv->setmode (Osg::texenv::mode::add);
Texenv->setcolor (OSG::VEC4 (0.6,0.6,0.6,0.0));
Start unit one automatically generates texture coordinates and uses textures
Osg::ref_ptr<osg::stateset> state=new Osg::stateset;
State->settextureattributeandmodes (1,texture.get (), osg::stateattribute::on);
State->settextureattributeandmodes (1,texgen.get (), osg::stateattribute::on);
State->settextureattribute (1,texenv.get ());
Node->setstateset (State.get ());
}
Root->addchild (Node.get ());
Viewer.setscenedata (Root.get ());
Viewer.realize ();
Viewer.run ();
}
OSG Adding a texture example