18-ibl fixes. (#824)

* Fixing issue #817.

* Fixing env matrix for IBL.
This commit is contained in:
Dario 2016-06-27 17:54:29 +02:00 committed by Branimir Karadžić
parent 6fdc523d39
commit c9a84bd542
2 changed files with 5 additions and 3 deletions

View File

@ -98,8 +98,8 @@ void main()
vec3 cubeN = normalize(instMul(mtx, vec4(nn, 0.0)).xyz);
cubeR = fixCubeLookup(cubeR, mip, 256.0);
vec3 radiance = u_doDiffuseIbl * envSpec * toLinear(textureCubeLod(s_texCube, cubeR, mip).xyz);
vec3 irradiance = u_doSpecularIbl * envDiff * toLinear(textureCube(s_texCubeIrr, cubeN).xyz);
vec3 radiance = u_doSpecularIbl * envSpec * toLinear(textureCubeLod(s_texCube, cubeR, mip).xyz);
vec3 irradiance = u_doDiffuseIbl * envDiff * toLinear(textureCube(s_texCubeIrr, cubeN).xyz);
vec3 indirect = radiance + irradiance;
// Color.

View File

@ -731,7 +731,7 @@ int _main_(int _argc, char** _argv)
camera.envViewMtx(mtxEnvView);
float mtxEnvRot[16];
bx::mtxRotateY(mtxEnvRot, settings.m_envRotCurr);
bx::mtxMul(uniforms.m_mtx, mtxEnvView, mtxEnvRot);
bx::mtxMul(uniforms.m_mtx, mtxEnvView, mtxEnvRot); // Used for Skybox.
// Submit view 0.
bgfx::setTexture(0, s_texCube, lightProbes[currentLightProbe].m_tex);
@ -742,6 +742,7 @@ int _main_(int _argc, char** _argv)
bgfx::submit(0, programSky);
// Submit view 1.
memcpy(uniforms.m_mtx, mtxEnvRot, 16*sizeof(float)); // Used for IBL.
if (0 == settings.m_meshSelection)
{
// Submit bunny.
@ -749,6 +750,7 @@ int _main_(int _argc, char** _argv)
bx::mtxSRT(mtx, 1.0f, 1.0f, 1.0f, 0.0f, bx::pi, 0.0f, 0.0f, -0.80f, 0.0f);
bgfx::setTexture(0, s_texCube, lightProbes[currentLightProbe].m_tex);
bgfx::setTexture(1, s_texCubeIrr, lightProbes[currentLightProbe].m_texIrr);
uniforms.submit();
meshSubmit(meshBunny, 1, programMesh, mtx);
}
else