Transmission over-brightens material
Asked Answered
H

2

0

I've created a mesh that I'm trying to use for bush leaves. Since I would like the side facing away from the light source to be lit the same way as the side facing the light source, I've tried enabling the Transmission property of the SpatialMaterial and setting the transmission color to a mid grey. Unfortunately, this has the effect of destroying the shading and making the texture overly bright - almost like an emissive texture. I don't want to make the texture 'glow' - I just want the side away from the light to be rendered the same as the side facing the light.

I looked into creating a custom shader too, but ultimately you are just writing a value to the TRANSMISSION output and it does the same thing as the SpatialMaterial.

Is there a way to get transmission to look more realistic?

Housebreak answered 27/2, 2022 at 7:10 Comment(0)
Q
0

Transmission in Godot 3.x was never designed to look realistic, and I've found it to be difficult to use in practice. Instead, I would recommend darkening albedo and increasing emission (or darkening albedo and increasing transmission).

Transmission was remade from scratch for Godot 4.0 (now called Back Lighting) and should look much better there. This probably can't be backported to Godot 3.x as it'd change the appearance of existing materials.

Quail answered 27/2, 2022 at 20:33 Comment(0)
C
0

Also, if you don't need real time lighting, you can use baking. When you light bake a quad (with double-sided surface) only the front side is calculated, but both sides receive the same light/shadow. This can be beneficial or detrimental, depending on what you are doing. In your case it would work, provided the leaves don't move much.

Codee answered 27/2, 2022 at 21:20 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.