Implemented support for Transparent Materials using Forward+ path. Even though it’s working I am not sure to go through a whole separate Forward+ rendering pass for transparent materials is the right way to go. I am thinking to test some other algorithms like Inferred Rendering, OIT or stochastic transparency, etc.
But before that I will be testing performance of proper Deferred Rendering with fat GBuffers vs Forward+. Right know I am using 3 32 bit GBuffers for Albedo, Normal and Specular (and yes 32bit Depth Buffer). In my current implementation I am getting 650+ fps in Deferred Rendering path and 350+ fps in Forward+ with 1024 dynamic point lights in sponza scene.
Here’s the sponza model rendered with 1024 dynamic point lights -
I am getting 650+ (650-900) fps in this scene depending upon how many lights are in the view and how many lights end up per tile. This is with Depth Prepass, which gave a boost of approx 150 fps in this scene.
Note – These results are without any optimizations on application side. – no frustum Culling, no sorting,data of all the lights is being updated perframe, etc.
Some more screenshots -
Tested 1024 Dynamic Point Lights. These screenshots have been Captured in Debug Mode. For performence test I am working on importing Sponza Model.
I recently started working on JustAnotherGameEngine again. Although ToneMapping was left incomplete in april I have started on Deferred Rendering for now.Plan is to do ToneMapping after this so that I would have some test scenes with lights rather than just HDR skybox. Because I feel its more difficult to do Tonemapping properly in a 3D scene with multiple dynamic light sources or varying luminosity rather than just a skybox and will be a good test while testing different tone mapping operators.
I worked on a basic naive implementation of HDR rendering few months back using old DX9 style pixel shaders. Actually I have a lot of old experimental shaders created in Nvidia FX Composer long back (tone-mapping, physically based BRDFs, etc) and I integrate them to the engine as required providing backend support in c++ code and improve on them as necessary using Direct3d11 features. So that old pixel shader based ToneMapping shader was one such example. It was not so great either in quality or the performance but not so bad for first implementation. Here are the rendering stages involved in that implementation : -
Gaussian Blur Filter is one of the most used effect in graphics programming. It helps to achieve many other effects like Bloom, DOF, etc.
I coded a version of it using pixel shaders in my naive pixel shader based HDR Renderer earlier. Even though it served the purpose it was very limited in terms of performance and hence quality since we can’t increase radius beyond some levels for real-time rendering.
Then I posted about first compute shader based implementation here which based on Frank Luna’s algorithm but even that was limiting in the fact that we can’t go beyond some blur radius (depends on GPU) for performance reasons.
Here’s a screenshot (800 x 600)-
I got busy with work-for-pay projects from last few months so development on JustAnotherGameEngine stopped.
But I have started the work on JAGE again and will be posting progress on BLUR filter soon.
Original Devil May Cry released in 2001 was one of the best games of last decade. It was meant to be Resident Evil 4 but it made Resident Evil look like a SLOW ZOMBIE. Knowing it won’t fit in the resident evil franchise developers gave it its own plot, story & hence a new franchise was born and born with it a whole new genre of action games. There were 3 more games released in that series and it inspired a lot of new games like God Of War, etc. It’s a benchmark for 3D action games even now. Well to be honest I haven’t completed the first the original Devil May Cry ( I was hoping Capcom would release the HD collection on PC also, but sadly they didn’t yet ) but I have played the 3rd and 4th game in the original series and they were unlike anything I had ever played.
I just started this game without much expectation (it’s a very old game after all) as I didn’t have anything else to play that time. And of course like many others I have also heard it was a good game, etc. But after couple of hours of game play it sucked me right in & I can’t stop playing it. It’s an amazing game and over next couple of weekends I finished it & here I am writing my thoughts on this amazing game.