viverse logo

Asset Preparation and Best Practices

In this guide you will find information on how to prepare your 3D models to achieve the best outcomes when converting to Polygon Streaming solutions and streaming your models within the supported platforms and devices.

 

PBR Standard for Material and Textures

Physically based rendering (PBR) has recently become the standard in many 3D applications, such as Unity, Unreal, 3D Studio Max and 3D Web platforms. Polygon Streaming is also fully based on this standard, for a more performant and realistic material and textures representations.

This approach differs from older approaches in that instead of using approximations for the way in which light interacts with a surface, a physically correct model is used. The idea is that, instead of tweaking materials to look good under specific lighting, a material can be created that will react correctly under all lighting scenarios.

In case your models are created using legacy standards such as Lambert, Blinn-Phong or Specular-Roughness, they should be converted to a PBR Physically Based Rendering standard before conversion, in order to achieve a correct representation of the materials and textures from the original model.

Models using legacy or custom standards can be converted, however, it’s not possible to guarantee a correct representation of the materials and textures. Using custom standard or custom shader elements may also give failed conversion, since the system won’t be able to proper translate custom elements.

 

Pbr Material

A 3D mesh material node following PBR Standards, which will render correct results.

 

2

A 3D mesh material node following custom standard, which may generate incorrect results.
 

 

Anchor Point Origin, General Transform and Scale

Polygon Streaming maintains the origin point, position, and scale of all 3D objects. When converting entire environments with multiple objects, each object will automatically be positioned at its origin point. You need to make sure you have your objects placed at the correct origin point. If a model is far from the 0,0,0 origin point it will be incorrect for visualization needs, and the wrong origin point will still be translated after conversion. The same goes for the general scale of the model, the scale set for the model will be translated after conversion. Polygon Streaming follows meter units by default, the same as Blender, Unity or Unreal Engine. If the model scale is following another unit system or is set very small on the original model, The model will appear very small after conversion.

3

A model of a 3D cube positioned at the origin point.
 
 
4
 
A model of a 3D cube positioned far from the origin point.
 

 

Maintain Face Orientation / Flipped Normals

Make sure to have your model’s faces facing the correct orientation. In case a face is being oriented in the wrong direction (also known as flipped normals), it will appear transparent depending on the user view-point direction. Face orientation is a design choice and therefore subjective, not possible for an automated system to know which face should be oriented at which direction. The system will follow the original model’s orientation and direction. In case it’s facing the wrong direction on the original model, it will also face wrong after conversion.

Note that our plugins and integrations always provide a double-sided material option, which can be used to avoid flipped normals issues since it renders two sides.

5

A 3D model with faces facing the wrong direction and rendering with issues.
 

 

Avoid Z-Fighting

Z-Fighting is a common issue in real-time rendering, it happens when two meshes are overlapping each other, and the GPU is unable to understand which one to render first. It’s very common to happen when displaying NURBS based models, like CAD or BIM models, in a real-time rendering scenario. In order to have a proper real-time display of your streaming model, make sure to avoid z-fighting by avoiding creating overlapping meshes.

6

Z-Fighting from two overlapping planes.
 

 

Remove Hidden Data

Sometimes a 3D model may have data that is being hidden or enclosed by another object, which will never be seen by the final user. Although there is no issue in converting the model with hidden data, and the hidden data won’t be render, since our player plugins make use of Occlusion Culling. It’s a good practice to remove any data that will be hidden, in order to make the overall model smaller, more concise, faster to convert, and overall lighter to stream.

7

A 3D model of a car showing a large amount of data underneath the bonnet that won’t be seen by the user.
 
 

 

Maintain a Proper Mesh Topology

It’s a good practice to maintain a proper mesh topology. There is no issue in converting a model with a bad mesh topology. However, any 3D visualization issues that comes from a bad mesh topology, will be translated for the streaming model as well. Therefore, in order to obtain the best looking model, with faster and lighter stream. A concise, sensible and well done mesh topology will always give much better results than a bad mesh topology, that may contain weird looking patches, holes, weird looking triangles and faces. The best the 3D model is modeled and maintain a sensible mesh topology, the best it will be streamed.

8

Comparison between a mesh with bad topology on the left, and proper mesh topology on the right.
 
 

Previous

Supported Formats & Standards

Next

Upload and convert a 3D Asset