示例#1
0
文件: SSAODemo.cpp 项目: A-K/Huurre3D
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);
}
示例#2
0
文件: GlslBase.cpp 项目: spinos/aphid
void GLSLBase::programBegin() const
{
	glUseProgramObjectARB(program_object);
	updateShaderParameters();
}