I was reading the LumenCardBasePass function in LumenCardBasePass.ush, and there is a sum on line 78:
// Lumen card stores only diffuse albedo, so merge specular & diffuse color,
// which are propertly weighted respectively to each other
DiffuseColor = SpecularColor + DiffuseColor;
This sum is inside the for loop, so if I understand it correctly, it accumulates too much the specular color. To correct it, this sum should be moved after the for loop (between line 87 and 88), or the specular part should be reset to zero before accumulating it (e.g., by changing += to = on line 71).
Can you please confirm my finding?
[Attachment Removed]
Steps to Reproduce[Attachment Removed]
Hi,
thanks for reaching out. I investigated that bit of the code base and I believe your finding is correct and both of your proposed solutions should fix it. I will pass this on to Epic as a bug, so a subject matter expert can have a look.
Thank you,
Sam
[Attachment Removed]
Hi again,
before the issue can be made public, have you noticed if the current shader logic results in some observable, unexpected behavior, or is the issue observable just by debugging the diffuse color? In either case, would you be able to provide any Steps to Reproduce that can be included?
Thanks,
Sam
[Attachment Removed]
Hello,
Unfortunately, I don’t have any repro. I didn’t investigate this bug much, I was trying to understand how Lumen renders the cards, and I noticed this issue, so I decided to report it, so that it didn’t get lost.
[Attachment Removed]
No worries, thanks again for reporting.
Sam
[Attachment Removed]