void ssaoApp::update() { mCam = mMayaCam.getCamera(); mDeferredRenderer.mCam = &mCam; float base = getElapsedSeconds(); vector<Light_PS*>::iterator it = mDeferredRenderer.getCubeLightsRef()->begin(); for(it; it != mDeferredRenderer.getCubeLightsRef()->end(); ++it) { Vec3f v = (*it)->getPos(); v.y = (40 + (sin(base) * 30.f)); (*it)->setPos(v); base += 1.f; } }
void DeferredRenderingApp::keyDown( KeyEvent event ) { float lightMovInc = 0.1f; switch ( event.getCode() ) { //switch between render views case KeyEvent::KEY_0: {RENDER_MODE = DeferredRenderer::SHOW_FINAL_VIEW;} break; case KeyEvent::KEY_1: {RENDER_MODE = DeferredRenderer::SHOW_DIFFUSE_VIEW;} break; case KeyEvent::KEY_2: {RENDER_MODE = DeferredRenderer::SHOW_NORMALMAP_VIEW;} break; case KeyEvent::KEY_3: {RENDER_MODE = DeferredRenderer::SHOW_DEPTH_VIEW;} break; case KeyEvent::KEY_4: {RENDER_MODE = DeferredRenderer::SHOW_POSITION_VIEW;} break; case KeyEvent::KEY_5: {RENDER_MODE = DeferredRenderer::SHOW_ATTRIBUTE_VIEW;} break; case KeyEvent::KEY_6: {RENDER_MODE = DeferredRenderer::SHOW_SSAO_VIEW;} break; case KeyEvent::KEY_7: {RENDER_MODE = DeferredRenderer::SHOW_SSAO_BLURRED_VIEW;} break; case KeyEvent::KEY_8: {RENDER_MODE = DeferredRenderer::SHOW_LIGHT_VIEW;} break; case KeyEvent::KEY_9: {RENDER_MODE = DeferredRenderer::SHOW_SHADOWS_VIEW;} break; //change which cube you want to control case 269: { //minus key if( mDeferredRenderer.getNumCubeLights() > 0) { --mCurrLightIndex; if ( mCurrLightIndex < 0) mCurrLightIndex = mDeferredRenderer.getNumCubeLights() - 1; } } break; case 61: { if( mDeferredRenderer.getNumCubeLights() > 0) { //plus key ++mCurrLightIndex; if ( mCurrLightIndex > mDeferredRenderer.getNumCubeLights() - 1) mCurrLightIndex = 0; } } break; //move selected cube light case KeyEvent::KEY_UP: { if ( mDeferredRenderer.getNumCubeLights() > 0) { if(event.isShiftDown()) { mDeferredRenderer.getCubeLightsRef()->at(mCurrLightIndex)->setPos( mDeferredRenderer.getCubeLightsRef()->at(mCurrLightIndex)->getPos() + Vec3f(0.0f, lightMovInc, 0.0f )); } else { mDeferredRenderer.getCubeLightsRef()->at(mCurrLightIndex)->setPos( mDeferredRenderer.getCubeLightsRef()->at(mCurrLightIndex)->getPos() + Vec3f(0.0f, 0.0f, lightMovInc)); } } } break; case KeyEvent::KEY_DOWN: { if ( mDeferredRenderer.getNumCubeLights() > 0) { if(event.isShiftDown()) { mDeferredRenderer.getCubeLightsRef()->at(mCurrLightIndex)->setPos( mDeferredRenderer.getCubeLightsRef()->at(mCurrLightIndex)->getPos() + Vec3f(0.0f, -lightMovInc, 0.0f )); } else { mDeferredRenderer.getCubeLightsRef()->at(mCurrLightIndex)->setPos( mDeferredRenderer.getCubeLightsRef()->at(mCurrLightIndex)->getPos() + Vec3f(0.0f, 0.0, -lightMovInc)); } } } break; case KeyEvent::KEY_LEFT: { if ( mDeferredRenderer.getNumCubeLights() > 0) { mDeferredRenderer.getCubeLightsRef()->at(mCurrLightIndex)->setPos( mDeferredRenderer.getCubeLightsRef()->at(mCurrLightIndex)->getPos() + Vec3f(lightMovInc, 0.0, 0.0f)); } } break; case KeyEvent::KEY_RIGHT: { if ( mDeferredRenderer.getNumCubeLights() > 0) { mDeferredRenderer.getCubeLightsRef()->at(mCurrLightIndex)->setPos( mDeferredRenderer.getCubeLightsRef()->at(mCurrLightIndex)->getPos() + Vec3f(-lightMovInc, 0.0, 0.0f)); } } break; case KeyEvent::KEY_ESCAPE: { //never know when you need to quit quick exit(1); } break; default: break; } }