Dolphin, the GameCube and Wii emulator - Forums

Full Version: Bloom at 6x native IR, Vulkan
You're currently viewing a stripped down version of our content. View the full version with proper formatting.

Muro

I've noticed distracting bloom on several titles, and I'm wondering what (if any) the fix is. I'm running games at 6x IR, with the Vulkan backend.

Here's some examples of the bloom:
[Image: ulnwlg.png] [Image: 7jfy3h.png] [Image: jiraqp.png]
There are codes to work around this. The one that is on the wiki page only works for 4x IR though.

https://wiki.dolphin-emu.org/index.php?t...o_Kart_Wii
(06-14-2019, 07:36 AM)Muro Wrote: [ -> ]I've noticed distracting bloom on several titles, and I'm wondering what (if any) the fix is.  I'm running games at 6x IR, with the Vulkan backend.

Here's some examples of the bloom:
[Image: ulnwlg.png] [Image: 7jfy3h.png] [Image: jiraqp.png]

Let me try to explain what is happening here (as I was told by the developers of Dolphin but paraphrased by me):

The bloom is created in some sort of buffer at 1x IR, so when you are using 1x IR it will look normal, but as soon as you start upscaling the game to e.g. 4x IR or 6x IR the bloom will also become upscaled and thus more defined which is why it looks more like ghosting instead of a glow.

So there are some remedies (in order of my recommendation):
0. Use the original console and game Wink
1. Play at 1x IR (maybe with 8xSSAA enabled to get rid of jaggies but without the annoying bloom)
2. Find an AR code for your IR that downscales the buffer to the correct size.
3. Find an AR code that completely disables bloom.

Muro

(06-14-2019, 09:00 AM)mstreurman Wrote: [ -> ]The bloom is created in some sort of buffer at 1x IR, so when you are using 1x IR it will look normal, but as soon as you start upscaling the game to e.g. 4x IR or 6x IR the bloom will also become upscaled and thus more defined which is why it looks more like ghosting instead of a glow.

So there are some remedies (in order of my recommendation):
0. Use the original console and game Wink
1. Play at 1x IR (maybe with 8xSSAA enabled to get rid of jaggies but without the annoying bloom)
2. Find an AR code for your IR that downscales the buffer to the correct size.
3. Find an AR code that completely disables bloom.

That makes sense.  The fact that it occurs on different games makes me wish there was one AR/Gecko code that would work on all games at all scaling.  But, because the wiki code I see for Mario Kart is only for 4x and only for that game, that doesn't make me optimistic.  However, that is a code for scaling it back down, and I wouldn't mind disabling bloom entirely for everything, so maybe something exists.

Thanks for the explanation. 
Different games implement bloom in different ways - it's not like the Wii and Gamecube had a bloom on/off setting on the GPU that games used. For example, one game might draw a translucent silhouette on top of a lamp to simulate bloom, while another might blur bright pixels in the final image into their neighbours by meddling with it on the CPU.
Doesn't SSAA have the same problem as well ? Since it basically run the game at a higher IR to get rid of aliasing.
(06-14-2019, 05:59 PM)DrHouse64 Wrote: [ -> ]Doesn't SSAA have the same problem as well ? Since it basically run the game at a higher IR to get rid of aliasing.

Nope because it doesn't increase the actual resolution, thus output will still be native which is needed for that buffer.
"The aim of supersampling is to reduce this effect. Color samples are taken at several instances inside the pixel (not just at the center as normal), and an average color value is calculated. This is achieved by rendering the image at a much higher resolution than the one being displayed, then shrinking it to the desired size, using the extra pixels for calculation. The result is a downsampled image with smoother transitions from one line of pixels to another along the edges of objects."



Wikipedia says otherwise.


https://en.wikipedia.org/wiki/Supersampling
(06-17-2019, 01:14 AM)DJBarry004 Wrote: [ -> ]"The aim of supersampling is to reduce this effect. Color samples are taken at several instances inside the pixel (not just at the center as normal), and an average color value is calculated. This is achieved by rendering the image at a much higher resolution than the one being displayed, then shrinking it to the desired size, using the extra pixels for calculation. The result is a downsampled image with smoother transitions from one line of pixels to another along the edges of objects."



Wikipedia says otherwise.


https://en.wikipedia.org/wiki/Supersamplin
The output image is still 1x IR even at 8xSSAA, so my point still stands. You can see this difference quite clearly because 8xIR+AA OFF is MUCH clearer/cleaner than 1xIR+8xSSAA.

For Dolphin SSAA basically means that the size of the framebuffer gets increased but all the other buffers stay the same size (e.g. EFB/XFB) I think this is because SSAA is done at driver level, which cannot access these extra emulated buffers as, AFAIK, those are done on the CPU. With an IR increase it increases all buffers. If you don't believe me: It's easy enough to test, get a game that messes up the bloom on a higher than native IR, run it at 1xIR and increase the SSAA (8xSSAA = 8xIR) you will see that the bloom is still working as intended.