Deferred Engine Playground - download

OMG! :astonished: This is what I have been looking for long time… Thanks a lot @kosmonautgames. Great work!

I have downloaded and checked the latest checkout with SoftShadows. It looks awesome! But takes lot of processing time if I increase the samples. Is there anyway to optimize this?
Now I am going to check with animated objects and see how it works.

BTW, did you change anything with HDR to increase to illuminate the entire Sponza model or its just coming from Environment mapping?

Thanks and Regards,

I’ve added 2 blue lights on top :joy:

That said the whole environment mapping etc. is totally unplausible right now, I’ve changed some stuff somewhere and now the values don’t match at all. I’ll give it another pass tonight or tomorrow. I think the main issue lays in the fact that I moved the gamma space conversion to post processing and now some parts are left in wrong gamma.

Maybe a bit, but it will never be cheap. You can use smaller shadow maps, this will make the blur effect bigger / cheaper but you might see some shadow aliasing artifacts if you go too low. Try 512.

All values >4 are actually crazy compared to what normal games have to work with. I am thinking about other ways to blur shadows, but it’s a difficult topic in general, that’s why games usually don’t have very soft shadows on small geometry.

There is another way to have soft shadow mapping with “Virtual Shadow Maps” - and I’ve used them before, as you can see in the screen shot above. These are cheap soft shadows, but I couldn’t use them for point lights, so I’ve dropped them (In the shot above I still had spot lights). I may look into reenabling them.

That said VSMs have their own set of problems. They are very soft, but sometimes light will “leak” through objects.

Thanks for your quick reply!
The lighting trick is brilliant!

I would like to have Super Soft Shadow with low computation, does VSM is dynamic/ Animated objects perfectly?
I would be glad! If you enable the VSM and give me in a separate branch to test it.

How to try 512?

This is not related to Deferred Engine,
Please let me know how to do Anti-Aliasing every single frame without referring previous frames[Not Temporal]?

I have animated models having jagged edges, since I have objects moving each frame I cannot have Temporal Anti-Aliasing.


I will not support anything but Temporal AA. TAA can work with animations, but I have currently no intention of implementing that. For that I would need to create a velocity buffer to see how much each pixel moved from the last frame.

But you can use tools like SweetFX or Reshade to inject SMAA if you want, which is a fairly effective post-processing AA.

Great, Thanks a lot for your quick reply! I will try that and let you know.

However thanks for that Awesome engine, once again!


I wrote a bit about shadow mapping here:


try to active directional light, everything go wrong

no that’s intended, the environment probe is right next to very very bright spots, so everthing gets bright.

The environment probe is the thing with the tree/landscape icon. Move it around to see what fits well. You can also lower the specular/diffuse strength of the probe :slight_smile:

Deferred Decals!

I’ve also updated the gizmos to work with local transformations, which should make rotations much easier.

Plus -> one can scale objects in-engine in all 3 axis.

1 Like

Good stuff! This just keeps getting better :slight_smile:

any idea msaa work in deferred rendering?

here is a paper from crytek about it

too deep for me xD…

wrote a bit about some newer stuff here

editor controls


object mask is culling region for custom shader?

It was encoded in the material type, it’s not an extra rendering step. Instead during the compose step the rendering would change depending on mat type.

For holograms I rendered basic 3d meshes with simple lighting to another rendertarget and then, for the pixels with materialid ==3 (hologram material) I loaded these pixels and applied some processing, like Gaussian blur etc.

It should be noted that I removed the specific “hologram” functionality 1 week ago, different material shaders are still possible though.

The hologram look is really nice, made me also curious when it was first posted :slight_smile:
Reminds me of the material id bug in my renderer I didn’t solve until now… Argh.

Is there a way to fix this engine at 60 fps?
vsync =1, vblank = 1, 60fps ?

yeah sure

at the beginning of Game1(), so the main game file in the EngineTest directory you can set

            _graphics.SynchronizeWithVerticalRetrace = true;

(it is commented out)

Or you can update to the newest version and change the console settings to g_vsync = true (or g_fixFPS = 60)

Both of these only work if your PC can produce more than 60 fps obviously. If you cannot consistently produce more than 60 Vsync will settle with 30 fps