Maniphest T92137

Render Result is a Visible Image with Alpha Channel Being 0
Closed, Archived

Assigned To
None
Authored By
Zijun Zhou (Eary)
Oct 12 2021, 11:29 AM
Tags
  • BF Blender
Subscribers
Richard Antalik (ISS)
Zijun Zhou (Eary)

Description

System Information
Operating system: Windows-10-10.0.19041-SP0 64 Bits
Graphics card: NVIDIA GeForce MX130/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 471.96

Blender Version
Broken: version: 3.0.0 Alpha, branch: master, commit date: 2021-10-11 23:14, hash: rB4b31a21bcd19
Worked: (newest version of Blender that worked as expected)

Short description of error
Honestly not sure whether this is actually a bug. It renders an image with alpha channel being 0, but still visible. I don't understand what's happening.
Use a Principled BSDF that has the Alpha slider set to 0.5, and use Add Shader to add it with a Transparent BSDF, with Film Transparent on, results in a visible image with strange Alpha channel (almost 0) in the final image:


Note the dim outline of the plane visible in the Alpha channel (In Cycles)
In Eevee's Alpha Blend mode the Alpha of the final image is just darkness without the dim outline.
I mean, how come it's still visible with 0 alpha? Saving EXR works but saving PNG doesn't. I honestly don't know what's happening.

Exact steps for others to reproduce the error
[Please describe the exact steps needed to reproduce the issue]
Based on an attached .blend file

  1. Open the file and hit render
  2. After rendering finished, go to top right corner of the render window and switch channel to Alpha, see the dark image with dim outline
  3. Switch to Eevee and hit render, see the alpha of the final image, see how it's completely dark.
  4. Go to the compositor and do something like this:


This is an image still visible with 0 alpha?!

Event Timeline

Zijun Zhou (Eary) created this task.Oct 12 2021, 11:29 AM
Zijun Zhou (Eary) updated the task description.Oct 12 2021, 11:35 AM
Richard Antalik (ISS) closed this task as Archived.Oct 12 2021, 6:44 PM
Richard Antalik (ISS) added a subscriber: Richard Antalik (ISS).

Doesn't look like regression. Checked code and Add Shader node for surface does calculate final transparency instead of opacity like this: transparency_final = shader_A_transparency + shader_B_transparency, so this seems to be correct behavior.

Reason why this color is displayed and why it doesn't work when saved to PNG is because this is purely emissive color like flame - it is transparent, but still visible. PNG doesn't support this - see T81199.

Since this is expected behavior, will close report. Thanks for reporting though.