Fix a non-fatal GL error, fix me forgetting to commit a file, remove the "3D" waviness setting as it was mostly redundant with HQ.
This was SVN commit r12822.
This commit is contained in:
parent
1e3c885f45
commit
76676b1e38
@ -42,7 +42,6 @@ bpp = 0
|
||||
; System settings:
|
||||
|
||||
waternormals = true
|
||||
waterbinormals = true
|
||||
waterrealdepth = true
|
||||
waterfoam = false
|
||||
watercoastalwaves = false
|
||||
|
@ -300,7 +300,7 @@
|
||||
<object name="settingsDialogPanel"
|
||||
style="StoneDialog"
|
||||
type="image"
|
||||
size="50%-180 50%-225 50%+180 50%+250"
|
||||
size="50%-180 50%-225 50%+180 50%+225"
|
||||
hidden="true"
|
||||
>
|
||||
<object type="text" style="TitleText" size="50%-96 -16 50%+96 16">Settings</object>
|
||||
@ -324,84 +324,77 @@
|
||||
</object>
|
||||
|
||||
<!-- Settings / Water Normals -->
|
||||
<object size="0 60 100%-80 85" type="text" style="RightLabelText" ghost="true">Water - 3D Waviness</object>
|
||||
<object size="0 60 100%-80 85" type="text" style="RightLabelText" ghost="true">Water - HQ Waviness</object>
|
||||
<object name="waterNormalCheckox" size="100%-56 65 100%-30 90" type="checkbox" style="StoneCrossBox" checked="true">
|
||||
<action on="Load">if (renderer.waternormal) this.checked = true; else this.checked = false;</action>
|
||||
<action on="Press">renderer.waternormal = this.checked;</action>
|
||||
</object>
|
||||
|
||||
<!-- Settings / Water Binormals -->
|
||||
<object size="0 85 100%-80 110" type="text" style="RightLabelText" ghost="true">Water - HQ Waviness</object>
|
||||
<object name="waterBinormalCheckox" size="100%-56 90 100%-30 115" type="checkbox" style="StoneCrossBox" checked="true">
|
||||
<action on="Load">if (renderer.waterbinormal) this.checked = true; else this.checked = false;</action>
|
||||
<action on="Press">renderer.waterbinormal = this.checked;</action>
|
||||
</object>
|
||||
|
||||
<!-- Settings / Real Depth -->
|
||||
<object size="0 110 100%-80 135" type="text" style="RightLabelText" ghost="true">Water - Use Actual Depth</object>
|
||||
<object name="waterRealDepthCheckbox" size="100%-56 115 100%-30 140" type="checkbox" style="StoneCrossBox" checked="true">
|
||||
<object size="0 85 100%-80 110" type="text" style="RightLabelText" ghost="true">Water - Use Actual Depth</object>
|
||||
<object name="waterRealDepthCheckbox" size="100%-56 90 100%-30 115" type="checkbox" style="StoneCrossBox" checked="true">
|
||||
<action on="Load">if (renderer.waterrealdepth) this.checked = true; else this.checked = false;</action>
|
||||
<action on="Press">renderer.waterrealdepth = this.checked; </action>
|
||||
</object>
|
||||
|
||||
<!-- Settings / Reflection -->
|
||||
<object size="0 135 100%-80 160" type="text" style="RightLabelText" ghost="true">Water - Enable Reflections</object>
|
||||
<object name="waterReflectionCheckbox" size="100%-56 140 100%-30 165" type="checkbox" style="StoneCrossBox" checked="true">
|
||||
<object size="0 110 100%-80 135" type="text" style="RightLabelText" ghost="true">Water - Enable Reflections</object>
|
||||
<object name="waterReflectionCheckbox" size="100%-56 115 100%-30 140" type="checkbox" style="StoneCrossBox" checked="true">
|
||||
<action on="Load">if (renderer.waterreflection) this.checked = true; else this.checked = false;</action>
|
||||
<action on="Press">renderer.waterreflection = this.checked; </action>
|
||||
</object>
|
||||
|
||||
<!-- Settings / Refraction -->
|
||||
<object size="0 160 100%-80 185" type="text" style="RightLabelText" ghost="true">Water - Enable Refraction</object>
|
||||
<object name="waterRefractionCheckbox" size="100%-56 165 100%-30 190" type="checkbox" style="StoneCrossBox" checked="true">
|
||||
<object size="0 135 100%-80 160" type="text" style="RightLabelText" ghost="true">Water - Enable Refraction</object>
|
||||
<object name="waterRefractionCheckbox" size="100%-56 140 100%-30 165" type="checkbox" style="StoneCrossBox" checked="true">
|
||||
<action on="Load">if (renderer.waterrefraction) this.checked = true; else this.checked = false;</action>
|
||||
<action on="Press">renderer.waterrefraction = this.checked; </action>
|
||||
</object>
|
||||
|
||||
<!-- Settings / Foam -->
|
||||
<object size="0 185 100%-80 210" type="text" style="RightLabelText" ghost="true">Water - Enable Shore Foam</object>
|
||||
<object name="waterFoamCheckbox" size="100%-56 190 100%-30 215" type="checkbox" style="StoneCrossBox" checked="true">
|
||||
<object size="0 160 100%-80 185" type="text" style="RightLabelText" ghost="true">Water - Enable Shore Foam</object>
|
||||
<object name="waterFoamCheckbox" size="100%-56 165 100%-30 190" type="checkbox" style="StoneCrossBox" checked="true">
|
||||
<action on="Load">if (renderer.waterfoam) this.checked = true; else this.checked = false;</action>
|
||||
<action on="Press">renderer.waterfoam = this.checked; </action>
|
||||
</object>
|
||||
|
||||
<!-- Settings / Waves -->
|
||||
<object size="0 210 100%-80 235" type="text" style="RightLabelText" ghost="true">Water - Enable Shore Waves</object>
|
||||
<object name="waterCoastalWavesCheckbox" size="100%-56 215 100%-30 240" type="checkbox" style="StoneCrossBox" checked="true">
|
||||
<object size="0 185 100%-80 210" type="text" style="RightLabelText" ghost="true">Water - Enable Shore Waves</object>
|
||||
<object name="waterCoastalWavesCheckbox" size="100%-56 190 100%-30 215" type="checkbox" style="StoneCrossBox" checked="true">
|
||||
<action on="Load">if (renderer.watercoastalwaves) this.checked = true; else this.checked = false;</action>
|
||||
<action on="Press">renderer.watercoastalwaves = this.checked; </action>
|
||||
</object>
|
||||
|
||||
<!-- Settings / Shadows -->
|
||||
<object size="0 235 100%-80 260" type="text" style="RightLabelText" ghost="true">Water - Use Surface Shadows</object>
|
||||
<object name="waterShadowsCheckbox" size="100%-56 240 100%-30 265" type="checkbox" style="StoneCrossBox" checked="true">
|
||||
<object size="0 210 100%-80 235" type="text" style="RightLabelText" ghost="true">Water - Use Surface Shadows</object>
|
||||
<object name="waterShadowsCheckbox" size="100%-56 215 100%-30 240" type="checkbox" style="StoneCrossBox" checked="true">
|
||||
<action on="Load">if (renderer.watershadow) this.checked = true; else this.checked = false;</action>
|
||||
<action on="Press">renderer.watershadow = this.checked; </action>
|
||||
</object>
|
||||
|
||||
<!-- Settings / Particles -->
|
||||
<object size="0 260 100%-80 285" type="text" style="RightLabelText" ghost="true">Enable Particles</object>
|
||||
<object name="particlesCheckbox" size="100%-56 265 100%-30 290" type="checkbox" style="StoneCrossBox" checked="true">
|
||||
<object size="0 235 100%-80 260" type="text" style="RightLabelText" ghost="true">Enable Particles</object>
|
||||
<object name="particlesCheckbox" size="100%-56 240 100%-30 265" type="checkbox" style="StoneCrossBox" checked="true">
|
||||
<action on="Load">if (renderer.particles) this.checked = true; else this.checked = false;</action>
|
||||
<action on="Press">renderer.particles = this.checked;</action>
|
||||
</object>
|
||||
|
||||
<!-- Settings / Unit Silhouettes -->
|
||||
<object size="0 285 100%-80 310" type="text" style="RightLabelText" ghost="true">Enable Unit Silhouettes</object>
|
||||
<object name="silhouettesCheckbox" size="100%-56 290 100%-30 315" type="checkbox" style="StoneCrossBox" checked="true">
|
||||
<object size="0 260 100%-80 285" type="text" style="RightLabelText" ghost="true">Enable Unit Silhouettes</object>
|
||||
<object name="silhouettesCheckbox" size="100%-56 265 100%-30 290" type="checkbox" style="StoneCrossBox" checked="true">
|
||||
<action on="Load">if (renderer.silhouettes) this.checked = true; else this.checked = false;</action>
|
||||
<action on="Press">renderer.silhouettes = this.checked;</action>
|
||||
</object>
|
||||
|
||||
<!-- Settings / Music-->
|
||||
<object size="0 310 100%-80 335" type="text" style="RightLabelText" ghost="true">Enable Music</object>
|
||||
<object size="100%-56 315 100%-30 340" type="checkbox" style="StoneCrossBox" checked="true">
|
||||
<object size="0 285 100%-80 310" type="text" style="RightLabelText" ghost="true">Enable Music</object>
|
||||
<object size="100%-56 290 100%-30 315" type="checkbox" style="StoneCrossBox" checked="true">
|
||||
<action on="Press">if (this.checked) global.music.start(); else global.music.stop();</action>
|
||||
</object>
|
||||
|
||||
<!-- Settings / Dev Overlay -->
|
||||
<object size="0 335 100%-80 360" type="text" style="RightLabelText" ghost="true">Developer Overlay</object>
|
||||
<object size="100%-56 340 100%-30 365" type="checkbox" style="StoneCrossBox" checked="false">
|
||||
<object size="0 310 100%-80 335" type="text" style="RightLabelText" ghost="true">Developer Overlay</object>
|
||||
<object size="100%-56 315 100%-30 340" type="checkbox" style="StoneCrossBox" checked="false">
|
||||
<action on="Press">toggleDeveloperOverlay();</action>
|
||||
</object>
|
||||
</object>
|
||||
|
@ -24,10 +24,8 @@ varying vec3 worldPos;
|
||||
varying float waterDepth;
|
||||
|
||||
uniform sampler2D normalMap;
|
||||
uniform sampler2D normalMap2;
|
||||
|
||||
#if USE_BINORMALS
|
||||
uniform sampler2D normalMap2;
|
||||
#endif
|
||||
#if USE_REFLECTION
|
||||
uniform sampler2D reflectionMap;
|
||||
#endif
|
||||
@ -118,10 +116,8 @@ void main()
|
||||
vec3 ww = texture2D(normalMap, (gl_TexCoord[0].st) * mix(2.0,0.8,waviness/10.0) +gl_TexCoord[0].zw).xzy;
|
||||
|
||||
#if USE_NORMALS
|
||||
#if USE_BINORMALS
|
||||
vec3 ww2 = texture2D(normalMap2, (gl_TexCoord[0].st) * mix(2.0,0.8,waviness/10.0) +gl_TexCoord[0].zw).xzy;
|
||||
ww = mix(ww, ww2, mod(time * 60.0, 8.0) / 8.0);
|
||||
#endif
|
||||
vec3 ww2 = texture2D(normalMap2, (gl_TexCoord[0].st) * mix(2.0,0.8,waviness/10.0) +gl_TexCoord[0].zw).xzy;
|
||||
ww = mix(ww, ww2, mod(time * 60.0, 8.0) / 8.0);
|
||||
|
||||
#if USE_WAVES
|
||||
vec3 waves = texture2D(waveTex, gl_FragCoord.xy/screenSize).rbg - vec3(0.5,0.5,0.5);
|
||||
|
@ -40,7 +40,6 @@ bool g_Shadows = false;
|
||||
bool g_ShadowPCF = false;
|
||||
|
||||
bool g_WaterNormal = false;
|
||||
bool g_WaterBinormal = false;
|
||||
bool g_WaterRealDepth = false;
|
||||
bool g_WaterFoam = false;
|
||||
bool g_WaterCoastalWaves = false;
|
||||
@ -91,9 +90,6 @@ static void LoadGlobals()
|
||||
CFG_GET_USER_VAL("shadowpcf", Bool, g_ShadowPCF);
|
||||
|
||||
CFG_GET_USER_VAL("waternormals",Bool, g_WaterNormal);
|
||||
CFG_GET_USER_VAL("waterbinormals",Bool, g_WaterBinormal);
|
||||
if (g_WaterBinormal && !g_WaterNormal)
|
||||
g_WaterBinormal = false;
|
||||
CFG_GET_USER_VAL("waterrealdepth",Bool, g_WaterRealDepth);
|
||||
CFG_GET_USER_VAL("waterfoam",Bool, g_WaterFoam);
|
||||
CFG_GET_USER_VAL("watercoastalwaves",Bool, g_WaterCoastalWaves);
|
||||
|
@ -52,8 +52,6 @@ extern bool g_Shadows;
|
||||
|
||||
// Use real normals for ocean-wave rendering, instead of applying them as a flat texture.
|
||||
extern bool g_WaterNormal;
|
||||
// Use interpolated normals, smoother. Requires g_WaterNormal.
|
||||
extern bool g_WaterBinormal;
|
||||
// Use real depth for water rendering.
|
||||
extern bool g_WaterRealDepth;
|
||||
// Show foam near the shores depending on waviness.
|
||||
|
@ -576,7 +576,6 @@ static void InitRenderer()
|
||||
g_Renderer.SetOptionBool(CRenderer::OPT_SHADOWS, g_Shadows);
|
||||
|
||||
g_Renderer.SetOptionBool(CRenderer::OPT_WATERNORMAL, g_WaterNormal);
|
||||
g_Renderer.SetOptionBool(CRenderer::OPT_WATERBINORMAL, g_WaterBinormal);
|
||||
g_Renderer.SetOptionBool(CRenderer::OPT_WATERREALDEPTH, g_WaterRealDepth);
|
||||
g_Renderer.SetOptionBool(CRenderer::OPT_WATERFOAM, g_WaterFoam);
|
||||
g_Renderer.SetOptionBool(CRenderer::OPT_WATERCOASTALWAVES, g_WaterCoastalWaves);
|
||||
|
@ -124,13 +124,7 @@ void SetDisableShadowPCF(void* UNUSED(cbdata), bool disabled)
|
||||
void SetDisableFancyWater(void* UNUSED(cbdata), bool disabled)
|
||||
{
|
||||
if (!IsOverridden("waternormals"))
|
||||
{
|
||||
g_WaterNormal = !disabled;
|
||||
if (!g_WaterNormal)
|
||||
g_WaterBinormal = false;
|
||||
}
|
||||
if (!IsOverridden("waterbinormals"))
|
||||
g_WaterBinormal = !disabled;
|
||||
if (!IsOverridden("waterrealdepth"))
|
||||
g_WaterRealDepth = !disabled;
|
||||
if (!IsOverridden("waterfoam"))
|
||||
|
@ -469,7 +469,6 @@ CRenderer::CRenderer()
|
||||
AddLocalProperty(L"particles", &m_Options.m_Particles, false);
|
||||
|
||||
AddLocalProperty(L"waternormal", &m_Options.m_WaterNormal, false);
|
||||
AddLocalProperty(L"waterbinormal", &m_Options.m_WaterBinormal, false);
|
||||
AddLocalProperty(L"waterrealdepth", &m_Options.m_WaterRealDepth, false);
|
||||
AddLocalProperty(L"waterreflection", &m_Options.m_WaterReflection, false);
|
||||
AddLocalProperty(L"waterrefraction", &m_Options.m_WaterRefraction, false);
|
||||
@ -691,9 +690,6 @@ void CRenderer::SetOptionBool(enum Option opt,bool value)
|
||||
case OPT_WATERNORMAL:
|
||||
m_Options.m_WaterNormal = value;
|
||||
break;
|
||||
case OPT_WATERBINORMAL:
|
||||
m_Options.m_WaterBinormal = value;
|
||||
break;
|
||||
case OPT_WATERREALDEPTH:
|
||||
m_Options.m_WaterRealDepth = value;
|
||||
break;
|
||||
@ -742,8 +738,6 @@ bool CRenderer::GetOptionBool(enum Option opt) const
|
||||
return m_Options.m_Shadows;
|
||||
case OPT_WATERNORMAL:
|
||||
return m_Options.m_WaterNormal;
|
||||
case OPT_WATERBINORMAL:
|
||||
return m_Options.m_WaterBinormal;
|
||||
case OPT_WATERREALDEPTH:
|
||||
return m_Options.m_WaterRealDepth;
|
||||
case OPT_WATERFOAM:
|
||||
@ -1487,10 +1481,27 @@ void CRenderer::RenderSubmissions()
|
||||
|
||||
PROFILE3_GPU("water scissor");
|
||||
SScreenRect dirty;
|
||||
dirty.x1 = std::min(reflectionScissor.x1, refractionScissor.x1);
|
||||
dirty.y1 = std::min(reflectionScissor.y1, refractionScissor.y1);
|
||||
dirty.x2 = std::max(reflectionScissor.x2, refractionScissor.x2);
|
||||
dirty.y2 = std::max(reflectionScissor.y2, refractionScissor.y2);
|
||||
if (m_Options.m_WaterRefraction && m_Options.m_WaterReflection)
|
||||
{
|
||||
dirty.x1 = reflectionScissor.x1;
|
||||
dirty.y1 = reflectionScissor.y1;
|
||||
dirty.x2 = reflectionScissor.x2;
|
||||
dirty.y2 = reflectionScissor.y2;
|
||||
}
|
||||
else if (m_Options.m_WaterRefraction)
|
||||
{
|
||||
dirty.x1 = refractionScissor.x1;
|
||||
dirty.y1 = refractionScissor.y1;
|
||||
dirty.x2 = refractionScissor.x2;
|
||||
dirty.y2 = refractionScissor.y2;
|
||||
}
|
||||
else
|
||||
{
|
||||
dirty.x1 = reflectionScissor.x1;
|
||||
dirty.y1 = reflectionScissor.y1;
|
||||
dirty.x2 = reflectionScissor.x2;
|
||||
dirty.y2 = reflectionScissor.y2;
|
||||
}
|
||||
if (dirty.x1 < dirty.x2 && dirty.y1 < dirty.y2)
|
||||
{
|
||||
glEnable(GL_SCISSOR_TEST);
|
||||
|
@ -81,7 +81,6 @@ public:
|
||||
OPT_NOVBO,
|
||||
OPT_SHADOWS,
|
||||
OPT_WATERNORMAL,
|
||||
OPT_WATERBINORMAL,
|
||||
OPT_WATERREALDEPTH,
|
||||
OPT_WATERFOAM,
|
||||
OPT_WATERCOASTALWAVES,
|
||||
@ -132,7 +131,6 @@ public:
|
||||
bool m_Shadows;
|
||||
|
||||
bool m_WaterNormal;
|
||||
bool m_WaterBinormal;
|
||||
bool m_WaterRealDepth;
|
||||
bool m_WaterFoam;
|
||||
bool m_WaterCoastalWaves;
|
||||
|
@ -659,8 +659,6 @@ bool TerrainRenderer::RenderFancyWater(const CShaderDefines& context, ShadowMap*
|
||||
{
|
||||
if(WaterMgr->m_WaterNormal)
|
||||
defines.Add("USE_NORMALS","1");
|
||||
if(WaterMgr->m_WaterBinormal)
|
||||
defines.Add("USE_BINORMALS","1");
|
||||
if(WaterMgr->m_WaterRealDepth)
|
||||
defines.Add("USE_REAL_DEPTH","1");
|
||||
if(WaterMgr->m_WaterFoam)
|
||||
@ -823,8 +821,8 @@ bool TerrainRenderer::RenderFancyWater(const CShaderDefines& context, ShadowMap*
|
||||
CVector3D camPos = camera.m_Orientation.GetTranslation();
|
||||
|
||||
m->fancyWaterShader->BindTexture("normalMap", WaterMgr->m_NormalMap[curTex]);
|
||||
if (WaterMgr->m_WaterBinormal)
|
||||
m->fancyWaterShader->BindTexture("normalMap2", WaterMgr->m_NormalMap[nexTex]);
|
||||
m->fancyWaterShader->BindTexture("normalMap2", WaterMgr->m_NormalMap[nexTex]);
|
||||
|
||||
if (WaterMgr->m_WaterFoam || WaterMgr->m_WaterCoastalWaves)
|
||||
{
|
||||
m->fancyWaterShader->BindTexture("Foam", WaterMgr->m_Foam);
|
||||
|
@ -79,7 +79,6 @@ WaterManager::WaterManager()
|
||||
m_OtherInfoTex = NULL;
|
||||
|
||||
m_WaterNormal = false;
|
||||
m_WaterBinormal = false;
|
||||
m_WaterRealDepth = false;
|
||||
m_WaterFoam = false;
|
||||
m_WaterCoastalWaves = false;
|
||||
@ -462,7 +461,7 @@ void WaterManager::CreateSuperfancyInfo()
|
||||
// okaaaaaay. Got a square. Check for proximity.
|
||||
for (unsigned long i = 0; i < waveSquares.size(); i++)
|
||||
{
|
||||
if ( CVector2D(waveSquares[i]-squarePos).LengthSquared() < 100) {
|
||||
if ( CVector2D(waveSquares[i]-squarePos).LengthSquared() < 80) {
|
||||
enter = 0;
|
||||
break;
|
||||
}
|
||||
@ -551,10 +550,6 @@ void WaterManager::updateQuality()
|
||||
m_WaterNormal = g_Renderer.GetOptionBool(CRenderer::OPT_WATERNORMAL);
|
||||
m_NeedsReloading = true;
|
||||
}
|
||||
if (g_Renderer.GetOptionBool(CRenderer::OPT_WATERBINORMAL) != m_WaterBinormal) {
|
||||
m_WaterBinormal = g_Renderer.GetOptionBool(CRenderer::OPT_WATERBINORMAL);
|
||||
m_NeedsReloading = true;
|
||||
}
|
||||
if (g_Renderer.GetOptionBool(CRenderer::OPT_WATERREALDEPTH) != m_WaterRealDepth) {
|
||||
m_WaterRealDepth = g_Renderer.GetOptionBool(CRenderer::OPT_WATERREALDEPTH);
|
||||
m_NeedsReloading = true;
|
||||
@ -587,8 +582,6 @@ bool WaterManager::WillRenderFancyWater()
|
||||
{
|
||||
if (!g_Renderer.GetCapabilities().m_FragmentShader)
|
||||
return false;
|
||||
if (g_Renderer.GetRenderPath() == 1)
|
||||
return false;
|
||||
if (!m_RenderWater)
|
||||
return false;
|
||||
return true;
|
||||
|
@ -68,7 +68,6 @@ public:
|
||||
|
||||
// Those variables register the current quality level. If there is a change, I have to recompile the shader.
|
||||
bool m_WaterNormal;
|
||||
bool m_WaterBinormal;
|
||||
bool m_WaterRealDepth;
|
||||
bool m_WaterFoam;
|
||||
bool m_WaterCoastalWaves;
|
||||
|
@ -33,6 +33,7 @@ public:
|
||||
{
|
||||
componentManager.SubscribeToMessageType(MT_Interpolate);
|
||||
componentManager.SubscribeToMessageType(MT_RenderSubmit);
|
||||
componentManager.SubscribeToMessageType(MT_TerrainChanged);
|
||||
}
|
||||
|
||||
DEFAULT_COMPONENT_ALLOCATOR(WaterManager)
|
||||
@ -85,6 +86,17 @@ public:
|
||||
g_Renderer.GetWaterManager()->m_WaterHeight = m_WaterHeight.ToFloat();
|
||||
break;
|
||||
}
|
||||
case MT_TerrainChanged:
|
||||
{
|
||||
// Tell the renderer to redraw the map.
|
||||
if (CRenderer::IsInitialised())
|
||||
{
|
||||
g_Renderer.GetWaterManager()->m_NeedsFullReloading = true;
|
||||
g_Renderer.GetWaterManager()->m_NeedsReloading = true;
|
||||
g_Renderer.GetWaterManager()->m_TerrainChangeThisTurn = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user