#include <osgViewer/Viewer> #include <osgDB/ReadFile> #include <osgGA/TrackballManipulator> #include <osgOcean/OceanScene> #include <osgOcean/FFTOceanSurface> #include <osgViewer/ViewerEventHandlers> #include <osg/TextureCubeMap> #include <osg/MatrixTransform> #pragma comment(lib, "osgViewerd.lib") #pragma comment(lib, "osgd.lib") #pragma comment(lib, "osgDBd.lib") #pragma comment(lib, "osgOceanD.lib") #pragma comment(lib, "osgGAd.lib") #pragma comment(lib, "osgUtild.lib") int main() { osg::ref_ptr<osgViewer::Viewer> viewer = new osgViewer::Viewer; viewer->setUpViewInWindow(150,150,1024,768,0); osg::ref_ptr<osgOcean::FFTOceanSurface> surface = new osgOcean::FFTOceanSurface(64,256,17,osg::Vec2(1.1f,1.1f),12,10,0.8,1e-8,true,2.5,20.0,256); osg::ref_ptr<osgOcean::OceanScene> scene = new osgOcean::OceanScene(surface.get()); scene->setAboveWaterFog(0.0012,osg::Vec4(0.67,0.87,0.97,1.0)); scene->enableReflections(true); surface->setFoamBottomHeight(2.2); surface->setFoamTopHeight(3.0); surface->enableCrestFoam(true); viewer->addEventHandler(surface->getEventHandler()); viewer->addEventHandler(scene->getEventHandler()); osgGA::TrackballManipulator *tb = new osgGA::TrackballManipulator; tb->setHomePosition(osg::Vec3d(0,0,20),osg::Vec3d(0,20,20),osg::Z_AXIS); viewer->setCameraManipulator(tb); viewer->addEventHandler(new osgViewer::StatsHandler); viewer->setSceneData(scene.get()); viewer->run(); return 0; }
转载于:https://www.cnblogs.com/nmgxbc/p/3452722.html