👍Best Practices

Scale and units

Working to scale is important for assets that are meant to be imported to Morpheus.

  • Set your system and project units to Metric for your software to work consistently with Unity.

    • Be aware that different systems use different units - for example, the system unit default for Max is inches while in Maya it is centimeters.

  • Unity has different scaling for importing FBX vs. importing native 3D modeling software files. Make sure you check the FBX import scale settings. For example, if you want to achieve Scale Factor = 1 and Object Transform Scale = 1, use one of the proprietary file formats and set the Convert Units option.

  • If in doubt, export a meter cube with your Scene to match in Unity.

Files and objects

  • Name objects in your Scene sensibly and uniquely. This helps you locate and troubleshoot specific Meshes in your project.

  • Avoid special characters such as *()?"#$.

  • Use simple but descriptive names for both objects and files in order to allow for duplication later.

  • Keep your hierarchies as simple as you can.

  • With big projects in your 3D application, consider having a working file outside your Unity project directory. This can often save time when running updates and importing unnecessary data.

Mesh

  • Build with an efficient topology. Use polygons only where you need them.

  • Optimize your geometry if it has too many polygons. Many models need to be intelligently optimized or even rebuilt by an artist, especially if sourced or built from:

    • 3D capture data

    • Poser

    • Zbrush

    • Other high density NURBS patch models designed for render

  • Where you can afford them, evenly spaced polygons in buildings, landscape and architecture will help spread lighting and avoid awkward kinks.

  • Avoid really long thin triangles.

Stairway to framerate heaven 🙂

550,000 - 800,000 triangles for scene is the good point for Morpheus 3D assets

Materials

Objects like glass see-through windows that use transparent shaders are very expensive. There’s a common practice of adding realism to walls by using a transparent material with a dust or rust texture along with a separate base diffuse material. This multi-material alpha blending is expensive; each material adds a draw call!

However the multiple textures are not an issue; using multiple separate materials is expensive. Use one material and a shader that can blend multiple textures with alpha blending instead of multiple separate materials.

We strongly recommend to use as few materials, as possible

Use simple lit and unlit shaders

Limit PBR usage for several objects in a scene

Textures

If you author your textures to a power of two (for example, 512x512 or 256x1024), the textures will be more efficient and won’t need rescaling at build time. You can use up to 4096x4096 pixels, but we recommend not getting higher than 2048x2048.

  • Make sure your 3D working file refers to the same Textures, for consistency when you save or export.

  • Make use of the available space in your Texture, but be aware of different Materials requiring different parts of the same Texture. You can end up using or loading that Texture multiple times.

  • For alpha and elements that may require different Shaders, separate the Textures. For example, the single Texture, below left, has been replaced by three smaller Textures, below right.

  • Make use of tiling Textures which seamlessly repeat. This allows you to use better resolution repeating over space.

  • Remove easily noticeable repeating elements from your bitmap, and be careful with contrast. To add details, use decals and objects to break up the repeats.

  • Unity takes care of compression for the output platform, so unless your source is already a .jpg of the correct resolution, it’s better to use a lossless format for your Textures.

  • When creating a Texture page from photographs, reduce the page to individual modular sections that can repeat. For example, you don’t need 12 of the same window using up Texture space. This means you can have more pixel detail for that one window.

Texture memory budget for a place is 400-500Mb, try to keep it in the range.

Last updated