Reflection Probes and non reflecting objects + mixed materials

Hi there,

I have a problem with reflection probes, that may be an understanding problem. In my scene I have a diversity of objects, some reflective (metal), some not reflective. As soon as I position a reflection probe in the scene, the whole scene gets “brightened up”, even the materials that are not reflective (using metallic standard shader). If I disable the reflection probe, everyting is back to normal and looks good (especially dark spots & shadows).

Now, what I did is de-activate the blend Probes in the mesh renderer of objects that are not reflective, like gold or chrome etc. The problem is with mixed materials, e.g.with objects that combine in a texture metal and cloth, for example. I know the theory of “every surface has fresnel and is reflective” but it simply does not look right, because the overall object seems to get too bright. It looks like the smoothness and metallic-values set to 0 do not have an effect on the blendprobes other that blurring it or making the reflections sharp - the intensity and brightness don’t seem to be touched.

Do I miss some settings? Or do I misunderstand the concept of reflection probes?
Greetz
Awasel

I only see this happening if smoothness is set to a high value, but I do agree that this should not show a reflection if the reflection (specular) color is set to full black.

The workaround now is probably to supply your own shader for the reflection probes.

There are no “not reflective” materials.

Because everything is shiny and everything has fresnel.

@ jvo3dc hmm this would be somewhat strange - having reflection probes in unity, but still having to write an own shader to use them.

@AcidArrow
Just read my statement again. In reality it may be so, but in reality we don’t have reflection probes that simulate the surroundings from ONE point in a room. Due to constraints to perfomance one simply cannot attach the reflection probe to the char and do updates every frame. So IT IS a workaround, and as such we have to do a work around for the “everything is shiny and everything has fresnel”. This statement is utterly useless in a scenario where the probe is rendered once at awake. Your relying on reality is broken in the moment the character goes near a wall, stands in a shadow below a roof - The reflection probe simply does not work anymore and looks weird. So you need a workaround and the best practice (as I see it) would be to be able to manipulate the amount getting reflected, up to nothing. But this seems not to be the case atm with the current version of unity.

If your objects are getting too bright, you are doing something wrong with the placement and settings of your reflection probes.

Also, that thing you said, render once on Awake, it’s doable.

Of course it doable, that’s just the problem. The probe would have to move with the character and always be updated - that’s just a huge performance problem. That’s why a “reflection” map would help.

What?

You can add multiple probes in the scene. Actually you should use multiple probes in your scene and cover most of it with probes.

I agree with that, but in my opinion it’s up to the material shader to determine this. Just in case you want to use a material which is not physical. The shader should output the smoothness and color of the reflection to the gbuffer and the probe shader should adhere to these values. It’s the responsibility of the shader to output the correct reflection color based on the principles that everything is shiny and everything has fresnel. As an extra advantage it saves doing the brdf calculations again for every probe.