Designing for VR/XR

Hello everyone,

I am in the design phase regarding assets for a VR experience and would like some input regarding in-world measurements and optimizations, including navigation meshes.

What is the most commonly used scale for creating assets? I am currently proceeding with the average eye line height of 1.6m for adult males for the sake of simplicity (for now), but I am open to alternatives.
The major questions are:

  1. Do I Need a Navigation Mesh?
    I will be using Blender to do my modeling, relying on heavy instancing to keep my draw calls low (more on this later). Do I need to design a “walkable area” in Blender, or can I just apply checkCollisions to the instances that build my interiors?

  2. Assemble in Blender or in Babylon?
    Is it better practice to optimize using Linked Objects in Blender to assemble structures before exporting, or is it more advisable to export one-offs of each “instance” geometry and use Vector3 to “assemble” structures inside of BabylonJS?

  3. Max Cap on Triangles in VR?
    Even though performance is largely a case by case scenario dependent on the hardware running the scene, is there a general upper bound on the number of triangles a scene can have, given heavy use of instancing, before performance is noticeably impacted? In short, how heavy does the use of instancing need to be?

Thank you for your patience, there is still so much to learn!

Hey!!

Typical VR experience tend to use meter as unit.

  1. If you plan to use teleportation, it is an excellent idea to have invisible bounding boxes used to simplify the picking process (If you use the VRHelper, you can specify a predicate to let the system knows which meshes are candidate for teleportation)
  2. Both work.
  3. The lower the better :slight_smile: It depends on your target hardware. Vive + beefy PC? Occulus Quest? best option is simply to test and do some benchmarks
3 Likes

Thank you for the fast response. :slight_smile:

Regarding answer 1, I wanted to have “walkable areas” like in this playground: https://www.babylonjs-playground.com/#YB006J#75

Teleportation may become a feature added later, but I will only have one location to explore in the initial design.

1 Like

Sounds good! Walkable areas will have the same constraints. Keep then as simple as possible so the collision engine will stay smooth

I am still getting used to the idea behind Linked Objects, so I may not understand them fully yet.

My initial plan was to use Linked Objects / instances to piece together a space ship. The ship will have an interior and an exterior, largely constructed out of a finite number of geometries. The geometries will be translated, rotated, and in some cases scaled to achieve the final ship design. Is this a correct usage of instancing?

yup this should be all good