Skip to main content
Up and Coming
February 16, 2016

Higher level C++ API for Oculus SDK?

Thanks for all the feedback on the scripting language for VR. I did try them all (including SecondLife) but unfortunately they all have some performance issues.

I started working with the Tiny Room demo and actually it works great. I was able to build a lot of the things that I want and was very happy with the FPS rates (judder doesn't make me sick, but it just exhausts me and feels awful).

I was starting to write a bunch of code to do higher level tasks (geometric objects, text, input, etc) but wanted to check to see if anyone had started an API like that or even just more example code.

Cheers

    22 replies

    Up and Coming
    February 17, 2016
    You mean write an engine for you for free ? let me guess… i would say, probably no :)
    Inspiring
    February 17, 2016
    You may want to take a look into my DX12 framework https://forums.oculus.com/viewtopic.php?f=20&t=27502

    It can currently display 3D text, Images in DDS format and textured meshes in my own format. Meshes may be moved and bone animated.

    All shaders are currently very basic without advanced lighting. Lighting, sound, water and terrain effects are the next topics I will put in.

    All the code is on GitHub - feel free to use anything.
    Up and Coming
    February 17, 2016
    Basically what you are describing is the Unreal Engine 4. Go get that and the Oculus intagration and you will have a high level C++ API for the Oculus SDK.
    Inspiring
    February 17, 2016
    It's recommended to use either Unity 5 or Unreal Engine 4 for the best VR support.

    While you can hack around the examples that come with the SDK, they are not really meant to be full game engines and you will be missing a LOT of essential functionality you need to make a game.
    AMD Ryzen 7 1800X | MSI X370 Titanium | G.Skill 16GB DDR4 3200 | EVGA SuperNOVA 1000 | Corsair Hydro H110i Gigabyte RX Vega 64 x2 | Samsung 960 Evo M.2 500GB | Seagate FireCuda SSHD 2TB | Phanteks ENTHOO EVOLV
    Up and Coming
    February 17, 2016
    I've worked with both Unity and Unreal and their FPS are horrible on even the most trivial of scenes. :(

    With the tinyroom demo I could create 100s of models and not suffer a visually noticeable frame rate loss. I really find even a tiny bit of judder very irritating to my brain. Dipping below 90 fps really is a killer.

    I'm doing data visualization, so I really don't need a full fledged engine.

    "lamour42" wrote:
    You may want to take a look into my DX12 framework https://forums.oculus.com/viewtopic.php?f=20&t=27502

    It can currently display 3D text, Images in DDS format and textured meshes in my own format. Meshes may be moved and bone animated.

    All shaders are currently very basic without advanced lighting. Lighting, sound, water and terrain effects are the next topics I will put in.

    All the code is on GitHub - feel free to use anything.


    Thanks. This looks awesome. Pull requests incoming!
    Up and Coming
    February 19, 2016
    "blazespinnaker2" wrote:
    I'm doing data visualization, so I really don't need a full fledged engine.


    Well, you could take a look at OpenSceneGraph, which is open source and have a high level C++ API.
    http://www.openscenegraph.org/
    Up and Coming
    February 22, 2016
    Thanks. I need something more directX however. Looking for very bare metal.
    Inspiring
    February 22, 2016
    Honestly, you're much better off with Unity or Unreal, even if you're not making a game specifically. There is just so much stuff done for you already, it's not wise to try to reinvent the wheel. I know if can seem attractive loading up DirectX and getting 3000fps with a colored triangle, but once you add all the stuff that you need (that are provided by Unreal/Unity) you'll probably end up in a similar place.
    AMD Ryzen 7 1800X | MSI X370 Titanium | G.Skill 16GB DDR4 3200 | EVGA SuperNOVA 1000 | Corsair Hydro H110i Gigabyte RX Vega 64 x2 | Samsung 960 Evo M.2 500GB | Seagate FireCuda SSHD 2TB | Phanteks ENTHOO EVOLV
    Up and Coming
    February 22, 2016
    All I need are gray boxes though :) Millions of them would be very very useful as well

    Maybe some textures for text and other types of data. Maybe spheres (though that could be a perf hit)

    But I'll never really need anything than the most basic shader.

    Data visualization is a completely different problem set than what unity/unreal are trying to do.

    I do however need a high performance ray caster. I did find one that looks interesting:

    https://tavianator.com/fast-branchless- ... rsections/
    Inspiring
    February 22, 2016
    Rendering millions of objects at once (even untextured gray cubes) is going to be tough with any solution. I guess if they weren't animated you could combine them into a static mesh, and that could be OK. But if they have individual motion or different shaders then you'll have a tough time.
    AMD Ryzen 7 1800X | MSI X370 Titanium | G.Skill 16GB DDR4 3200 | EVGA SuperNOVA 1000 | Corsair Hydro H110i Gigabyte RX Vega 64 x2 | Samsung 960 Evo M.2 500GB | Seagate FireCuda SSHD 2TB | Phanteks ENTHOO EVOLV