Uses sky as a water reflection instead of a fixed color.
Differential Revision: https://code.wildfiregames.com/D3734 This was SVN commit r25114.
This commit is contained in:
parent
0c419b5bab
commit
4e728bf68f
@ -134,11 +134,8 @@ vec4 getReflection(vec3 normal, vec3 eyeVec)
|
||||
|
||||
// Let actual objects be reflected fully.
|
||||
reflMod = max(refTex.a, 0.75);
|
||||
#elif USE_REFRACTION
|
||||
#else
|
||||
vec3 reflColor = textureCube(skyCube, (vec4(eye, 0.0) * skyBoxRot).xyz).rgb;
|
||||
#else // !USE_REFLECTION && !USE_REFRACTION
|
||||
// Simplest case for reflection, return a gradient of blue based on Y component.
|
||||
vec3 reflColor = mix(vec3(0.76, 0.84, 0.92), vec3(0.24, 0.43, 0.71), -eye.y);
|
||||
#endif
|
||||
|
||||
return vec4(reflColor, reflMod);
|
||||
|
@ -534,21 +534,18 @@ bool TerrainRenderer::RenderFancyWater(const CShaderDefines& context, int cullGr
|
||||
|
||||
m->fancyWaterShader->Uniform(str_transform, g_Renderer.GetViewCamera().GetViewProjection());
|
||||
|
||||
//TODO: bind only what's needed
|
||||
if (WaterMgr->m_WaterRefraction || WaterMgr->m_WaterReflection)
|
||||
{
|
||||
m->fancyWaterShader->BindTexture(str_skyCube, g_Renderer.GetSkyManager()->GetSkyCube());
|
||||
// TODO: check that this rotates in the right direction.
|
||||
CMatrix3D skyBoxRotation;
|
||||
skyBoxRotation.SetIdentity();
|
||||
skyBoxRotation.RotateY(M_PI + lightEnv.GetRotation());
|
||||
m->fancyWaterShader->Uniform(str_skyBoxRot, skyBoxRotation);
|
||||
m->fancyWaterShader->BindTexture(str_skyCube, g_Renderer.GetSkyManager()->GetSkyCube());
|
||||
// TODO: check that this rotates in the right direction.
|
||||
CMatrix3D skyBoxRotation;
|
||||
skyBoxRotation.SetIdentity();
|
||||
skyBoxRotation.RotateY(M_PI + lightEnv.GetRotation());
|
||||
m->fancyWaterShader->Uniform(str_skyBoxRot, skyBoxRotation);
|
||||
|
||||
if (WaterMgr->m_WaterRefraction)
|
||||
m->fancyWaterShader->Uniform(str_refractionMatrix, WaterMgr->m_RefractionMatrix);
|
||||
if (WaterMgr->m_WaterReflection)
|
||||
m->fancyWaterShader->Uniform(str_reflectionMatrix, WaterMgr->m_ReflectionMatrix);
|
||||
|
||||
if (WaterMgr->m_WaterRefraction)
|
||||
m->fancyWaterShader->Uniform(str_refractionMatrix, WaterMgr->m_RefractionMatrix);
|
||||
if (WaterMgr->m_WaterReflection)
|
||||
m->fancyWaterShader->Uniform(str_reflectionMatrix, WaterMgr->m_ReflectionMatrix);
|
||||
}
|
||||
m->fancyWaterShader->Uniform(str_ambient, lightEnv.m_AmbientColor);
|
||||
m->fancyWaterShader->Uniform(str_sunDir, lightEnv.GetSunDir());
|
||||
m->fancyWaterShader->Uniform(str_sunColor, lightEnv.m_SunColor);
|
||||
|
Loading…
Reference in New Issue
Block a user