void SSAODemo::update(float timeSinceLastUpdate) { auto input = engine->getInput(); if(input.isKeyPressed(KEY_R)) { ssaoOn = !ssaoOn; updateShaderParameters(); } else if(input.isKeyPressed(KEY_T)) { showSSAOTex = !showSSAOTex; updateShaderParameters(); } float moveDistance = timeSinceLastUpdate * 20.0f; float moveRotation = timeSinceLastUpdate * 60.0f; if(input.isKeyDown(KEY_LEFT)) camera->rotate(Quaternion(moveRotation, Vector3::UNIT_Y), FrameOfReference::World); if(input.isKeyDown(KEY_RIGHT)) camera->rotate(Quaternion(-moveRotation, Vector3::UNIT_Y), FrameOfReference::World); if(input.isKeyDown(KEY_UP)) camera->rotate(Quaternion(moveRotation, Vector3::UNIT_X), FrameOfReference::Local); if(input.isKeyDown(KEY_DOWN)) camera->rotate(Quaternion(-moveRotation, Vector3::UNIT_X), FrameOfReference::Local); if(input.isKeyDown(KEY_W)) camera->translate((Vector3(0.0f, 0.0f, -moveDistance)), FrameOfReference::Local); if(input.isKeyDown(KEY_S)) camera->translate(Vector3(0.0f, 0.0f, moveDistance), FrameOfReference::Local); if(input.isKeyDown(KEY_A)) camera->translate(Vector3(-moveDistance, 0.0f, 0.0f), FrameOfReference::Local); if(input.isKeyDown(KEY_D)) camera->translate(Vector3(moveDistance, 0.0f, 0.0f), FrameOfReference::Local); }
void GLSLBase::programBegin() const { glUseProgramObjectARB(program_object); updateShaderParameters(); }