Skip to content
This repository has been archived by the owner on Nov 1, 2021. It is now read-only.

Annwvyn Experimental 0.2.4 Now compatible with SteamVR? o.O

Pre-release
Pre-release
Compare
Choose a tag to compare
@Ybalrid Ybalrid released this 31 Aug 12:20
· 1990 commits to master since this release

After changing the API to use an abstract "OgreVRRender" object as the renderer, The path for compatibility with other VR system was open.

This rerelease comes with 2 major improvement :

  • Resource management through RAII and smart pointers instead of relying on naked pointers and manual memory release. This permit to greatly simplify the code
  • Compatibility with OpenVR (SteamVR) through an "OgreOpenVRRender" class.

AnnEngine will use the correct renderer object if "-rift" or "-vive" is provided as a command line argument. This is completely transparent for the library user.

And now, a change sumary:

  • Added script to fetch runtime DLLs
  • App manually keep track of frame index
  • Comfort adjustment (reduced vertical rotation speed)
  • OpenGL texture copy in AnnConsole optimized
  • Corrected subsystem update number
  • Removed some useless test code
  • Correctly detect the presence of an XBox controller instead of assuming it's the 1st controller on the system
  • Use of smart pointers
    • subsystems are shared_ptr
    • game objects, lights, and triggers are shared_ptr
    • Physics initialization simplified, and keeps shared_ptrs
    • Event listeners uses shared_ptr
    • Level Manager can return shared_ptrs to previously loaded objects
    • Cached save data object are shared_ptrs
  • Fixed bug were Resource manager was accepting a reserved resource group name
  • Added Vive rendering
  • Changed the reference point of the player from it's head (center of eye plane) to it's feet (ground point in the center of the feet).
  • Added launcher script that boot the engine in Rift or Vive mode in a click
  • Example code has a physics test level with black baground and no gravity, to be able to check the relationship between the physics engine and the head tracking
  • The engine close when it receive a quit event from SteamVR

"0.3" will be the support for "hand controllers" and a proper way to specify "untilisation context" (seated, standing, room scale, virtual cocktpit".

Also, there's some problems in the physics implementation. Sometimes the time doesn't update in the physics. This is a known problem for a while, but I'm unable to track it down.

There's multiple things I'm not happy with the way the physics is handled, I don't know if BtOgre is to blame. I will probably ditch it completely and write my own physics object initialization code.