Forum Discussion
Picster
11 years agoHonored Guest
Dark parts have banding
Hey there,
I have a serious issue with dark parts of my game (which are quite a lot in a deep sea underwater game ;) ).
They look like gradients to black are banded... like a old 16bit image.
I have googled a lot and found out about the limited RGB output for TVs.
That fixed the issue for Elite: Dangerous where dark gradients are now looking superb.
But in my own game (developed on UE4, for sure) I still have those issues.
I start the game in direct mode and it doesn't matter if I use a packaged build or if I start it from the Editor.
Anyone got an idea how to fix this?
It's hard to show what I mean because it is only visible in the DK2, not on the monitor (looks fine there).
I have a serious issue with dark parts of my game (which are quite a lot in a deep sea underwater game ;) ).
They look like gradients to black are banded... like a old 16bit image.
I have googled a lot and found out about the limited RGB output for TVs.
That fixed the issue for Elite: Dangerous where dark gradients are now looking superb.
But in my own game (developed on UE4, for sure) I still have those issues.
I start the game in direct mode and it doesn't matter if I use a packaged build or if I start it from the Editor.
Anyone got an idea how to fix this?
It's hard to show what I mean because it is only visible in the DK2, not on the monitor (looks fine there).
5 Replies
Replies have been turned off for this discussion
- owenwpExpert ProtegeIts more obvious in VR in general, all outside light is blocked so in dark scenes your eyes will adjust and you will see these artifacts. But its always there, you only get 256 shades of gray to work with, from the brightest white to pitch black.
You should probably brighten up your scene to simulate eye adaptation (there are camera exposure variables for this), rather than having realistic light levels and force the players' real eyes to adapt. Real dark scenes will have to wait until we have HDR displays. - RockShaedyHonored Guest
Can I ask how you fixed the gradient issues with Elite? I've tried a few things but I'm still seeing some nasty gradients, especially around stars....
- FredrumExpert ProtegeI think the engine doesn't do dithering to minimize the banding.
Software cg rendering and programs like photoshop does this to work around the issue trading banding for the less conspicuous artefact of noise.
Some links:
https://en.wikipedia.org/wiki/Colour_banding
https://simonschreibt.de/gat/colorbanding/
http://www.realtimerendering.com/blog/2011-color-and-imaging-conference-part-ii-courses-a/
"Rod talked about the method Pixar use for dithering while quantization – it’s an interesting method that might be relevant for games as well. The naïve approach would be to round to the closest quantized value. This is the same as adding 0.5 and rounding down (truncating). Instead of adding 0.5, Pixar add a random number distributed uniformly between 0 and 1. This gives the same result on average, but dithers away a lot of the banding that would otherwise result."
They talk a bit about it somewhere here: (sorry not sure where)
https://www.youtube.com/watch?v=JO7G38_pxU4
http://media.steampowered.com/apps/valve/2015/Alex_Vlachos_Advanced_VR_Rendering_GDC2015.pdf
http://www.24liveblog.com/share/192033808?url=https://www.24liveblog.com/live/1286428 - jabRising StarThis is a common problem for a all 8bit per color channel displays. And the problem is exaggerated by the nonlinear gamut profile in the Rift displays.
As mentioned the only known workaround is adding noise/dithering. You will find this trick used in many traditional games, since gradients will look like crap on normal monitors also.
I've added an example using a 16 color gradient rendered with and without dithering. - galopinHeroic ExplorerTv usually have a hardware dithering engine because dithering is not a very gpu friendly ( like floyd carry an error from top left to bottom right pixel ). Most game appy the dithering with the addition of a little noise when they drop from a HR buffer with tonemapping to a 8/10bits buffer. The idea is that in that pass, the pixel shader still have a higher amount of bits, the little noise will help some pixel to +1/0/-1 when the GPU discrétise the value to write the rendertarget... cheap dithering, thanks :)
The problem is that Oculus want to do everything them self, they lack the knowledge of what exactly they receive, and we lack the possibility to tweak the compositing. Because there is not a one to one match thanks to the lens distortion compensation, the dithering is right now stretch, while it should be apply at the end of the compositor, that is out of our access right now.
Quick Links
- Horizon Developer Support
- Quest User Forums
- Troubleshooting Forum for problems with a game or app
- Quest Support for problems with your device
Other Meta Support
Related Content
- 1 month ago
- 2 months ago
- 4 months ago