fix some transparency issues on amd

This commit is contained in:
SamGondelman 2019-06-03 16:14:09 -07:00
parent 993fcea844
commit 3f42d083f5
3 changed files with 7 additions and 3 deletions

View file

@ -163,7 +163,7 @@ void ImageEntityRenderer::doRender(RenderArgs* args) {
transform = _renderTransform;
});
if (!_visible || !texture || !texture->isLoaded()) {
if (!_visible || !texture || !texture->isLoaded() || color.a == 0.0f) {
return;
}
@ -214,4 +214,4 @@ void ImageEntityRenderer::doRender(RenderArgs* args) {
);
batch->setResourceTexture(0, nullptr);
}
}

View file

@ -270,6 +270,10 @@ void ShapeEntityRenderer::doRender(RenderArgs* args) {
}
});
if (outColor.a == 0.0f) {
return;
}
if (proceduralRender) {
if (render::ShapeKey(args->_globalShapeKey).isWireframe() || primitiveMode == PrimitiveMode::LINES) {
geometryCache->renderWireShape(batch, geometryShape, outColor);

View file

@ -222,7 +222,7 @@ void evalFragShadingGloss(out vec3 diffuse, out vec3 specular,
}
vec3 evalSpecularWithOpacity(vec3 specular, float opacity) {
return specular / opacity;
return specular / mix(1.0, opacity, float(opacity > 0.0));
}
<@if not GETFRESNEL0@>