Forum Discussion
wevr_julian
9 years agoHonored Guest
Color balancing for dark scenes (experiencing extreme banding + red tint)
Hi everyone,
We are in the process of porting a Vive title to the Rift and are experiencing difficulty with one of our scenes which is very dark and high contrast (mostly black). There is a lot of extreme banding and a reddish brown tint in the lower color ranges that strongly clashes with the color palette of the scene. The dark color ranges seem unnaturally bright both in comparison to black and the brighter areas of the scene. Finally, there is quite a bit of color "popping" as lights and emissive objects slowly fade from black to non-black.
In researching this, I've seen a lot of discussion among consumers about this issue, which seems to be a side effect of low persistence mode. However it's unclear what is the proper approach to take as a developer -- is this an issue that affects every Rift (all of our internal Rifts have the same issue) or is it less widespread? Should we leave the color as is (what looks correct on our PC monitors and the Vive headset), or should we try to rebalance the color towards what we are seeing on the Rift, assuming everyone's looks the same as ours?
Honestly I am not really sure how successful a rebalancing effort could be, given the inherent darkness of the scene. The color balance and popping seems to be mitigated if I raise the black point, but the predominant color then becomes gray, which really degrades the look and feel of the scene. Even at a pretty bright-feeling gray, this solve still doesn't totally address the banding issues.
Has anyone else experienced these issues? Is there any recommended approach for displaying dark scenes in the Rift?
Thanks!
Julian
We are in the process of porting a Vive title to the Rift and are experiencing difficulty with one of our scenes which is very dark and high contrast (mostly black). There is a lot of extreme banding and a reddish brown tint in the lower color ranges that strongly clashes with the color palette of the scene. The dark color ranges seem unnaturally bright both in comparison to black and the brighter areas of the scene. Finally, there is quite a bit of color "popping" as lights and emissive objects slowly fade from black to non-black.
In researching this, I've seen a lot of discussion among consumers about this issue, which seems to be a side effect of low persistence mode. However it's unclear what is the proper approach to take as a developer -- is this an issue that affects every Rift (all of our internal Rifts have the same issue) or is it less widespread? Should we leave the color as is (what looks correct on our PC monitors and the Vive headset), or should we try to rebalance the color towards what we are seeing on the Rift, assuming everyone's looks the same as ours?
Honestly I am not really sure how successful a rebalancing effort could be, given the inherent darkness of the scene. The color balance and popping seems to be mitigated if I raise the black point, but the predominant color then becomes gray, which really degrades the look and feel of the scene. Even at a pretty bright-feeling gray, this solve still doesn't totally address the banding issues.
Has anyone else experienced these issues? Is there any recommended approach for displaying dark scenes in the Rift?
Thanks!
Julian
3 Replies
- wevr_julianHonored GuestAs an addendum, we are using gamma color space, which I fear is a contributing factor to this...
https://gamedevdaily.io/the-srgb-learning-curve-773b7f68cf7a#.1905sypt9
Anyone know whether the Oculus/Unity integration implements the hack/fix described at the bottom of the article if your project is set to gamma space? Or is that something that we should be tacking on to the end of our render? - delphinius81Rising StarOne thing we had to do was completely avoid true black/whites. I think we rebalanced where we treated 30,30,30 as "black" and 230,230,230 as white. Not really sure that fits into gamma color space though. We just replaced blacks/whites in our scene as appropriate. But this was done more to deal with ghosting than banding.
- lamour42Expert ProtegeIt is somewhat disappointing that this old error still is there. To prevent it I added the following line as last expression in my pixel shaders:
return clamp(alphaColor, 0.0021973, 1.0); // prevent strange smearing effect for total black pixels
I did test a lot and the value you see above seems to be the smallest/darkest possible value to prevent a total black pixel.
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
- 3 months ago
- 1 year ago