Hi Aurora, You code is going off on the wrong track. Don't use ShapeDrawable here at all, don't try returning a osg::Geode. You should be returning the osgTerrain::Terrain, this is the node you should be concentrating. Please look at the osgterrain example.
Robert. On Feb 20, 2008 12:48 PM, aurora restivo <[EMAIL PROTECTED]> wrote: > Hi Robert, > > I send you the code with the new changes... unfortunately the result > doesn't change... > the plan around the terrain has not disappeared. > > the object terrainTechnique that you have recommended me is necessary to > color the terrain? > > Thanks > Aurora > > > > Robert Osfield ha scritto: > > Hi Aurora, > > > > To assign the no data value do: > > > > hfLayer->setValidDataOperator(new osgTerrain::NoDataValue(0.0f)); > > > > Also you shouldn't need a ShapeDrawable when you are using > > osgTerrain::Terrain, but you will need to assign a TerrainTechnique > > that will be used to render the terrain. See osgterrain example. > > > > Robert. > > > > On Feb 20, 2008 10:51 AM, aurora restivo <[EMAIL PROTECTED]> wrote: > > > >> Hi! > >> > >> I apologize but I have not understood well. > >> I have need to draw the ground that is in the file terrain.jpg without > >> the plan that is visualized around. > >> I don't understand as I must use the NoDataValue. > >> > >> Besides I also have problems to color the terrain. > >> My objective is to draw a terrain with a casting of washes. > >> > >> Can you recommend me a book where to find a good documentation for my > >> specific problem? > >> > >> Thanks > >> Aurora Restivo. > >> > >> > >> > >> Robert Osfield ha scritto: > >> > >> > >>> Hi Aurora, > >>> > >>> I think what you are looking for is the osgTerrain::ValidDataOperator > >>> that you can attach to your elevation layer via > >>> Layer::setValidDataOperator(operator); > >>> > >>> In include/osgTerrain/ValidDataOperator you'll find the NoDataValue > >>> subclass which is probably what you want to use in your case. > >>> > >>> Robert. > >>> > >>> On Feb 19, 2008 12:33 PM, aurora restivo <[EMAIL PROTECTED]> wrote: > >>> > >>> > >>>> Hi! > >>>> > >>>> the image jpg in enclosure, is the result of the terrain that I have > >>>> drawn beginning from the matrix of the altitudes. > >>>> I would want to know if a way exists for not visualizing the quotas > >>>> equal to 0. > >>>> > >>>> the source code is found in the file morfologia.txt > >>>> > >>>> Thanks in advance. > >>>> Aurora Restivo > >>>> > >>>> > >>>> > >>>> > >>>> > > > #include ".\morfologia.h" > #include ".\gestionematrix.h" > > #include <iostream> > #include <cstdlib> > #include <osg/Shape> > #include <osg/ShapeDrawable> > #include <osgTerrain/Terrain> > #include <osgTerrain/ValidDataOperator> > #include <osgTerrain/Layer> > #include <osg/Texture2D> > #include <osgDB/ReadFile> > #include <osg/Vec3d> > > > > Morfologia::Morfologia(void) > { > } > > Morfologia::~Morfologia(void) > { > } > > > osg::Geode* Morfologia::drawMorfologia() > { > GestioneMatrix* g=new GestioneMatrix(); > > int** m= g->leggiFile("morf0.txt"); > > int max= g->cercaMax(m); > int min= g->cercaMin(m); > > osg::HeightField* hF = new osg::HeightField(); > hF->allocate(296,410); > > for(int i=0; i< 410; i++) > { > for(int j=0; j<296 ;j++) > { > if(m[i][j]!=0) > hF->setHeight(j,i, m[i][j]); > } > } > > hF->setXInterval(41.0); > hF->setYInterval(29.6); > > osg::Quat* quat= new osg::Quat(0,0,180,45); > hF->setRotation(*quat); > //hF->setBorderWidth(1000); > //hF->setSkirtHeight(500); //set altezza piano > > > osgTerrain::Terrain* terrainNode= new osgTerrain::Terrain(); > osgTerrain::HeightFieldLayer* hFLayer= new > osgTerrain::HeightFieldLayer(); > hFLayer->setHeightField(hF); > > > osgTerrain::ValidDataOperator* dataO= new > osgTerrain::NoDataValue(0.0); > hFLayer->setValidDataOperator(dataO); > > terrainNode->setElevationLayer(hFLayer); > > //terrainNode->setColorLayer(151,hFLayer); > //terrainNode->setColorFilter(0, osgTerrain::Terrain::Filter::LINEAR); > > osg::Geode* geode= new osg::Geode(); > osg::ShapeDrawable* draw= new osg::ShapeDrawable(hF); > geode->addDrawable(draw); > > > //TEXTURE > osg::StateSet* state= new osg::StateSet(); > osg::Texture2D* texture= new osg::Texture2D(); > texture->setDataVariance(osg::Object::DYNAMIC); > osg::Image* img= > osgDB::readImageFile("C:/Programmi/OpenSceneGraph/data/Images/Saturn.TGA"); > texture->setImage(img); > state->setTextureAttributeAndModes(0, texture, > osg::StateAttribute::ON); > //geode->setStateSet(state); > //FINE texture > > > > return geode; > } > _______________________________________________ > osg-users mailing list > osg-users@lists.openscenegraph.org > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > > _______________________________________________ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org