Deferred Rendering Project WT EngineMG

The linear depth visualized as greyscale image looks like this:

The dual paraboloid shadow mapping point lights are working again.

Next thing I want to do is update some more shaders, so they work also with the linear depth. This should be straightforward, since I updated already some shaders.
After that I want to update the particle shader. With the better distributed depth precision it should now be possible to make soft particles work with all camera distances (I had the issue that particles would disappear when the camera is not close to the particles).

In the last three posts the first image shows normal particles and the second shows soft particles respectively. So as a conclusion, the disappearing soft particles with greater camera distances came from the depth not having enough precision.

I’m happy now with the visual result of the particles, looks very nice :slight_smile:

I’m thinking now abut trying out different fade functions. At the moment I use the scaled depth difference. This value is then multiplied with the final particle color.
If somebody has a helpful link or can recommend a function, please let me know :wink:

2 Likes

Here is an image with screen space ambient occlusion (SSAO). It gives the scene a bit more atmosphere :slight_smile:

1 Like

For comparison to the last image, no SSAO this time but a point light:

Here is an older screenshot of the particles:

Tomorrow after a long time, I think i will find some time to work a little bit on the renderer. Looking forward to it :slight_smile:

Also started to use the #monogame tag on twitter.

what ssao do you use

I think it was this article from gamedev, where I took the original code from. But it has been quite some time so I don’t remember exactly.

https://www.gamedev.net/resources/_/technical/graphics-programming-and-theory/a-simple-and-practical-approach-to-ssao-r2753

1 Like

1 Like

1 Like

I implemented simple screen space decals, but the code needs a bit cleanup. They are not projected by using an orthographic projection, but rather a unit size cube. When rendering the cube, it gets transformed back to object space. Then, since we have a unit length cube, we can calculate the texture coordinates by simply adding 0.5f to the coordinates.

1 Like

is that the league of legends mountain drake? :smiley:

I don’t remember where I downloaded the model, so I don’t know :sweat_smile: