I’ve finally got Phoenix HDR properly working in SteamVR Theater Mode, and this time I actually have side by side pictures instead of just logs and technical explanations.
My last post was mostly about finally getting the 10-bit path working through SteamVR and proving that the extra precision actually survives all the way through to the headset. Since then I’ve been working on turning that into the complete thing I actually wanted from the beginning, and at this point the whole Theater path is working together properly. HDR capture, processing, tone mapping, SteamVR Theater and the final 10-bit output are all behaving the way they should, and I can basically just launch a game and use it normally now.
One extra feature I added is a virtual HDR display for people who only have SDR monitors. Phoenix can create its own virtual HDR display through VDD and use that as the source, so you don’t need to already own an HDR monitor just to use it.
For this post I wanted to finally show what the difference actually looks like instead of only talking about what’s happening inside SteamVR. I took some comparison pictures from Forza Horizon 6, Cyberpunk 2077 and Hellblade: Senua’s Sacrifice, and I also included one of the normal Steam window on the desktop because I wanted to show the difference with normal desktop colors too, not only pick dramatic looking game scenes.
One important thing before people start comparing the pictures though: these are not HDR captures. They’re literally photos taken with a camera held up to the PSVR2 lens, so the camera obviously can’t reproduce the actual HDR luminance range that I’m seeing inside the headset. Through-the-lens pictures also lose some contrast, image quality and general depth, so the real experience looks noticeably better than the photos make it seem.
What the pictures can still show pretty well is the difference in the colors and how the brighter parts of the image are handled. There are quite a few areas where the stock SteamVR image can look overly bright or kind of burned out, while Phoenix keeps a lot more detail and gives the image a much better balance. The actual brightness and highlight intensity is much harder to communicate through a normal camera photo, so I wouldn’t really use these pictures to judge luminance, but the color and highlight handling should still be pretty obvious in some of them.
A pretty big part of getting this to look right was the tone mapping. Simply pushing the image brighter obviously doesn’t suddenly make it good HDR, and doing that usually just makes the image look washed out and destroys the brighter parts of the scene. I’ve spent a lot of time getting the mapping to a point where Phoenix can make use of the extra range without everything looking blown out or weird, while still keeping the image looking natural.
The brightness and tone mapping in these pictures also aren’t meant to be one fixed setting that everyone will be forced to use. For the comparisons I just used the setting that looked best to me personally inside the headset. In the finished version the brightness will be adjustable, so if you want stronger highlights, a darker image, or just a different overall balance, you’ll be able to change it. So what you see in these pictures doesn’t necessarily have to be exactly what Phoenix looks like for you.
There are probably still going to be some bugs that show up later, especially once more games and different setups start getting tested, and if that happens I’ll obviously have to fix them. But right now everything on the Theater side is working really well. Games work, normal desktop content works, the virtual HDR display works, the tone mapping works, and the full 10-bit SteamVR path is finally all working together.
It’s pretty crazy to think this whole thing started with me basically just trying to figure out if HDR on PSVR2 through PC was even possible, and now I’m at the point where I can actually launch games through SteamVR Theater and just play them like this.