cancel
Showing results for 
Search instead for 
Did you mean: 

suggestions for reflections

bcoyle
Adventurer
Hi,

I feel like this always comes up...

I'm curious what people think is the best method for reflections since I still struggle with this. I think Cubemapper and Reflection Manager might be the best assets for easy cubemap creation. These work well for simple, blurry reflections. CandelaSSR would have been nice for screen space reflections if it worked properly for the Rift. And then what about mirror reflections?

Thanks
11 REPLIES 11

SxKx
Expert Protege
I´ve got the best result with mirror reflection. Don´t have a direct link but it has worked really well. It´s based on Unity´s water reflection. Little googling should find that mirrorreflection.cs or .js.

I´ve also used a different approach with RedDot Games CarShader that I purchased, but it made a huge bump in performance so I use it only with low-res stuff (running i7 2600serie, nvidia540M 2gb 10Ram)...

I´ve needed real reflections for car side and rearviev mirrors 1sr person...

Anonymous
Not applicable
I would suggest, especially for mirror like applications (cars), to use additional cameras and rendertextures. Each eye only sees it's corresponding rendertexture.

deflix
Honored Guest
"bcoyle" wrote:
Hi,

I feel like this always comes up...

I'm curious what people think is the best method for reflections since I still struggle with this. I think Cubemapper and Reflection Manager might be the best assets for easy cubemap creation. These work well for simple, blurry reflections. CandelaSSR would have been nice for screen space reflections if it worked properly for the Rift. And then what about mirror reflections?

Thanks


I have had success combining the hardsurface free reflection shader with cubemaps from Spreadcamps 'cubemapper. The key there is to tune the fresnel curve to get the feeling of shiny surface, but this works only on transparent (subtle) flat surfaces like glass and curvy opaque surfaces.

For realtime flat reflections there is only one viable option which is a modified version of the pro water shader called 'flat mirror reflection' and is also available for purchase on the asset store. It works great!

NOTE - there is a bug in Unity that causes the cubemapper to flip certain normals in the scene when rendering cubemaps when the flat mirror reflection script is in Unity project folder. My workaround for this is to temporarily remove the script, render the cubemaps and then copy it back. fyi 😉

bcoyle
Adventurer
"deflix" wrote:
"bcoyle" wrote:
Hi,

I feel like this always comes up...

I'm curious what people think is the best method for reflections since I still struggle with this. I think Cubemapper and Reflection Manager might be the best assets for easy cubemap creation. These work well for simple, blurry reflections. CandelaSSR would have been nice for screen space reflections if it worked properly for the Rift. And then what about mirror reflections?

Thanks


I have had success combining the hardsurface free reflection shader with cubemaps from Spreadcamps 'cubemapper. The key there is to tune the fresnel curve to get the feeling of shiny surface, but this works only on transparent (subtle) flat surfaces like glass and curvy opaque surfaces.

For realtime flat reflections there is only one viable option which is a modified version of the pro water shader called 'flat mirror reflection' and is also available for purchase on the asset store. It works great!

NOTE - there is a bug in Unity that causes the cubemapper to flip certain normals in the scene when rendering cubemaps when the flat mirror reflection script is in Unity project folder. My workaround for this is to temporarily remove the script, render the cubemaps and then copy it back. fyi 😉



Good suggestions. I too use Cubemapper. But had found the hardsurface reflection shader too costly for my one specific scene. I ended up just making a simple Shader Forge shader that used a cubemap & had an opacity slider. It didn't look quite as glinty as the hardsurface one did with the nice falloff and multiple adjustments

Will look at the other solutions, I need to organize them all so they're easier to access and drag & drop without too much fuss.

Thanks all

Boff
Honored Guest
Are these dynamic reflections or are they just reflecting a static environment?

deflix
Honored Guest
"Boff" wrote:
Are these dynamic reflections or are they just reflecting a static environment?


Flat mirror is fully dynamic - even in editor window 🙂 just ensure that you assign your mirrors to separate layers so other flat mirrors cull other flat mirrors, if that makes sense. Recursive reflections cause unsightly artifacts

edit - and flat mirror breaks under dx11 fyi

owenwp
Expert Protege
Ordinary cube maps work rather poorly with stereoscopy, because you can plainly see that the reflections are infinitely far away from the lack of parallax. And it isn't just that it doesn't look good, it can be uncomfortable to look at, because it confuses your visual system with input that it can't make sense of.

Parallax corrected cube maps though work quite well, as you can see in some of the Unreal 4 demos. There are free papers available on the web that explain how to implement them, though I have not seen a good Unity package for them.

Screen space reflections can work pretty well, since they mostly break down at the edge of the screen which you won't usually be focusing on. They are expensive though and can have temporal coherence issues.

Some sort of voxel traced indirect specular would be ideal once GPUs are fast enough for it. Specular is extremely important for making objects look solid and real in VR, and just for spatial awareness in general, so I think it will be worth the cost in the long run. Metal just looks like painted cardboard in VR without realistic specular reflectoins. I doubt the realtime GI in Unity 5 will be a silver bullet, but maybe it will be worthwhile.

deflix
Honored Guest
"owenwp" wrote:
Parallax corrected cube maps though work quite well, as you can see in some of the Unreal 4 demos. There are free papers available on the web that explain how to implement them, though I have not seen a good Unity package for them.


I had never heard of this - thanks for the info! Its awesome 🙂

Anton
Honored Guest
Unless I'm mistaken, the Box-Projected cubemaps that Marmoset Skyshop now supports/can generate are a parralax-corrected cubemap?