Forgot to show that before, just so you can have a look at what's behind doing a rendering setup: This is how it looks for the fixed-resolution rendering example as shown in the previous post:


There is a RenderSetup resource that does a world space and a screen space pass, both rendering to the
MainTargetTex texture that has a fixed resolution of 320x300. A third rendering step in the PixelArtSetup will then draw that texture to the screen while resizing it to fit the available space and its own aspect ratio.
Another sample from the new RenderSetup sample package:
A bloom filter.A bloom filter usually involves a lot of rendering steps that gradually downsize the rendertarget and merge the results later on for performance reasons, making it a somewhat "big" operation, so it was a good test case for finding the boundaries of the current rendering setup customization.
Involved in the setup are 9 RenderTargets (plus 9 Textures), 4 FragmentShader, ShaderProgram and DrawTechnique resources, leading to a total of 30 user-visible resources when using only out-of-the-box setups and manually setting up all the steps.

Conclusion: It's
possible to create a bloom filter just by using the editor, but it's really not a very usable thing to do and definitely not fun. It worked in the end, so I kept the bloom sample in the package, but immediately set out to find a better way for the more complex cases.
The current solution to this problem was to provide an API that can be used to process rendering operations programmatically, so you can use coding to deal with the more complex cases, as opposed to juggling with editor UI.
This is the custom setup for the bloom filter. It automatically sets up all the RenderTarget resources it needs internally without exposing them and applies bloom in a single rendering step, rather than 13 individual and manually set up steps.


Way easier to handle that way, and also more flexible, should that flexibility be required. There's definitely room for improvement, but for now I think I'll leave it like that. It's already a huge improvement in what is easily (and overall) possible compared to v2.x, and after all, you only create a rendering setup once - after that, it's just drag-drop, even between projects.
