Learn the best practices for making 3D content in VR.
Making 3D models for High Fidelity (and VR) is different in comparison to making models for films, videos and games. This page details how you can incorporate the best practices for 3D Modeling while you create content for High Fidelity.
Making 3D models for VR is different because of the deviations in the creation process. 3D models for VR are rendered twice (for both right and left eyes). This means that the number of polygons on your model and the number of materials you use will affect your performance. All VR headsets run at 90Hz. This means you’ll have to keep your framerate at 90fps and be cautious about your model’s size. Models that are too big or very complex can slow down the framerate, and it could make people feel nauseous.
While creating 3D Models, check for the following:
Here are some of the key points you need to remember while working on the texturing and materials:
PBR is the concept that governs how light reflects off different surfaces making a model accurately represent real-world materials.
|Metallic (should always either be fully white or black)|
If you’re using the Stingray material in Maya, scroll to the bottom and break connections for the 3 DDS files that are included.
You can define the way different surfaces look while still using one material. Your material can contain separate maps that combine into one material (following the PBR pipeline). Together, these are composited into a single material and drawn in a single draw call.
The number of textures per model defines the rule for the maximum resolution of the model textures:
|Num textures in the model (.fbx)||Maximum resolution (per texture) (M = million, K = thousand)|
|Up to 8||2048x2048 or 4M pixels|
|From 9 Up to 32||1024x1024 or 1M pixels|
|From 33 Up to 128||512x512 or 250K pixels|
|From 129 Up to 512||256x256 or 65K pixels|
When loaded in the engine, textures are automatically resized to a grid of 128x128. This is why to pick sizes which are multiples of 128.
For faster load time and fewer draw calls, keep texture sizes small and try to use just one or two materials per object whenever possible.
If you are a Maya user and using the Stingray PBS shader, be sure to remove connections to the two Global Textures and Brdf Lut image by right-clicking the texture name and selecting Break Connections. This will cut about 2 MB off your model’s bandwidth.
Draw calls: Draw calls happen before something gets rendered on screen. 1 model w/ 1 material = 1 draw call There are no definitive measures for a desirable polycount. You need to balance between draw calls and polys. Fewer draw calls means more room for polys. Smaller textures means more room for higher poly models.
You can debug model material properties in High Fidelity in different ways:
developer/utilities/render/debugDeferredLighting.js, to find the script.