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

Reply via email to