コード例 #1
0
ファイル: OsgMainApp.cpp プロジェクト: ebclark2/pingpong
//Initialization function
void OsgMainApp::initOsgWindow(int x,int y,int width,int height){

    __android_log_write(ANDROID_LOG_ERROR, "OSGANDROID",
            "Initializing geometry");

    //Pending
    _notifyHandler = new OsgAndroidNotifyHandler();
    _notifyHandler->setTag("Osg Viewer");
    osg::setNotifyHandler(_notifyHandler);

    osg::notify(osg::ALWAYS)<<"Testing"<<std::endl;

    _viewer = new osgViewer::Viewer();
    _viewer->setUpViewerAsEmbeddedInWindow(x, y, width, height);

    _root = new osg::Group();

    _viewer->realize();

    _state = _root->getOrCreateStateSet();
    _state->setMode(GL_LIGHTING, osg::StateAttribute::ON);
    _state->setMode(GL_DEPTH_TEST, osg::StateAttribute::ON);
    _state->setMode(GL_CULL_FACE, osg::StateAttribute::ON);

    PaddleManip = new test::PaddleManipulator(_viewer->getCamera());
    loadDefaultScene();

    _viewer->setSceneData(_root.get());

    _viewer->addEventHandler(PaddleManip);
    _viewer->addEventHandler(new osgViewer::StatsHandler);
    _viewer->addEventHandler(new osgGA::StateSetManipulator(_viewer->getCamera()->getOrCreateStateSet()));
    _viewer->addEventHandler(new osgViewer::ThreadingHandler);
    _viewer->addEventHandler(new osgViewer::LODScaleHandler);

    _manipulator = new osgGA::KeySwitchMatrixManipulator;

//    _manipulator->addMatrixManipulator( '1', "Trackball", new osgGA::TrackballManipulator() );
//    _manipulator->addMatrixManipulator( '2', "Flight", new osgGA::FlightManipulator() );
//    _manipulator->addMatrixManipulator( '3', "Drive", new osgGA::DriveManipulator() );
//    _manipulator->addMatrixManipulator( '4', "Terrain", new osgGA::TerrainManipulator() );
//    _manipulator->addMatrixManipulator( '5', "Orbit", new osgGA::OrbitManipulator() );
//    _manipulator->addMatrixManipulator( '6', "FirstPerson", new osgGA::FirstPersonManipulator() );
//    _manipulator->addMatrixManipulator( '7', "Spherical", new osgGA::SphericalManipulator() );
//
//    _viewer->setCameraManipulator( _manipulator.get() );

    _viewer->getViewerStats()->collectStats("scene", true);

    _initialized = true;
    double cameraHeight = std::sin(osg::DegreesToRadians(20.0)) * 12.0;
    osg::Vec3d cameraPosition(0, cameraHeight, 0);
    osg::Vec3d center(0, 0, 12);
    osg::Vec3d cameraDirection = center - cameraPosition; //osg::Quat(osg::DegreesToRadians(20.0), osg::Vec3d(0, 0, 1)) * osg::Vec3d(0, 0, 1);
    cameraDirection.normalize();
    _viewer->getCamera()->setViewMatrixAsLookAt(cameraPosition, center, cameraDirection ^ osg::Vec3d(1, 0, 0));
//    _viewer->getCamera()->setProjectionMatrixAsFrustum(-5.0, 5.0, -5.0, 5.0, 1.0, 20.0);

}
コード例 #2
0
ファイル: testApp.cpp プロジェクト: Saihsq/ofxRGBDepth
//--------------------------------------------------------------
void testApp::setup(){
    
    ofSetFrameRate(60);
    ofSetVerticalSync(true);
    ofBackground(255*.15);
    
    //set up a standard timeline with a default duration to begin with
    timeline.setup();
    timeline.getColors().load("defaultColors.xml");
	timeline.setOffset(ofVec2f(0,0));
    timeline.setDurationInFrames(300);
    timeline.setPageName("Main");
    
    //set up a video timeline element so we can see the video frames
    timeline.addTrack("Video", &videoTrack);
    timeline.addTrack("Depth", &depthTrack);
	
//	timeline.addCurves("xshift", "xshift.xml", ofRange(-.15, .15));
//  timeline.addCurves("yshift", "yshift.xml", ofRange(-.15, .15));
//  timeline.addCurves("farclip", "farclip.xml", ofRange(500, 6000));
	
	panel.setup("options");
	panel.add(showDepthProjection.setup("show depth projection", ofxParameter<bool>()));
	panel.add(showDepthWireframe.setup("show wireframe", ofxParameter<bool>()));
	panel.add(showRGBProjection.setup("show rgb projection", ofxParameter<bool>()));
	panel.add(rgbTextureSlider.setup("rgb texture projection", ofxParameter<float>(), 0, 1));
//	panel.add(xShift.setup("x shift",ofxParameter<float>(), -.15, .15));
//	panel.add(yShift.setup("y shift",ofxParameter<float>(), -.15, .15));

	xShift = 0.0045;
	yShift = 0.03;
	rgbTextureSlider = 0;
	
	
    //set up the game camera
    cam.setup();
	cam.dampen = true;
    cam.speed = 20;
    cam.autosavePosition = true;
    cam.targetNode.setPosition(ofVec3f());
    cam.targetNode.setOrientation(ofQuaternion());
    cam.targetXRot = -180;
    cam.targetYRot = 0;
    cam.rotationZ = 0;    

	player.updateVideoPlayer = false;
    //load 
    loadDefaultScene();
	
 	ofToggleFullscreen();
}
コード例 #3
0
//--------------------------------------------------------------
void testApp::setup(){
    
    ofSetFrameRate(60);
    ofSetVerticalSync(true);
    ofBackground(25);
    
    //set up the game camera
    cam.setup();
    cam.speed = 20;
    cam.autosavePosition = true;
    cam.targetNode.setPosition(ofVec3f());
    cam.targetNode.setOrientation(ofQuaternion());
    cam.targetXRot = -180;
    cam.targetYRot = 0;
    cam.rotationZ = 0;    
    cam.setScale(1,-1,1);

    xshift = 0;
    yshift = 0;
    maxFeatures = 500;
    featureQuality = .5;
	minDistance = 10;
	
    
    gui.setup("tests");
    gui.add(loadNew.setup("load new scene"));

    gui.add(xshift.setup("xshift", ofxParameter<float>(), -.15, .15));
    gui.add(yshift.setup("yshift", ofxParameter<float>(), -.15, .15));
    gui.add(farClip.setup("far clip", ofxParameter<float>(),1000, 4500));

    gui.add(lightX.setup("lightX", ofxParameter<float>(),-1000, 1000));
    gui.add(lightY.setup("lightY", ofxParameter<float>(),-1000, 1000));
    gui.add(lightZ.setup("lightZ", ofxParameter<float>(),400, 2000));

    gui.add(maxFeatures.setup("max features", ofxParameter<int>(),100, 5000));
    gui.add(featureQuality.setup("feature quality", ofxParameter<float>(),.0000001, .01));
    gui.add(minDistance.setup("min distance", ofxParameter<float>(), .0, 200));
	gui.add(renderMode.setup("render", ofxParameter<bool>()));

    gui.loadFromFile("defaultSettings.xml");
    renderMode = false;
    
    calculateRects();
    
    //attemping to load the last scene
    loadDefaultScene();
}
コード例 #4
0
//--------------------------------------------------------------
void testApp::setup(){
    
    ofSetFrameRate(60);
    ofSetVerticalSync(true);
    ofBackground(255);
    
    //set up a standard timeline with a default duration to begin with
    timeline.setup();
    timeline.getColors().load("defaultColors.xml");
	timeline.setOffset(ofVec2f(0,0));
    timeline.setDurationInFrames(300);
    timeline.setPageName("Main");
    
    //set up a video timeline element so we can see the video frames
    timeline.addTrack("Video", &videoTrack);
    timeline.addTrack("Depth", &depthTrack);
	
//	timeline.addCurves("xshift", "xshift.xml", ofRange(-.15, .15));
//  timeline.addCurves("yshift", "yshift.xml", ofRange(-.15, .15));
//  timeline.addCurves("farclip", "farclip.xml", ofRange(500, 6000));
    
    //set up the game camera
    cam.setup();
    cam.speed = 20;
    cam.autosavePosition = true;
    cam.targetNode.setPosition(ofVec3f());
    cam.targetNode.setOrientation(ofQuaternion());
    cam.targetXRot = -180;
    cam.targetYRot = 0;
    cam.rotationZ = 0;    

	player.updateVideoPlayer = false;
    //load 
    loadDefaultScene();
    
}
コード例 #5
0
//--------------------------------------------------------------
void testApp::setup(){
    
    ofSetFrameRate(30);
    ofSetVerticalSync(true);
    ofBackground(25);
	ofEnableSmoothing();
	
	justLoadedNewScene = false;
	rendering = false;

    //set up the game camera
    cam.setup();
    cam.speed = 20;
//    cam.autosavePosition = true;
//	cam.loadCameraPosition();
    cam.targetNode.setPosition(ofVec3f());
    cam.targetNode.setOrientation(ofQuaternion());
    cam.targetXRot = -180;
    cam.targetYRot = 0;
    cam.rotationZ = 0;    
    
	ofxTimeline::removeCocoaMenusFromGlut("RGBDMultiLoader");
	
	timeline.setup();
	timeline.setFrameBased(true);
	timeline.setDurationInSeconds(60);
	timeline.setFrameRate(24);

	timeline.setPageName("Camera");
	timeline.addTrack("cam", &camTrack);
	timeline.addCurves("cam damp");
	timeline.addFlags("scene");
	timeline.addFlags("notes");
	timeline.addCurves("x shift", ofRange(-.15,.15), 0);
	timeline.addCurves("y shift", ofRange(-.15,.15), 0);
	timeline.addCurves("x offset", ofRange(-1000,  1000), 0);
	timeline.addCurves("z offset", ofRange(0, 2000));
	timeline.addSwitches("pause video");
	
	timeline.addPage("Rendering");
	timeline.addCurves("Z Threshold", ofRange(500, 2000), 1200);
    timeline.addCurves("Point Alpha");
	timeline.addCurves("Point Size", ofRange(.5, 10));
    timeline.addCurves("Wireframe Alpha");
	timeline.addCurves("Wireframe Thickness",ofRange(.5, 5));

	timeline.addPage("Particles");
	timeline.addCurves("particle fade", ofRange(0, 1.0));
	timeline.addCurves("particle size max", ofRange(.5, 10),7);
	timeline.addCurves("particle size min", ofRange(.5, 5), 2);
	timeline.addCurves("birth rate", ofRange(0, .4));
	timeline.addCurves("life span", ofRange(0, 300));
	timeline.addCurves("life span var", ofRange(0, 1.0));
	
	timeline.addPage("Particle Forces");
	timeline.addCurves("perlin amp", ofRange(0, 1));
	timeline.addCurves("perlin speed", ofRange(0,1));
	timeline.addCurves("perlin density", ofRange(0, 1000));
	timeline.addCurves("gravity amp", ofRange(-.5, .5), 0.0);
	timeline.addCurves("spin force", ofRange(-.5, .5), 0.0);
	timeline.addCurves("explode force", ofRange(0, 20), 0.0);
	timeline.addCurves("explode var", ofRange(0, 1.));
	timeline.addCurves("z wind", ofRange(0, 2.));
	
    timeline.addPage("Wireframe Flicker");
    timeline.addCurves("Wireframe Perlin Density", "wireframePerlinDensity.xml", ofRange(10, 3000.0), 0.0);
    timeline.addCurves("Wireframe Perlin Speed", "wireframePerlinSpeed.xml", ofRange(0, .2), 0.0);
	timeline.addCurves("Wireframe Lumin Min", "wireframeLuminMin.xml", ofRange(0, .5), 0.0);
	timeline.addCurves("Wireframe Lumin Mid", "wireframeLuminMid.xml", ofRange(0, 1.0), .5);
    timeline.addCurves("Wireframe Lumin Contrast", "wireframeLuminContrast.xml", ofRange(0, 10.0), 1.0);
    timeline.addCurves("Wireframe Lumin Exponent", "wireframeLuminExponent.xml", ofRange(1.0, 5.0), 0.0);
	
	timeline.setCurrentPage(0);
	
	timeline.setMinimalHeaders(true);

	camTrack.setCamera(cam);
	
	ofAddListener(timeline.events().bangFired, this, &testApp::bangFired);
	
	luminosityChannel = 0;
	
	meshBuilder.addColors = true;
	meshBuilder.cacheValidVertices = true;
	meshBuilder.getHoleFiller().enable = true;

	renderTarget.allocate(1920, 1080, GL_RGB, 4);
    simplify = 1;
	
	scenePaths["jer"]   = "/Volumes/IMPOSTER/EyeoMediaBin/Jer03"; //6297 - 6751
	scenePaths["bruce"] = "/Volumes/IMPOSTER/BruceSterlingAustin/TAKE_07_08_14_15_35";
	scenePaths["paola"] = "/Volumes/IMPOSTER/EyeoMediaBin/Paola03";
	scenePaths["sofy"]  = "/Volumes/IMPOSTER/ITPClouds/TAKE_07_12_21_07_00"; //9190
	
    gui.setup("tests");
    gui.add(simplify.setup("simplify", ofxParameter<int>(), 1, 8));
    gui.add(drawWireframe.setup("draw wireframe",ofxParameter<bool>()));
	gui.add(drawPointcloud.setup("draw pointcloud",ofxParameter<bool>()));
	gui.add(drawParticles.setup("draw particles",ofxParameter<bool>()));
	gui.add(supressPlay.setup("supress play",ofxParameter<bool>()));

	gui.add(numAmbientParticles.setup("num ambient", ofxParameter<int>(), 500, 200000));
	gui.add(particleBoxWidth.setup("ap box width", ofxParameter<int>(), 500, 3000));
	gui.add(particleBoxHeight.setup("ap box height", ofxParameter<int>(), 500, 3000));
	gui.add(particleBoxDepth.setup("ap box depth", ofxParameter<int>(), 3000, 10000));

	
	gui.add(particleMaxDistance.setup("max particle distance", ofxParameter<float>(), 0, 1000));
	gui.add(particeMaxSize.setup("max particle size", ofxParameter<float>(), .5, 9));
	gui.add(particleFade.setup("particle alpha", ofxParameter<float>(), 0, 1.0));

    gui.loadFromFile("defaultSettings.xml");
    
	currentFrameNumber = 0;
	
	particleRenderer.meshBuilder = &meshBuilder;
	particleRenderer.setup(100000);
	
	loadShader();
	
    //attemping to load the last scene
    loadDefaultScene();
	
	if(numAmbientParticles < 0 ) numAmbientParticles = 50000;
	generateAmbientParticles();
	
	cout << "generated " << clusters.getVertices().size() << " cluster points " << endl;
	
	glEnable(GL_VERTEX_PROGRAM_POINT_SIZE_ARB);	// allows per-point size
}