mirror of
https://gitea.wildfiregames.com/0ad/0ad.git
synced 2026-06-20 23:44:08 +00:00
Splits shader effects to reuse in material passes
This commit is contained in:
@@ -1,23 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<effect>
|
||||
<technique>
|
||||
<require context="PASS_REFLECTIONS"/>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<pass shader="terrain_base">
|
||||
<cull mode="FRONT"/>
|
||||
</pass>
|
||||
</technique>
|
||||
|
||||
<technique>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<require context="MODE_WIREFRAME"/>
|
||||
<pass shader="terrain_base">
|
||||
<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="terrain_base">
|
||||
<cull mode="FRONT"/>
|
||||
</pass>
|
||||
</technique>
|
||||
</effect>
|
||||
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<effect>
|
||||
<technique>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<pass shader="terrain_base">
|
||||
<polygon mode="LINE"/>
|
||||
</pass>
|
||||
</technique>
|
||||
</effect>
|
||||
@@ -1,27 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<effect>
|
||||
<technique>
|
||||
<require context="PASS_REFLECTIONS"/>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<pass shader="terrain_blend">
|
||||
<depth mask="false"/>
|
||||
<cull mode="FRONT"/>
|
||||
<blend src="src_alpha" dst="one_minus_src_alpha"/>
|
||||
</pass>
|
||||
</technique>
|
||||
|
||||
<technique>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<require context="MODE_WIREFRAME"/>
|
||||
<pass shader="terrain_blend">
|
||||
<depth mask="false"/>
|
||||
<polygon mode="LINE"/>
|
||||
<blend src="src_alpha" dst="one_minus_src_alpha"/>
|
||||
</pass>
|
||||
</technique>
|
||||
|
||||
<technique>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<effect>
|
||||
<technique>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<pass shader="terrain_blend">
|
||||
<depth mask="false"/>
|
||||
<cull mode="FRONT"/>
|
||||
<blend src="src_alpha" dst="one_minus_src_alpha"/>
|
||||
</pass>
|
||||
</technique>
|
||||
</effect>
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<effect>
|
||||
<technique>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<pass shader="terrain_blend">
|
||||
<depth mask="false"/>
|
||||
<polygon mode="LINE"/>
|
||||
<blend src="src_alpha" dst="one_minus_src_alpha"/>
|
||||
</pass>
|
||||
</technique>
|
||||
</effect>
|
||||
@@ -1,27 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<effect>
|
||||
<technique>
|
||||
<require context="PASS_REFLECTIONS"/>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<pass shader="terrain_decal">
|
||||
<depth mask="false"/>
|
||||
<cull mode="FRONT"/>
|
||||
<blend src="src_alpha" dst="one_minus_src_alpha"/>
|
||||
</pass>
|
||||
</technique>
|
||||
|
||||
<technique>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<require context="MODE_WIREFRAME"/>
|
||||
<pass shader="terrain_decal">
|
||||
<depth mask="false"/>
|
||||
<polygon mode="LINE"/>
|
||||
<blend src="src_alpha" dst="one_minus_src_alpha"/>
|
||||
</pass>
|
||||
</technique>
|
||||
|
||||
<technique>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<effect>
|
||||
<technique>>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<pass shader="terrain_decal">
|
||||
<depth mask="false"/>
|
||||
<cull mode="FRONT"/>
|
||||
<blend src="src_alpha" dst="one_minus_src_alpha"/>
|
||||
</pass>
|
||||
</technique>
|
||||
</effect>
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<effect>
|
||||
<technique>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<pass shader="terrain_decal">
|
||||
<depth mask="false"/>
|
||||
<polygon mode="LINE"/>
|
||||
<blend src="src_alpha" dst="one_minus_src_alpha"/>
|
||||
</pass>
|
||||
</technique>
|
||||
</effect>
|
||||
@@ -1,18 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<effect>
|
||||
<technique>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<require context="MODE_WIREFRAME"/>
|
||||
<pass shader="dummy">
|
||||
<polygon mode="LINE"/>
|
||||
</pass>
|
||||
</technique>
|
||||
|
||||
<technique>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<pass shader="dummy"/>
|
||||
</technique>
|
||||
|
||||
</effect>
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<effect>
|
||||
<technique>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<pass shader="dummy">
|
||||
<polygon mode="LINE"/>
|
||||
</pass>
|
||||
</technique>
|
||||
</effect>
|
||||
@@ -1,52 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<effect>
|
||||
<technique>
|
||||
<require context="PASS_REFLECTIONS"/>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<pass shader="model_common">
|
||||
<cull mode="FRONT"/>
|
||||
</pass>
|
||||
</technique>
|
||||
|
||||
<technique>
|
||||
<require context="MODE_SHADOWCAST || MODE_SILHOUETTEOCCLUDER"/>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<pass shader="model_solid">
|
||||
<color mask_red="FALSE" mask_green="FALSE" mask_blue="FALSE" mask_alpha="FALSE"/>
|
||||
</pass>
|
||||
</technique>
|
||||
|
||||
<technique>
|
||||
<require context="MODE_WIREFRAME"/>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<pass shader="model_common">
|
||||
<polygon mode="LINE"/>
|
||||
</pass>
|
||||
</technique>
|
||||
|
||||
<technique>
|
||||
<require context="MODE_WIREFRAME_SOLID"/>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<pass shader="model_solid_player">
|
||||
<polygon mode="LINE"/>
|
||||
</pass>
|
||||
</technique>
|
||||
|
||||
<technique>
|
||||
<require context="MODE_SILHOUETTEDISPLAY"/>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<pass shader="model_solid_player">
|
||||
<depth func="gequal"/>
|
||||
<stencil test="TRUE" compare="notequal" reference="1" mask_read="4294967295" pass="REPLACE"/>
|
||||
<blend src="constant_alpha" dst="one_minus_constant_alpha" constant="0 0 0 191"/>
|
||||
</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="model_common">
|
||||
<cull mode="FRONT"/>
|
||||
</pass>
|
||||
</technique>
|
||||
</effect>
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<effect>
|
||||
<technique>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<pass shader="model_solid_player">
|
||||
<depth func="gequal"/>
|
||||
<stencil test="TRUE" compare="notequal" reference="1" mask_read="4294967295" pass="REPLACE"/>
|
||||
<blend src="constant_alpha" dst="one_minus_constant_alpha" constant="0 0 0 191"/>
|
||||
</pass>
|
||||
</technique>
|
||||
</effect>
|
||||
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<effect>
|
||||
<technique>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<pass shader="model_solid">
|
||||
<color mask_red="FALSE" mask_green="FALSE" mask_blue="FALSE" mask_alpha="FALSE"/>
|
||||
</pass>
|
||||
</technique>
|
||||
</effect>
|
||||
@@ -1,81 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<effect>
|
||||
|
||||
<technique>
|
||||
<require context="MODE_SHADOWCAST || MODE_SILHOUETTEOCCLUDER"/>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<pass shader="model_solid_tex">
|
||||
<define name="REQUIRE_ALPHA_GEQUAL" value="0.4"/>
|
||||
<!-- Disable face-culling for two-sided models -->
|
||||
<cull mode="NONE"/>
|
||||
<color mask_red="FALSE" mask_green="FALSE" mask_blue="FALSE" mask_alpha="FALSE"/>
|
||||
</pass>
|
||||
</technique>
|
||||
|
||||
<!--
|
||||
CRenderer::RenderSilhouettes skips alpha-blended models for
|
||||
MODE_SILHOUETTEDISPLAY, so do a dummy non-blended behaviour here to
|
||||
make it obviously buggy if CRenderer is changed to render these models.
|
||||
-->
|
||||
<technique>
|
||||
<require context="MODE_SILHOUETTEDISPLAY"/>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<pass shader="model_solid_player">
|
||||
<depth func="gequal"/>
|
||||
<stencil test="TRUE" compare="notequal" reference="1" mask_read="4294967295" pass="REPLACE"/>
|
||||
</pass>
|
||||
</technique>
|
||||
|
||||
<technique>
|
||||
<require context="MODE_WIREFRAME_SOLID"/>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<pass shader="model_solid_player">
|
||||
<polygon mode="LINE"/>
|
||||
</pass>
|
||||
</technique>
|
||||
|
||||
<technique>
|
||||
<require context="MODE_WIREFRAME"/>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<pass shader="model_common">
|
||||
<define name="USE_TRANSPARENT" value="1"/>
|
||||
<blend src="src_alpha" dst="one_minus_src_alpha"/>
|
||||
<depth func="less" mask="false"/>
|
||||
<cull mode="NONE"/>
|
||||
<polygon mode="LINE"/>
|
||||
</pass>
|
||||
</technique>
|
||||
|
||||
<technique>
|
||||
<require context="PASS_REFLECTIONS"/>
|
||||
<require context="ALPHABLEND_PASS_OPAQUE"/>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<pass shader="model_common">
|
||||
<define name="USE_TRANSPARENT" value="1"/>
|
||||
<define name="REQUIRE_ALPHA_GEQUAL" value="0.6375"/>
|
||||
<cull mode="NONE"/>
|
||||
</pass>
|
||||
</technique>
|
||||
|
||||
<technique>
|
||||
<require context="PASS_REFLECTIONS"/>
|
||||
<require context="ALPHABLEND_PASS_BLEND"/>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<pass shader="model_common">
|
||||
<define name="USE_TRANSPARENT" value="1"/>
|
||||
<define name="REQUIRE_ALPHA_GEQUAL" value="0.05"/>
|
||||
<blend src="src_alpha" dst="one_minus_src_alpha"/>
|
||||
<depth func="less" mask="false"/>
|
||||
<cull mode="NONE"/>
|
||||
</pass>
|
||||
</technique>
|
||||
|
||||
<technique>
|
||||
<require context="ALPHABLEND_PASS_OPAQUE"/>
|
||||
<require shaders="glsl"/>
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<effect>
|
||||
<technique>
|
||||
<require context="ALPHABLEND_PASS_OPAQUE"/>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<pass shader="model_common">
|
||||
<define name="USE_TRANSPARENT" value="1"/>
|
||||
<define name="REQUIRE_ALPHA_GEQUAL" value="0.6375"/>
|
||||
<cull mode="NONE"/>
|
||||
</pass>
|
||||
</technique>
|
||||
|
||||
<technique>
|
||||
<require context="ALPHABLEND_PASS_BLEND"/>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<pass shader="model_common">
|
||||
<define name="USE_TRANSPARENT" value="1"/>
|
||||
<define name="REQUIRE_ALPHA_GEQUAL" value="0.05"/>
|
||||
<blend src="src_alpha" dst="one_minus_src_alpha"/>
|
||||
<depth func="less" mask="false"/>
|
||||
<cull mode="NONE"/>
|
||||
</pass>
|
||||
</technique>
|
||||
</effect>
|
||||
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<effect>
|
||||
<!--
|
||||
CRenderer::RenderSilhouettes skips alpha-blended models for
|
||||
MODE_SILHOUETTEDISPLAY, so do a dummy non-blended behaviour here to
|
||||
make it obviously buggy if CRenderer is changed to render these models.
|
||||
-->
|
||||
<technique>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<pass shader="model_solid_player">
|
||||
<depth func="gequal"/>
|
||||
<stencil test="TRUE" compare="notequal" reference="1" mask_read="4294967295" pass="REPLACE"/>
|
||||
</pass>
|
||||
</technique>
|
||||
</effect>
|
||||
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<effect>
|
||||
<technique>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<pass shader="model_solid_tex">
|
||||
<define name="REQUIRE_ALPHA_GEQUAL" value="0.4"/>
|
||||
<!-- Disable face-culling for two-sided models -->
|
||||
<cull mode="NONE"/>
|
||||
<color mask_red="FALSE" mask_green="FALSE" mask_blue="FALSE" mask_alpha="FALSE"/>
|
||||
</pass>
|
||||
</technique>
|
||||
</effect>
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<effect>
|
||||
<technique>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<pass shader="model_common">
|
||||
<define name="USE_TRANSPARENT" value="1"/>
|
||||
<blend src="src_alpha" dst="one_minus_src_alpha"/>
|
||||
<depth func="less" mask="false"/>
|
||||
<cull mode="NONE"/>
|
||||
<polygon mode="LINE"/>
|
||||
</pass>
|
||||
</technique>
|
||||
</effect>
|
||||
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<effect>
|
||||
<technique>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<pass shader="model_solid_player">
|
||||
<polygon mode="LINE"/>
|
||||
</pass>
|
||||
</technique>
|
||||
</effect>
|
||||
@@ -8,7 +8,6 @@
|
||||
<define name="USE_TRANSPARENT" value="1"/>
|
||||
<define name="USE_SPECULAR" value="1"/>
|
||||
<define name="USE_NORMAL_MAP" value="1"/>
|
||||
<define name="USE_INSTANCING" value="1"/>
|
||||
<define name="REQUIRE_ALPHA_GEQUAL" value="0.05"/>
|
||||
<blend src="src_alpha" dst="one_minus_src_alpha"/>
|
||||
<depth func="less" mask="true"/>
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<effect>
|
||||
<technique>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<pass shader="model_water">
|
||||
<define name="USE_TRANSPARENT" value="1"/>
|
||||
<define name="USE_SPECULAR" value="1"/>
|
||||
<define name="USE_NORMAL_MAP" value="1"/>
|
||||
<define name="REQUIRE_ALPHA_GEQUAL" value="0.05"/>
|
||||
<blend src="src_alpha" dst="one_minus_src_alpha"/>
|
||||
<depth func="less" mask="true"/>
|
||||
</pass>
|
||||
</technique>
|
||||
</effect>
|
||||
@@ -6,7 +6,6 @@
|
||||
<sort_by_distance/>
|
||||
<pass shader="model_waterfall">
|
||||
<define name="USE_TRANSPARENT" value="1"/>
|
||||
<define name="USE_INSTANCING" value="1"/>
|
||||
<blend src="src_alpha" dst="one_minus_src_alpha"/>
|
||||
<depth func="lequal" mask="true"/>
|
||||
</pass>
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<effect>
|
||||
<technique>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<pass shader="model_waterfall">
|
||||
<define name="USE_TRANSPARENT" value="1"/>
|
||||
<blend src="src_alpha" dst="one_minus_src_alpha"/>
|
||||
<depth func="lequal" mask="true"/>
|
||||
</pass>
|
||||
</technique>
|
||||
</effect>
|
||||
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<effect>
|
||||
<technique>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<pass shader="model_common">
|
||||
<polygon mode="LINE"/>
|
||||
</pass>
|
||||
</technique>
|
||||
</effect>
|
||||
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<effect>
|
||||
<technique>
|
||||
<require shaders="glsl"/>
|
||||
<require shaders="spirv"/>
|
||||
<pass shader="model_solid_player">
|
||||
<polygon mode="LINE"/>
|
||||
</pass>
|
||||
</technique>
|
||||
</effect>
|
||||
Reference in New Issue
Block a user