Forum Discussion

🚨 This forum is archived and read-only. To submit a forum post, please visit our new Developer Forum. 🚨
agent025's avatar
agent025
Honored Guest
11 years ago

idea to improve image stability for low FPS

The simple idea to improve image stability for low FPS:
1) Enlarge texture for rendering (a little bit) if it is possible.
2) Use following rendering algorithm:
1. Get tracking state (Yaw, Pitch, Roll).
2. Render the scene to FOV texture(s) as usual (user’s application).
3. Get tracking state again (Yaw2, Pitch2, Roll2).
4. Calculate dYaw = Yaw2 - Yaw, dPitch = Pitch2 - Pitch, dRoll = Roll2 - Roll.
5. Calculate dX = D * tan( dYaw ), dY = D * tan( dPitch ), alpha = - dRoll (where D is FOV distance).
6. Use (dX, dY, alpha) for rendering part of FOV texture to Oculus screen or rotate FOV triangles by (dYaw, dPitch, dRoll).
For more details see this picture: http://imgur.com/smfGL7u
To my mind this simple idea can help to improve image stability for low FPS. Low FPS leads to lagging; rendered picture not corresponds to real head position after rendering scene to FOV texture. This algorithm required small changes in Oculus software.

3 Replies

  • agnu's avatar
    agnu
    Honored Guest
    AFAIK async timewarp uses a more advanced version of this approach.

    The system renders the image as fast as it can (can be 30fps or so), into an image buffer.
    Asyncrhronously an other thread applies timewarp to the latest actually rendered image buffer, at 90hz, and draws it on the screen.

    Note that the latter is very fast, and has a predictable calculation time.
  • Thanks for answer! Now I see "timewarp" works! But the cause of my first post was the fact, that my DK2 at the OculusUnityDemo shows very bad image. Head rotation leads to doubling the image at 30~45 FPS. And at the SDK "Oculus World Demo" everything good at 75 FPS. So I decided to write "idea to improve image stability for low FPS". Another Demo applications also give bad doubled image. My GPU is Radeon HD6770. Is doubled image at low FPS normal?

    Such a picture I see at the Oculus DK2 when rotate my head http://imgur.com/2gLiZcI, but at the monitor everything is ok.
  • "agnu" wrote:
    Note that the latter is very fast, and has a predictable calculation time.


    Predictable cost, but not time. When the GPU is mostly idle, it will have a predictable time, but when the GPU is under heavy load (which is when you most need async timewarp), then it's impossible to know how long it will take to complete the distortion. That's why we don't have async timewarp implemented in the PC SDK yet.