im am visualizing cars in Unity, in the interior I always have a weird Fresnel effect that looks wrong. so i did some tests and found out that the way unity handles roughness of cubemaps is really wrong. Does anyone no a fix? I wish Unity would fix this, this is a huge minus since no other engine i know has such a massiv lack on light calculations. This makes it imposible to make good looking metallics and non metallics get weird glowing fresnel effects.
In the Image below you can see what kind of crazyness unity does to the cubemap. Light gets mixed up and spread around the whole outside of the object what gives it that glowig fresnel look.
Ambientlight and Lights in general are correct. Only the cubemaps after roughing them up go on an LSD trip.
Here i used a reflectionprobe to reflect a white sphere over a chrome sphere, now look what happens when roughness goes up. this is unbelievable. With a normal HDR u dont really see the problem, it just doesnt look good for some reason, but this is why!
That first image makes me think you’re using an older version of Unity, perhaps 5.2 or 5.3? That amount of noise in the reflection probe hasn’t been an issue since around 5.4, maybe 5.5.
The final fully rough images make me think your project is set to use gamma color space rather than linear color space, which you should be using if using HDR (or trying to do anything realistic). Go to your player settings and change Color Space to Linear.
You left your reflection probe resolution at the default of 128, that means by mip 6 (the mip level used when at full roughness) each face of the cubemap is only 2x2! You’ll want to increase that to at least 256, if not 512, if reflections are important to you. You may even want to disable compression. You can do both of those things in the lighting panel, though manually placed reflection probes have their own resolution setting.
Unreal (and maybe Cycles?) by default is using tone mapping with an ACES approximation. Download Unity’s Post Processing Stack asset and add a Post Processing Behaviour to your camera with Color Grading enabled.
That’ll get you a lot closer to Unreal, but Unreal will still look better in the end. Part of that is Unreal Engine 4 uses a “split sum approximation” for their reflections, where Unity uses a more simplistic approximation, so UE4 will match Cycles a little more closely. UE4 also relies far more heavily on screenspace reflections by default which can hide a lot of the sins of using reflection probes due to the lack of inherent specular occlusion. This is something that can also be enabled in Unity using the Post Processing Stack asset. UE4 has been working on their implementations of this stuff for almost 5 years now, and Unity only started implementing it in earnest in the last 2 years, so they’re a little behind. They massively staffed up their graphics programming staff and have been working on a full rewrite of pretty much everything, but most of that hasn’t filtered out to the public builds yet.
thanks alot for your answer! It is 5.6.0.
Yes, linear color space makes it better, but same problem. Yes also the probes are low, but on high its the same problem. And also the postprocesing, i know, but still its wrong. You can kind of make barly visable, but that doesnt change the actual problem.
I think this is a good point:
“Unreal Engine 4 uses a “split sum approximation” for their reflections, where Unity uses a more simplistic approximation”
Metall and non Metal fully rough, shouldnt look much different, only the color. but in unity the it changes completly. the Ambient Light shading is correct, only the reflections are super strange.
Try making a HDR with one white dot on top, it will wrap around the whole sphere. When you have a Sky, it will quisch the floor all the way down
That’s still a compressed 128³ resolution reflection probe, which means all 6 2x2 will essentially be flat colors giving you the obvious separation you’re seeing.
Here’s an example of what it should look like with all of the steps I mentioned above applied, plus with eye adaptation checked on.
In the image you have in the post above you’re showing a manually placed reflection probe gameobject which has it’s own resolution control. Try setting that to 256 or 512. The compression settings in the lighting panel controls both the main scene probe and the placed probes though.
And yes, it still does not look as good as Unreal, but it’s much closer.
Thanks again for your afford! Yes your result looks great actually! But is it full metallic?
I tryed uncompressing and setting higher resolution, but i just cant get around it… You can see how the top is kind of black and the bottom white. On car interiors this is suecide. If you have Time, try doing an extreme example with one light on top inside the HDR map. If you still get the correct result like on the red and blue top, then i shall call you god!
Here are the settings I’m using. For the post processing asset, those are the defaults apart from setting the Tonemapper to use Filmic (ACES) instead of Neutral.
Again thanks alot for taking your time on this! I will try this on an Car interior, on a Ball it looks okay quick, but with multiple parts everything gets that fresnel halo. I will test it and send the results!