🧰
Developer
  • ENGAGE SDK overview
  • Setting up the ENGAGE SDK
    • Registering as an ENGAGE developer
    • Setting up your local git repository
    • Installing the Unity Editor
    • Opening the ENGAGE SDK Unity project
    • Checking for SDK updates
    • Installing a platform build module
  • ENGAGE SDK project folders
  • General guidelines for 3D models
    • Optimizing 3D models
  • Locations
    • Guidelines for locations
    • Creating a new location
    • Building a location bundle
    • Testing a location locally on Windows
    • Configuring an object as a teleport target
    • Configuring the start position
    • Seats
      • Creating a seat
      • Using the summon to seat system
    • Network states
      • Network State Manager
      • Location Network States
      • Example network state configurations
        • Network state toggle object
        • Network state animation start/stop
        • Network state change animation
          • Creating an animation in Unity
          • Using Animator.Play(string)
          • Defining Animator transitions
          • Using Animator.SetTrigger(string)
        • Network state sync animation
        • Network state position toggle
        • Network state automatic door
        • Network state toggle skybox
        • Network state change materials
    • Adding grabable objects to a location
      • Resetting network objects with a button
      • Resetting network objects when out of bounds
    • Locations reference information
      • Basic requirements for a location
  • Immersive Effects (IFX)
    • Guidelines for IFX
    • Creating an IFX
    • Building an IFX bundle
    • Testing IFX locally on Windows
    • Specialized IFX
      • Animated IFX
        • Animation overrides
          • Legacy animations
          • Animator animations
          • Configuring additional Effect Life Run Control properties
      • Audio IFX
      • Interactive IFX
  • List of available prefabs
  • Available scripts
    • External Video Player
  • Profiling
  • Publishing to ENGAGE
    • Publishing checklists
    • Pushing files to your GitHub repository
  • AFX
    • Getting started
      • Changelog
    • AFX Graphs
      • Creating an AFX graph
      • Editing an AFX graph
      • Navigation and keyboard shortcuts
      • Adding an AFX graph to a game object
      • Nodes
      • Ports
      • Connections
      • Flows
        • Starting a flow
        • Using multiple flows
        • Chaining flows
        • Controlling flows
      • References
      • Using AFX Events
    • Networking AFX
      • Network State Modules
      • Ownership of networked objects
    • Animation curves
    • Node dictionary
      • ENGAGE
        • AFX Companion
          • Constant Collision
          • Grab Object
          • PathData
        • Networking
          • Network State Modules
        • Physics
        • Player
        • Seat
      • Events
        • Collision
        • Unity
        • AFX Events
      • Flow
      • Reference
      • Unity
        • Component
          • Animation
            • Set Parameters
          • Audio
            • Audio Reverb Zone
            • Audio Source
          • Collider
          • FX
          • Rendering
            • Camera
            • Light
            • Material
          • UI
        • Constraint
        • GameObject
        • Input
        • Physics
          • Raycast
            • Layer Mask
          • RigidBody
            • Joint
              • Hinge
              • Spring
          • Wheel Collider
        • Time
        • Transform
          • Get
          • Set
          • Space Switching
      • Variable
        • Bool
        • Comparison
        • Float
        • Int
        • List
        • Math
          • MathF
        • String
        • Unity Component
        • Vector
          • Quaternion
          • Vector2
          • Vector 3
            • Vector3 Math
    • Sample graphs
Powered by GitBook
On this page
  • Optimizing 3D geometry
  • Optimizing textures
  • Using software for optimization
  1. General guidelines for 3D models

Optimizing 3D models

PreviousGeneral guidelines for 3D modelsNextLocations

Last updated 11 months ago

Optimization is the process of making a 3D model as small and refined as it can be. Examples of optimization include the following:

  • Remove unnecessary geometry.

  • Simplify over-complicated geometry.

  • Reduce texture resolution to the bare minimum acceptable visual quality.

  • Reduce the number of polygons and triangles within the geometry of a shape.

  • Reduce the number of materials. E.g., create a texture map atlas.

  • Merge collocated vertices.

Optimizing 3D geometry

Reduce your 3D models to the minimum amount of geometry. Remove any surfaces that will never be seen, such as the interior of buildings that you will only view from the outside or hidden components within a device. If possible, create a textured shell.

Consider the density of the detail in your 3D models and whether it will be appreciated. For example, the two 3D models of a laptop shown in Figure 2 have significantly different levels of complexity. The choice of which model you use would depend on where you intend to place it.

If a model is used as peripheral decoration in a location, such as shown in Figure 3, then users may not notice any difference between the two levels of geometric complexity. However, if the object is used as a focal point in a scene, such as shown in Figure 4, then the additional complexity may be justified.

Optimizing textures

Make your textures as small as they can be without sacrificing the aesthetics too much. Consider how users will view the textures. For example, a billboard may be a large object, but if users will only ever view it from a distance, you can use a small texture. In contrast, if you want the label on a medical vial to be readable, you will need to use a higher resolution image.

Use tiling textures where appropriate. For example, on large surfaces that have either a repeating pattern, such as brick walls, or random variation, such as grass or gravel. A suitable size for a tiling floor texture is 512 px by 512 px.

Ensure that texture images have dimensions that are a power of 2. For example, 64, 128, 256, or 512 pixels. If you supply an image with a width or height that isn’t to a power of 2, it will be rescaled. This may result in undesirable changes to the texture and reduced performance.

Using software for optimization

There are several software tools that you can use to optimize your models. 3D modelling programs such as , , and come with built-in optimization tools. You can also buy plugins to reduce and optimize your 3D models. For example, Simplygon ().

Blender
Maya
3D Studio Max
https://www.simplygon.com/
Geometry for a laptop with 25 triangles (left) and 10,164 triangles (right)
Laptops as peripheral objects in a scene
Laptop used as an integral part of a location