Experiments on glasses materials - Coloured, refracting, reflecting, etc...


Here are a some effects I’m working on.
The goal is to make translucent materials with properties you can’t find right out of the box in the engine : real time specular highlights, uniform tint colour despite refraction, strong uniform blur… So that I can reproduce all kind of glasses.

These effects require post processing materials, level blueprint stuff, source code slight modification and level setup.

BLURRING GLASS - Blur effect, realtime specular highlights (not faked with cubemap - not using translucent surface per pixel - because with this last one, you can’t get clean refraction AND uniform color - also: no shadows), shadow casting.

REFRACTIVE GLASS - Realtime specular highlights, shadow casting, refraction without artifacts.

BLURRING TRANSLUCENT PLASTIC - Realtime specular highlights, shadow casting, a bit of refraction without artifacts, opacity increasing according to cam player position.

Of course, the idea is to use these ressources to enhance graphics in my projects.
And maybe release a glasses and mirrors shaders pack on the Marketplace.

How are you getting real-time specular on the transparent material??

This is brilliant.

@ClockworkOnion: thanks a lot for the kind words!

@JamesSF69: I won’t explain here the process in detail. Maybe someday I’ll try to release it on the marketplace if I think it’s good enough for this.
Things started from this post:

From here, you can see which way I’m exploring.

Another one:

REFRATIVE TINTED GLASS - Realtime specular highlights, shadow casting, refraction without artifacts, tint uniformly applied.
With this setup, glasses wouldn’t blend their tints when seen one through another.

Specular highlights, shadows, refraction, reflections and tints blending when one glass is seen through the other.
Notice how the yellow glass refracts what’s behind, including the edges of the red glass itself (which doesn’t happen
if you simply put 2 refractives meshes in a level: what’s behind the glasses will be refracted twice but the shape of the second mesh won’t be refracted by the first as you could expect).

And now: let’s go for a mirror shader…

Mirror shader.

New video: realtime reflections on polished stones.
Due to video compression and resolution, there’s a loss of quality compared to what you get directly from a PC.
Esoterical medieval mood for this one, with the help of a few assets from Infinity Blade grass pack.
Not yet fully satisfied by the way reflections and marble surfaces blend together but it already gives a good idea of what could be done.
Use 1 scenecapture actor.
Runs at 40 fps on an Intel Q6600, GTX 560 and 4 Go RAM with full quality screenspace reflections on the scene.

So you use the Hide Component to allow things behind the mirror? What if the mirror is inside an object like a house or room. How would you cull just the part that is behind the mirror? Have you tried doing this with an oblique projection matrix using the mirror plane as the near plane for the projection matrix?


No. I don’t wanna add too much details about the workflow used here, as I plan to release this on the marketplace.
You have to modify ue4 source code a little bit to make it work.

@EdWasHere When will this be released on marketplace ??

When shall you release it?

I just don’t know, guys.
I still have a lot of stuff before releasing it (other glasses shaders + other reflections shaders).

Hi Ed, Amazing work. I sure ‘must have’ on the marketplace. I would say core-engine even. One thing you want to check, was that the last time I checked, the market-place was blueprint only. No source code changes.

Thanks, isgoed!
Core engine modifications? No, pretty basic stuff, in fact but full of possibilities. I’m not a coder, I couldn’t achieve complex modifications by myself.

That’s right. As I go on working on these shaders, I’m really asking how I will commercialize them…
I’ll have to seriously look at that.

Please release on the marketplace. Look it’s money

When will this be released on the marketplace?