So hi again. Now i tryed the osgTerrain Nodekit. To gernerate my Terrain. i greated 2 TerrianTiles. But now the whole Terrian is very dark. Look at the code pls and picture:
Sorry but the code tag dont work right. osg::ref_ptr<osgTerrain::Locator> Locator1 = new osgTerrain::Locator; Locator1->setCoordinateSystemType( osgTerrain::Locator::PROJECTED ); Locator1->setTransformAsExtents( 0.0, 0.0, 2560.0, 2560.0 ); osg::ref_ptr<osgTerrain::Locator> Locator2 = new osgTerrain::Locator; Locator2->setCoordinateSystemType( osgTerrain::Locator::PROJECTED ); Locator2->setTransformAsExtents( 2560.0, 0.0, 2560.0+2560.0, 2560.0 ); //////////////////////////////////////////////////////////////////////////////////////////////////////////// osg::Image* img = osgDB::readImageFile( _Heightmap ); osg::ref_ptr<osg::HeightField> heightmap1 = new osg::HeightField; heightmap1->allocate(256,256); heightmap1->setXInterval(10.0f); heightmap1->setYInterval(10.0f); for(int z=0; z<256; z++) { for(int x=0; x<256; x++) { heightmap1->setHeight( x, z, (float)*img->data( x, z ) ); } } osg::ref_ptr<osgTerrain::HeightFieldLayer> HeightFieldLayer1 = new osgTerrain::HeightFieldLayer( heightmap1.get() ); HeightFieldLayer1->setLocator( Locator1.get() ); osg::ref_ptr<osgTerrain::GeometryTechnique> GeometryTechnique1 = new osgTerrain::GeometryTechnique; osg::ref_ptr<osgTerrain::TerrainTile> TerrainTile1 = new osgTerrain::TerrainTile; TerrainTile1->setElevationLayer( HeightFieldLayer1.get() ); TerrainTile1->setTerrainTechnique( GeometryTechnique1.get() ); /////////////////////////////////////////////////////////////////////////////////////////////////////////////// osg::ref_ptr<osg::HeightField> heightmap2 = new osg::HeightField; heightmap2->allocate(256,256); heightmap2->setXInterval(10.0f); heightmap2->setYInterval(10.0f); for(int z=0; z<256; z++) { for(int x=255, ix = 0; x>=0; x--, ix++) { heightmap2->setHeight( ix, z, (float)*img->data( x, z ) ); } } osg::ref_ptr<osgTerrain::HeightFieldLayer> HeightFieldLayer2 = new osgTerrain::HeightFieldLayer( heightmap2.get() ); HeightFieldLayer2->setLocator( Locator2.get() ); osg::ref_ptr<osgTerrain::GeometryTechnique> GeometryTechnique2 = new osgTerrain::GeometryTechnique; osg::ref_ptr<osgTerrain::TerrainTile> TerrainTile2 = new osgTerrain::TerrainTile; TerrainTile2->setElevationLayer( HeightFieldLayer2.get() ); TerrainTile2->setTerrainTechnique( GeometryTechnique2.get() ); /////////////////////////////////////////////////////////////////////////////////////////////////////////////// osg::ref_ptr<osgTerrain::Terrain> Terrain = new osgTerrain::Terrain; Terrain->setSampleRatio( 1.0f ); osg::ref_ptr<osg::Image> m_TextureImg = osgDB::readImageFile( _Texture ); osg::ref_ptr<osg::Texture2D> m_Texture = new osg::Texture2D; m_Texture->setImage( m_TextureImg.get() ); osg::ref_ptr<osg::StateSet> m_TerrainStateSet = Terrain->getOrCreateStateSet(); m_TerrainStateSet->setTextureAttributeAndModes( 0, m_Texture, osg::StateAttribute::ON ); m_TerrainStateSet->setMode( GL_LIGHTING, osg::StateAttribute::ON ); m_TerrainStateSet->setAttribute( new osg::PolygonMode( osg::PolygonMode::FRONT_AND_BACK, osg::PolygonMode::LINE ) ); Terrain->addChild( TerrainTile1.get() ); Terrain->addChild( TerrainTile2.get() ); [Image: http://www.husseini.de/markus/Terrain3.jpg ] The red should be like the other pictures. Thanks for help. ------------------ Read this topic online here: http://forum.openscenegraph.org/viewtopic.php?p=15452#15452 _______________________________________________ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org