Forum Discussion
rcopperwaite-b4
9 years agoHonored Guest
New OVRManager.eyeTextureFormat R11G11B10_FP seems to have no effect
'Oculus Utilities for Unity 5 1.16.0-beta' claims to introduce the new eye texture formats R16G16B16A16_FP and R11G11B10_FP to "remove banding from dark colors".
Linked below is a Unity project designed to demonstrate the effect of the new eye texture formats. The scene contains an inverted sphere, lit by a single directional light at 0.05 intensity. When viewed in VR, the viewer sees 12 concentric circles of decreasing brightness, representing the lowest 12 brightness values in the LDR spectrum. The spacebar toggles between the default eye texture format, and R11G11B10_FP. With the latter texture format, I would expect to see those LDR rings turn to a smooth radial gradiant, but I see no such effect. The project was created using Unity 5.6.0f3.
https://drive.google.com/file/d/0B0Ub2k8Cl3YRVFJVTFlzaEM0VkE/view?usp=sharing
Is there some important step I'm missing in order to be able to make use of these new eye texture formats in Unity?
Linked below is a Unity project designed to demonstrate the effect of the new eye texture formats. The scene contains an inverted sphere, lit by a single directional light at 0.05 intensity. When viewed in VR, the viewer sees 12 concentric circles of decreasing brightness, representing the lowest 12 brightness values in the LDR spectrum. The spacebar toggles between the default eye texture format, and R11G11B10_FP. With the latter texture format, I would expect to see those LDR rings turn to a smooth radial gradiant, but I see no such effect. The project was created using Unity 5.6.0f3.
https://drive.google.com/file/d/0B0Ub2k8Cl3YRVFJVTFlzaEM0VkE/view?usp=sharing
Is there some important step I'm missing in order to be able to make use of these new eye texture formats in Unity?
8 Replies
Replies have been turned off for this discussion
- JianZExpert Protege@rcopperwaite-b4th
Hey, the FP eye buffer format only works on Unity 5.6.1p1 or newer versions, we'll have a better document coming.
And we noticed it can't help on all cases if the precision had been lost before writing to eye buffer, for example, this can happens on 8 bit gradient texture filtering .
I tested your sample, I do see the banding overther, need investigate a bit more why.
Also attached our test project which we used to verify the tech, can you help to confirm if it is working for you, ( note on Unity 5.6.1p1 ) - JianZExpert ProtegeHey @rcopperwaite-b4th
I did a renderdoc capture, found you are using unity's "Gamma" color space, which result an image effect pass to convert frame buffer data into sRGB8, which results precision losing.
if you go playerSetting->ColorSpace to change it to linear, the new format should work well.
Also those new fp format are not supposed to work under Unity's "Gamma" color space by design, we'll document it more explicitly and add some warning log if developer was trying to do that, thanks for testing
Let me know if you still have issues - rcopperwaite-b4Honored GuestPerfect! That's exactly the information I needed. Thanks for your help!
- rcopperwaite-b4Honored GuestHey @JianZ
Just out of curiosity, could you provide a little more information about how this feature works in Unity under-the-hood? I'd expected to see the floating-point gradient return to LDR color banding if the Camera had its allowHDR flag set to false, or if an Image Effect had the ImageEffectTransformsToLDR attribute assigned to it, but I'm actually seeing very little change to the image in these cases. Does the OVRManager override these features? - JianZExpert ProtegeYes , your guess is right, if you set eyeBuffer Format, we'll promote the intermediate render targets into the highest precision for making sure the precision not losing in the middle.
for examples
* if you are under LDR, and set eyebuffer as R11G11B10_FP, the intermediate render targets will be R11G11B10_FP as you specified
*if you are under HDR + FP16 buffer, and set eyebuffer as R11G11B10_FP, the intermediate render targets will be FP16 ( cause we don't want to downgrade your render buffer ) - rcopperwaite-b4Honored GuestAwesome! Thanks!
- rcopperwaite-b4Honored GuestHi @JianZ,
Although this setting seems to work great on the DK2 and the CV1, I've just had a go at trying to port this test project over to the Galaxy S8 (which has supposedly been HDR Certified)... and didn't have much success.
Firstly, I found that the image was much darker, the diffuse light which was clearly visible on the desktop headsets was pitch black in the GearVR - I needed to increase the light intensity from 0.05 to about 0.5 to actually see it clearly.
Then, when I tried enabling the R11G11B10_FP eye texture format, the image switched from stereoscopic to single-eye, and started flickering rapidly, with no change to the color banding. I couldn't switch it back again.
Is this something you have tested on your end? - JianZExpert Protegehey @rcopperwaite-b4th
This is a PC only feature, we don't have support on Gear VR yet.
Thanks
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 years ago
- 5 months ago