mirror of
https://gitea.wildfiregames.com/0ad/0ad
synced 2026-06-16 05:13:58 -07:00
Adds wireframe techniques for particle and terrain
This commit is contained in:
parent
75bd640bd8
commit
9aee507e28
7 changed files with 30 additions and 45 deletions
|
|
@ -1,14 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<effect>
|
||||
<technique>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<require context="MODE_WIREFRAME"/>
|
||||
<pass shader="particle_solid">
|
||||
<polygon mode="LINE"/>
|
||||
</pass>
|
||||
</technique>
|
||||
|
||||
<technique>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<effect>
|
||||
<technique>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<pass shader="particle_solid">
|
||||
<polygon mode="LINE"/>
|
||||
</pass>
|
||||
</technique>
|
||||
</effect>
|
||||
|
|
@ -1,20 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<effect>
|
||||
<technique>
|
||||
<require context="PASS_SHADOWS || MODE_SILHOUETTEOCCLUDER"/>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<pass shader="dummy">
|
||||
<!--
|
||||
To prevent units displaying silhouettes when parts of their model
|
||||
protrude into the ground, only occlude with the back faces of the
|
||||
terrain (so silhouettes will still display when behind hills).
|
||||
-->
|
||||
<cull mode="FRONT"/>
|
||||
<color mask_red="FALSE" mask_green="FALSE" mask_blue="FALSE" mask_alpha="FALSE"/>
|
||||
</pass>
|
||||
</technique>
|
||||
|
||||
<technique>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
|
|
|
|||
|
|
@ -1,15 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<effect>
|
||||
<technique>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<require context="MODE_WIREFRAME"/>
|
||||
<pass shader="water_simple">
|
||||
<depth test="TRUE"/>
|
||||
<polygon mode="LINE"/>
|
||||
</pass>
|
||||
</technique>
|
||||
|
||||
<technique>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<effect>
|
||||
<technique>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<pass shader="water_simple">
|
||||
<depth test="TRUE"/>
|
||||
<polygon mode="LINE"/>
|
||||
</pass>
|
||||
</technique>
|
||||
</effect>
|
||||
|
|
@ -112,9 +112,7 @@ void ParticleRenderer::PrepareForRendering(const CShaderDefines& context)
|
|||
m->techSubtract = g_Renderer.GetShaderManager().LoadEffect(str_particle_subtract, context);
|
||||
m->techOverlay = g_Renderer.GetShaderManager().LoadEffect(str_particle_overlay, context);
|
||||
m->techMultiply = g_Renderer.GetShaderManager().LoadEffect(str_particle_multiply, context);
|
||||
CShaderDefines contextWithWireframe = context;
|
||||
contextWithWireframe.Add(str_MODE_WIREFRAME, str_1);
|
||||
m->techWireframe = g_Renderer.GetShaderManager().LoadEffect(str_particle_solid, contextWithWireframe);
|
||||
m->techWireframe = g_Renderer.GetShaderManager().LoadEffect(str_particle_wireframe, {});
|
||||
}
|
||||
|
||||
++m->frameNumber;
|
||||
|
|
|
|||
|
|
@ -672,17 +672,17 @@ void TerrainRenderer::RenderSimpleWater(
|
|||
PROFILE3("simple water");
|
||||
GPU_SCOPED_LABEL(deviceCommandContext, "Render Simple Water");
|
||||
|
||||
const WaterManager& waterManager = g_Renderer.GetSceneRenderer().GetWaterManager();
|
||||
CLOSTexture& losTexture = g_Renderer.GetSceneRenderer().GetScene().GetLOSTexture();
|
||||
CSceneRenderer& sceneRenderer{g_Renderer.GetSceneRenderer()};
|
||||
const WaterManager& waterManager{sceneRenderer.GetWaterManager()};
|
||||
CLOSTexture& losTexture{sceneRenderer.GetScene().GetLOSTexture()};
|
||||
|
||||
const double time = waterManager.m_WaterTexTimer;
|
||||
|
||||
CShaderDefines context;
|
||||
if (g_Renderer.GetSceneRenderer().GetWaterRenderMode() == WIREFRAME)
|
||||
context.Add(str_MODE_WIREFRAME, str_1);
|
||||
|
||||
CShaderTechniquePtr waterSimpleTech =
|
||||
g_Renderer.GetShaderManager().LoadEffect(str_water_simple, context);
|
||||
CShaderTechniquePtr waterSimpleTech{
|
||||
g_Renderer.GetShaderManager().LoadEffect(
|
||||
sceneRenderer.GetWaterRenderMode() == WIREFRAME
|
||||
? str_water_simple_wireframe
|
||||
: str_water_simple, {})};
|
||||
deviceCommandContext->SetGraphicsPipelineState(
|
||||
waterSimpleTech->GetGraphicsPipelineState());
|
||||
deviceCommandContext->BeginPass();
|
||||
|
|
|
|||
Loading…
Reference in a new issue