properly implement alphaModes

This commit is contained in:
HifiExperiments 2019-11-22 00:37:27 -08:00 committed by Kasen IO
parent b66fa1d57a
commit 3fe395ca32
2 changed files with 4 additions and 9 deletions

View file

@ -223,13 +223,10 @@ vec3 fetchLightMap(vec2 uv) {
}
<@endfunc@>
<@func evalMaterialOpacity(fetchedOpacity, materialOpacityCutoff, materialOpacity, matKey, opacity)@>
<@func evalMaterialOpacity(fetchedOpacity, materialOpacity, opacity)@>
{
// This path only valid for transparent material
<$opacity$> = mix(<$fetchedOpacity$>,
step(<$materialOpacityCutoff$>, <$fetchedOpacity$>),
float((<$matKey$> & OPACITY_MASK_MAP_BIT) != 0))
* <$materialOpacity$>;
<$opacity$> = <$materialOpacity$> * <$fetchedOpacity$>;
}
<@endfunc@>

View file

@ -103,9 +103,8 @@ void main(void) {
<$fetchMaterialTexturesCoord0(matKey, _texCoord0, albedoTex)$>
<@if HIFI_USE_TRANSLUCENT@>
float cutoff = getMaterialOpacityCutoff(mat);
float opacity = getMaterialOpacity(mat) * _color.a;
<$evalMaterialOpacity(albedoTex.a, cutoff, opacity, matKey, opacity)$>;
<$evalMaterialOpacity(albedoTex.a, opacity, opacity)$>;
<$discardInvisible(opacity)$>;
<@else@>
float cutoff = getMaterialOpacityCutoff(mat);
@ -155,9 +154,8 @@ void main(void) {
<@endif@>
<@if HIFI_USE_TRANSLUCENT@>
float cutoff = getMaterialOpacityCutoff(mat);
float opacity = getMaterialOpacity(mat) * _color.a;
<$evalMaterialOpacity(albedoTex.a, cutoff, opacity, matKey, opacity)$>;
<$evalMaterialOpacity(albedoTex.a, opacity, opacity)$>;
<$discardInvisible(opacity)$>;
<@else@>
float cutoff = getMaterialOpacityCutoff(mat);