Open fww0071215 opened 1 year ago
That sounds like it could be normal reprojection behavior. The compositor will reproject each frame by predicting from the latest received poses, and the more the pose differs from the pose the application rendered the frame with, the larger the gap will be. Usually the area should be small enough that it's not visible through the HMD lens.
If you are making a custom HMD, it might be a good idea to make sure that you are providing correct pose and timing data, as well as updating the poses at a high enough frequency, so that the runtime can make good pose predictions. If the entire display is visible though the lens it might also be necessary to make the field of view larger, and crop out part of the texture.
I use IVRVirtualDisplay to get texture from OpenVR and use D3D11 API to display it on my own win32window. My driver works as follows: I implement both IVRDisplayComponent and IVRVirtualDisplay,and i return the two components in ITrackedDeviceServerDriver::GetComponent. my code in IVRVirtualDisplay::Present is:
my code works well but some times i get some unexpected texture, the black edge seems moved, the first image is normal texture, the second image is the unexpected texture.
This phenomenon is highly likely to occur when the frame rate fluctuates and I am rotating the HMD, which will cause the screen of the HMD to flicker, with black blocks flashing at the edge of the field of view. Can someone help me solve this problem?thanks.