void triMeshApp::setup(){ // cam, lights material mCam = new CameraPersp(getWindowWidth(), getWindowHeight(), 45.0f); mCam->lookAt( Vec3f(300, 700, -600), Vec3f(0,0,0) ); mCam->setPerspective( 60.0f, getWindowAspectRatio(), 0.1f, 5000.0f ); yrot = 0; glEnable(GL_DEPTH_TEST); glShadeModel(GL_SMOOTH); glEnable(GL_LIGHTING); glEnable(GL_NORMALIZE); mLight = new gl::Light(gl::Light::DIRECTIONAL, 0); mLight->setDirection( Vec3f(0,0.1,0.3).normalized()); mLight->setAmbient( Color( 0.2f, 0.2f, 0.2f ) ); mLight->setDiffuse( Color( 1.0f, 1.0f, 1.0f ) ); mLight->update( *mCam ); mLight->enable(); mMaterial1.setSpecular( Color(0.5,0.5,0.5) ); mMaterial1.setDiffuse( Color( 0.0f, 1.0f, 0.0f ) ); mMaterial1.setAmbient( Color( 0.1f, 0.1f, 0.1f ) ); mMaterial1.setShininess( 20.0f ); mMaterial1.apply(); mMaterial2.setSpecular( Color(0,0,0) ); mMaterial2.setDiffuse( Color(1,0,0) ); mMaterial2.setAmbient( Color( 0.4f, 0.0f, 0.0f ) ); mMaterial2.setEmission(Color(1,0,0)); initPhysics(); ObjLoader loader( loadResource( RES_LOSPHERE )->createStream() ); loader.load( &mConvex ); mVBO = gl::VboMesh( mConvex ); ObjLoader loader2( loadResource( RES_TORUS )->createStream() ); loader2.load( &mConcave ); mVBOTerrain = gl::VboMesh( mConcave ); btConvexHullShape* shape = bullet::createConvexHullShape(mConvex, Vec3f(CONVEX_SCALE, CONVEX_SCALE, CONVEX_SCALE)); m_convexRigidBody = bullet::createConvexHullBody(m_dynamicsWorld, shape, Vec3f(0,500,0), 10000); btBvhTriangleMeshShape* concaveShape = bullet::createStaticConcaveMeshShape(mConcave, Vec3f(CONCAVE_SCALE, CONCAVE_SCALE, CONCAVE_SCALE), 5.0f); m_concaveRigidBody = bullet::createStaticRigidBody(m_dynamicsWorld, concaveShape, Vec3f(0,255,0)); m_hfImage = loadImage(loadResource(RES_HEIGHTMAP)); m_hfChannel = new Channel32f(m_hfImage); // note that HF_HEIGHTSCALE is ignored since we are using float data. we adjust the y-scale with the local scaling parameter only! btHeightfieldTerrainShape* hfShape = bullet::createHeightfieldTerrainShape(m_hfChannel, 64, 64, HF_HEIGHTSCALE, -500, 500, 1, Vec3f(HF_SCALE,HF_SCALEY,HF_SCALE)); m_hfRigidBody = bullet::createStaticRigidBody(m_dynamicsWorld, hfShape, Vec3f(0,0,0)); gl::VboMesh::Layout layout; layout.setDynamicColorsRGB(); layout.setDynamicPositions(); mVBOHeightfield = gl::VboMesh( m_hfImage.getWidth() * m_hfImage.getHeight(), 0, layout, GL_POINTS ); updateData( ); }
void MeshViewApp::setup() { loadConfig("configs/gaztank.ini"); setupCamera(); // Create lights m_light1 = new gl::Light(gl::Light::DIRECTIONAL, 0); m_light1->setDirection(Vec3f(0, 0, 1).normalized()); m_light1->setAmbient(Color(0.0f, 0.0f, 0.1f)); m_light1->setDiffuse(Color(0.9f, 0.6f, 0.3f)); m_light1->setSpecular(Color(0.9f, 0.6f, 0.3f)); m_light2 = new gl::Light(gl::Light::DIRECTIONAL, 1); m_light2->setDirection(Vec3f(0, 0, -1).normalized()); m_light2->setAmbient(Color(0.0f, 0.0f, 0.0f)); m_light2->setDiffuse(Color(0.2f, 0.6f, 1.0f)); m_light2->setSpecular(Color(0.2f, 0.2f, 0.2f)); // Setup matrix m_matrix.setToIdentity(); m_matrix.translate(Vec3f::zero()); m_matrix.rotate(Vec3f::zero()); m_matrix.scale(Vec3f::one()); m_rotateMesh = false; // Create a parameter window m_params = params::InterfaceGl::create(getWindow(), "Properties", Vec2i(180, 240)); m_params->addText("LMB + drag - rotate"); m_params->addText("RMB + drag - zoom"); m_params->addSeparator(); m_params->addButton("Full screen", [&] { setFullScreen(!isFullScreen()); }); m_params->addParam("Auto rotate", &m_rotateMesh); m_params->addSeparator(); m_params->addParam("Diffuse", &m_diffuseEnabled); m_params->addParam("Normal", &m_normalEnabled); m_params->addParam("Specular", &m_specularEnabled); m_params->addParam("AO", &m_aoEnabled); m_params->addParam("Emissive", &m_emissiveEnabled); m_params->addSeparator(); m_params->addParam("Gamma", &m_gamma, "min=0.0 max=10.0 step=0.1"); m_time = (float)getElapsedSeconds(); }
void SpawnObjectApp::setup() { mFixtures = Fixture::loadFixtures( getAssetPath("fixtures_001.csv") ); // load CSV fixtures file mFixtureMesh = Fixture::loadObj( getAssetPath("sphere.obj") ); // load fixture mesh mVenueMesh = Fixture::loadObj( getAssetPath("piano2.obj") ); // load venue mesh mFadeIn = 0.5f; mFadeOut = 0.1f; mSpeed = 0.2f; mRadius = 1.5f; mPointsN = 8; mDeg = 3; mModule = SpawnModule::create(); // create module mParams = params::InterfaceGl::create( "Params", Vec2i( 200, 240 ) ); // Gui mParams->addParam( "Fade IN", &mFadeIn , "min=0.001 max=1.0 step=0.001" ); mParams->addParam( "Fade OUT", &mFadeOut , "min=0.001 max=1.0 step=0.001" ); mParams->addSeparator(); mParams->addParam( "Speed", &mSpeed , "min=0.001 max=10.0 step=0.001" ); mParams->addParam( "Radius", &mRadius , "min=0.1 max=15.0 step=0.1" ); mParams->addParam( "Points N", &mPointsN , "min=2 max=100 step=1" ); mParams->addParam( "Deg", &mDeg , "min=1 max=10 step=1" ); ci::CameraPersp initialCam; // Initialise camera initialCam.setPerspective( 45.0f, ci::app::getWindowAspectRatio(), 0.1, 3000 ); mMayaCam = MayaCamUI( initialCam ); // Set up light mLight = new gl::Light( gl::Light::DIRECTIONAL, 0 ); mLight->setDirection( Vec3f( 0.0f, 0.1f, 0.3f ).normalized() ); mLight->setAmbient( ColorAf::gray( 0.843f ) ); mLight->setDiffuse( ColorAf( 1.0f, 1.0f, 1.0f, 1.0f ) ); mLight->enable(); // create a path mModule->createPath( mPointsN, mDeg, mRadius ); }
void LocationApp::setup() { // Define properties mHeading = 0.0f; timeline().apply( &mRotationAngle, 0.0f, (float)(2 * M_PI), 8.0f ).loop(); timeline().apply( &mDotRadius, 0.0f, 0.1f, 0.5f ).loop(); LocationManager::enable(); LocationManager::getSignalLocationChanged().connect( std::bind( &LocationApp::locationChanged, this, std::_1 ) ); #if defined( CINDER_COCOA_TOUCH ) LocationManager::getSignalHeadingChanged().connect( std::bind( &LocationApp::headingChanged, this, std::_1 ) ); #endif // Load globe texture, setFrameRate( 60.0f ); mTexture = gl::Texture( loadImage( loadResource( RES_EARTH_JPG ) ) ); mTexture.setFlipped( true ); // Set up view gl::enable( GL_TEXTURE_2D ); gl::enableAlphaBlending(); // Set up light mLight = new gl::Light( gl::Light::DIRECTIONAL, 0 ); mLight->setDirection( Vec3f( 0.0f, 0.1f, 0.3f ).normalized() ); mLight->setAmbient( ColorAf::gray( 0.843f ) ); mLight->setDiffuse( ColorAf( 1.0f, 1.0f, 1.0f, 1.0f ) ); mLight->enable(); // Build the heading arrow float size = 80.0f; mArrow.moveTo( Vec2f( 0.0f, -size * 0.5f ) ); mArrow.lineTo( Vec2f( size * 0.5f, size * 0.5f ) ); mArrow.lineTo( Vec2f( 0.0f, size * 0.25f ) ); mArrow.lineTo( Vec2f( -size * 0.5f, size * 0.5f ) ); mArrow.close(); }
void winBodiesApp::setup(){ // cam, lights material mCam = new CameraPersp(getWindowWidth(), getWindowHeight(), 45.0f); mCam->lookAt( Vec3f(100, 400, -400), Vec3f(0,0,0) ); mCam->setPerspective( 60.0f, getWindowAspectRatio(), 0.1f, 5000.0f ); glEnable(GL_DEPTH_TEST); glShadeModel(GL_SMOOTH); glEnable(GL_LIGHTING); mLight = new gl::Light(gl::Light::DIRECTIONAL, 0); mLight->setDirection( Vec3f(0,0.1,0.3)); mLight->setAmbient( Color( 0.2f, 0.2f, 0.2f ) ); mLight->setDiffuse( Color( 1.0f, 1.0f, 1.0f ) ); mLight->update( *mCam ); mLight->enable(); mMaterial1.setSpecular( Color(0.5,0.5,0.5) ); mMaterial1.setDiffuse( Color( 0.33f, 0.24f, 1.0f ) ); mMaterial1.setAmbient( Color( 0.1f, 0.1f, 0.1f ) ); mMaterial1.setShininess( 20.0f ); mMaterial1.apply(); mMaterial2.setSpecular( Color(0,0,0) ); mMaterial2.setDiffuse( Color(1,0,0) ); mMaterial2.setAmbient( Color( 0.4f, 0.0f, 0.0f ) ); mMaterial2.setEmission(Color(1,0,0)); mMaterialG.setSpecular(Color(0,0,0)); mMaterialG.setDiffuse(Color(0,0,0.03)); mMaterialG.setAmbient(Color(0.1,0.1,0.1)); initPhysics(); lastTime = getElapsedSeconds(); }