đź§°
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
  • Taking a mobile-first approach
  • Surface orientation
  • Cameras
  • Measuring complexity

General guidelines for 3D models

PreviousENGAGE SDK project foldersNextOptimizing 3D models

Last updated 1 year ago

Taking a mobile-first approach

ENGAGE is a cross platform application that is available on desktop computers, VR systems, and mobile devices. To ensure that ENGAGE runs smoothly on all devices, we optimize our publicly-available content for the lowest supported specification – android and iOS phones and tablets.

If your 3D models will be available to a restricted group of users, and you know what devices they will use, you can tailor your content to the specifications of those devices. However, as a best practice, optimize your 3D models for mobile devices. This ensures that they will run on all devices that ENGAGE supports.

After your files are available in ENGAGE, it’s also important to test them under expected conditions. A model or location may work without any issues when you test it on your own device, but when combined with 50 concurrent users, shared media, and other IFX, it may cause users’ applications to crash.

Surface orientation

Ensure that the surfaces in your models are orientated correctly. The reverse side of surfaces – the backface – will not be displayed in ENGAGE and may appear as holes in your model.

Your 3D modelling application may include tools to help you identify incorrect orientation. For example, Blender includes a option that displays backfaces in red and a option that hides them completely.

Cameras

Remove any cameras from your files before you submit them. If you include a camera in an IFX or location, it may interfere with a user’s view. It some cases, it may make the ENGAGEG application unusable, and users will need to leave the session.

Measuring complexity

In ENGAGE, all polygons are calculated as triangles. If your 3D modelling software provides a count of the number of polygons, then some of those polygons may be “quads”. Each quad has four sides and counts as two triangles in ENGAGE. For information about how to reduce complexity in your models, see Optimizing 3D models.

face orientation
backface culling
Face orientation enabled (left) and backface culling enabled (right) in Blender