Community Challenge: Tiny Worlds 🏡

Btw, this might be the reason your (and my) two-pass blurs only seem to be doing one pass. Basically, you can’t use the same buffer for the two different passes because the render commands are queued and sent to the GPU in a batch, so both calls will use the last buffer contents by the time they run (assuming you’re trying to change the blur direction by mutating that buffer).

2 Likes

I’ve put everything regarding my shenanigans with curved world and lighting in the repo now :wink:

It’s a fork of the fork and here it mainly is about adding a skybox and a few different Depth of Field effects, including one that is just full screen blur. You can enable a debug preview with configurable colors marking focus area and adjust the values for your scene:

Everything is also explained at the top of the README:

You can tweak different configurations, foe example skip the “curve world” shader totally and have DoF with regular 3D scenes:

There are also few additions to the camera controls in comparison to the original one, so you can now also rotate camera (with configurable limits):

@ackle Thank you, yes, your answer does apply here indeed: the horizontal (or vertical if it’s first) pass is effectively lost because both passes share one constant buffer! I pushed a fix for this too, so you can look up the solution, but there are also other issues regarding just the implementation approach :smiley: Treat all of this for learning purposes, and if you have any questions, I would love to answer! :wink:

Few issues also regard frustum culling - the frustum should be adjusted to the curve of the world otherwise objects can disappear or appear while being still in the visible area on the screen as on the video above.


Also fixed the skybox rotation issues :wink:

11 Likes