1
0
Fork 0

Attempt to fix remaining transparency issues

All transparency-related config has been reverted back to how it was in
2020.3 for maximum compatibility. This is not ideal for HDR but we will
figure something out.

In HDR, transparent AC objects must be marked with model-transparent or
model-combined-transparent. glTF objects are automatically assigned the
correct Effects.
This commit is contained in:
Fernando García Liñán 2023-05-03 11:39:59 +02:00
parent 1e66c4104a
commit fcf46b39d8
3 changed files with 129 additions and 70 deletions

View file

@ -1,9 +1,126 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Legacy Effect for Project Rembrandt.
It's kept for backwards compatibility and should not be used on new projects.
-->
<PropertyList>
<name>Effects/model-combined-transparent</name>
<inherits-from>Effects/model-transparent</inherits-from>
</PropertyList>
<?xml version="1.0" encoding="utf-8"?>
<!--
Legacy Effect for Project Rembrandt.
It's kept for backwards compatibility and should not be used on new projects.
-->
<PropertyList>
<name>Effects/model-combined-transparent</name>
<inherits-from>Effects/model-combined</inherits-from>
<technique n="107">
<scheme>hdr-geometry</scheme>
</technique>
<technique n="117">
<scheme>hdr-shadow</scheme>
</technique>
<technique n="127">
<scheme>hdr-forward</scheme>
<pass>
<!-- Reverse floating point depth buffer -->
<depth>
<function>gequal</function>
<near>1.0</near>
<far>0.0</far>
<write-mask>false</write-mask>
</depth>
<texture-unit>
<unit>0</unit>
<type><use>texture[0]/type</use></type>
<image><use>texture[0]/image</use></image>
<filter><use>texture[0]/filter</use></filter>
<mag-filter><use>texture[0]/mag-filter</use></mag-filter>
<wrap-s><use>texture[0]/wrap-s</use></wrap-s>
<wrap-t><use>texture[0]/wrap-t</use></wrap-t>
</texture-unit>
<texture-unit>
<unit>8</unit>
<image><use>texture[8]/image</use></image>
<type><use>texture[8]/type</use></type>
<filter><use>texture[8]/filter</use></filter>
<mag-filter><use>texture[8]/mag-filter</use></mag-filter>
<wrap-s><use>texture[8]/wrap-s</use></wrap-s>
<wrap-t><use>texture[8]/wrap-t</use></wrap-t>
<internal-format><use>texture[8]/internal-format</use></internal-format>
</texture-unit>
<blend>1</blend>
<rendering-hint>transparent</rendering-hint>
<cull-face><use>cull-face</use></cull-face>
<program>
<vertex-shader>Shaders/HDR/model_transparent.vert</vertex-shader>
<vertex-shader>Shaders/HDR/aerial_perspective.glsl</vertex-shader>
<fragment-shader>Shaders/HDR/model_transparent.frag</fragment-shader>
<fragment-shader>Shaders/HDR/color.glsl</fragment-shader>
<fragment-shader>Shaders/HDR/math.glsl</fragment-shader>
<fragment-shader>Shaders/HDR/shading_transparent.glsl</fragment-shader>
<fragment-shader>Shaders/HDR/surface.glsl</fragment-shader>
<fragment-shader>Shaders/HDR/ibl.glsl</fragment-shader>
<fragment-shader>Shaders/HDR/shadows.glsl</fragment-shader>
<fragment-shader>Shaders/HDR/sun.glsl</fragment-shader>
<fragment-shader>Shaders/HDR/aerial_perspective.glsl</fragment-shader>
<fragment-shader>Shaders/HDR/atmos_spectral.glsl</fragment-shader>
<fragment-shader>Shaders/HDR/clustered.glsl</fragment-shader>
<fragment-shader>Shaders/HDR/exposure.glsl</fragment-shader>
</program>
<uniform>
<name>color_tex</name>
<type>sampler-2d</type>
<value type="int">0</value>
</uniform>
<uniform>
<name>color_mode</name>
<type>int</type>
<value><use>material/color-mode</use></value>
</uniform>
<uniform>
<name>material_diffuse</name>
<type>float-vec4</type>
<value><use>material/diffuse</use></value>
</uniform>
<!-- shadows.glsl -->
<uniform>
<name>shadow_tex</name>
<type>sampler-2d-shadow</type>
<value type="int">10</value>
</uniform>
<uniform>
<name>debug_shadow_cascades</name>
<type>bool</type>
<value><use>show-shadow-cascades</use></value>
</uniform>
<!-- ibl.glsl -->
<uniform>
<name>dfg_tex</name>
<type>sampler-2d</type>
<value type="int">8</value>
</uniform>
<uniform>
<name>prefiltered_envmap_tex</name>
<type>sampler-cube</type>
<value type="int">9</value>
</uniform>
<!-- aerial_perspective.glsl -->
<uniform>
<name>aerial_perspective_tex</name>
<type>sampler-2d</type>
<value type="int">11</value>
</uniform>
<!-- sun.glsl -->
<uniform>
<name>transmittance_tex</name>
<type>sampler-2d</type>
<value type="int">12</value>
</uniform>
<!-- exposure.glsl -->
<uniform>
<name>lum_tex</name>
<type>sampler-2d</type>
<value type="int">14</value>
</uniform>
<uniform>
<name>exposure_compensation</name>
<type>float</type>
<value><use>exposure-compensation</use></value>
</uniform>
</pass>
</technique>
</PropertyList>

View file

@ -12,11 +12,6 @@
<!-- DIFFUSE -->
</material>
<material-id>0</material-id>
<render-bin>
<bin-number>1</bin-number>
<bin-name>RenderBin</bin-name>
</render-bin>
<write-depth type="bool">true</write-depth>
<!-- BEGIN fog include -->
<visibility><use>/environment/ground-visibility-m</use></visibility>
<avisibility><use>/environment/visibility-m</use></avisibility>
@ -92,9 +87,6 @@
</predicate>
<pass>
<lighting>true</lighting>
<depth>
<write-mask><use>write-depth</use></write-mask>
</depth>
<material>
<active><use>material/active</use></active>
<ambient><use>material/ambient</use></ambient>
@ -111,10 +103,7 @@
</blend>
<shade-model><use>shade-model</use></shade-model>
<cull-face><use>cull-face</use></cull-face>
<render-bin>
<bin-number><use>render-bin/bin-number</use></bin-number>
<bin-name><use>render-bin/bin-name</use></bin-name>
</render-bin>
<rendering-hint><use>rendering-hint</use></rendering-hint>
<texture-unit>
<!-- The texture unit is always active because the shaders expect
that. -->
@ -415,9 +404,6 @@
</predicate>
<pass>
<lighting>true</lighting>
<depth>
<write-mask><use>write-depth</use></write-mask>
</depth>
<material>
<active>
<use>material/active</use>
@ -458,10 +444,7 @@
<cull-face>
<use>cull-face</use>
</cull-face>
<render-bin>
<bin-number><use>render-bin/bin-number</use></bin-number>
<bin-name><use>render-bin/bin-name</use></bin-name>
</render-bin>
<rendering-hint><use>rendering-hint</use></rendering-hint>
<texture-unit>
<!-- The texture unit is always active because the shaders expect
that. -->
@ -626,10 +609,7 @@
<cull-face>
<use>cull-face</use>
</cull-face>
<render-bin>
<bin-number><use>render-bin/bin-number</use></bin-number>
<bin-name><use>render-bin/bin-name</use></bin-name>
</render-bin>
<rendering-hint><use>rendering-hint</use></rendering-hint>
<texture-unit>
<active>
<use>texture[0]/active</use>

View file

@ -4,12 +4,6 @@
<inherits-from>Effects/model-default</inherits-from>
<parameters>
<render-bin>
<bin-number>111</bin-number>
<bin-name>DepthSortedBin</bin-name>
</render-bin>
<write-depth type="bool">false</write-depth>
<rendering-hint>transparent</rendering-hint>
<!-- ibl.glsl -->
<texture n="8">
<image>Textures/PBR/dfg_lut.dds</image>
@ -26,38 +20,6 @@
</exposure-compensation>
</parameters>
<!-- Place objects in render bin 111 (frontmost transparent objects).
Remark: <render-bin> parameter is not set in Effects/model-default
to allow adjusting the bin based on material alpha. -->
<technique n="5">
<!-- ALS -->
<pass>
<render-bin>
<bin-number><use>render-bin/bin-number</use></bin-number>
<bin-name><use>render-bin/bin-name</use></bin-name>
</render-bin>
</pass>
</technique>
<technique n="11">
<!-- Non-ALS shaders -->
<pass>
<render-bin>
<bin-number><use>render-bin/bin-number</use></bin-number>
<bin-name><use>render-bin/bin-name</use></bin-name>
</render-bin>
</pass>
</technique>
<technique n="13">
<!-- Fallback (no shaders) -->
<pass>
<render-bin>
<bin-number><use>render-bin/bin-number</use></bin-number>
<bin-name><use>render-bin/bin-name</use></bin-name>
</render-bin>
</pass>
</technique>
<technique n="108">
<scheme>hdr-geometry</scheme>
</technique>