IslandGenerator islandGenerator;
boost::shared_ptrt = islandGenerator.generateIsland(0, 0, 37);
osg::LOD * islandLod = new osg::LOD;
osg::Drawable * grid1 = createGrid(*t, 200, 1, 0.05, 20);
osg::Geode * geode1 = new osg::Geode;
geode1->addDrawable(grid1);
islandLod->addChild(geode1, 0, 500);
osg::Drawable * grid2 = createGrid(*t, 100, 1, 0.05, 20);
osg::Geode * geode2 = new osg::Geode;
geode2->addDrawable(grid2);
islandLod->addChild(geode2, 500, 1000);
osg::Drawable * grid3 = createGrid(*t, 50, 1, 0.05, 20);
osg::Geode * geode3 = new osg::Geode;
geode3->addDrawable(grid3);
islandLod->addChild(geode3, 1000, 2000);
osg::Drawable * grid4 = createGrid(*t, 20, 1, 0.05, 20);
osg::Geode * geode4 = new osg::Geode;
geode4->addDrawable(grid4);
islandLod->addChild(geode4, 2000, 10000);
lightsource->addChild(islandLod);
Voilà le résultat:






Bien sûr, j'ai fortement exagéré les niveaux de détail pour apercevoir la transition, mais en étant moins agressif, l'on peut obtenir une bonne réduction du niveau de détail sans que le passage d'un niveau à l'autre soit trop visible. Ainsi, il devient possible d'afficher des centaines d'îles simultanément!
Aucun commentaire:
Enregistrer un commentaire