🧰
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
  • Loading the profiler IFX
  • Evaluating profiler statistics
  • Frames per second
  • Vertices and TriCount
  • Batches and draw calls
  • Memory

Profiling

PreviousExternal Video PlayerNextPublishing to ENGAGE

Last updated 11 months ago

The public IFX library includes a profiling tool that you can use to evaluate the performance of your locations and IFX.

  • If you want to evaluate a location, start a session in that location and then load the profiler IFX.

  • If you want to evaluate an IFX, start a session in the location where you are most likely to use the IFX. Alternatively you could use a simple location, such as one of the creator rooms. We recommend that you then load the profiler IFX to identify baseline statistics, load the IFX that you want to evaluate, and then review the new statistics shown on the profiler.

Loading the profiler IFX

  1. In a session, open your menu or tablet.

  2. Select IFX.

  3. On the IFX page, search for profiler.

  4. Select the ENGAGE Profiler IFX, and then place it in the location.

Evaluating profiler statistics

As a best practice, evaluate your location or IFX on the hardware that you expect your target audience to use.

The lowest specification devices that ENGAGE supports are typically Android phones and tablets, iPhones, and iPads. To accommodate all ENGAGE users, we recommend that you also test on these devices.

Frames per second

The simplest measures of performance are the frames per second (FPS) statistics: Current FPS and Average FPS.

  • For a location, when you are the only user present and no IFX are loaded, we recommend that you achieve a minimum of 60 fps on a modern VR headset, and 90 fps on a desktop device.

  • For an IFX, it will depend on your intended use. However, we recommend that an individual IFX does not lower the framerate by more than 3 fps.

The frame rate provides an overall measure of performance and is determined by all of the other contributing factors. For guidance on how to improve the frame rate, see the following sections.

Vertices and TriCount

These statistics represent the complexity of the geometry. For recommendations on the number of triangles (TriCount), see Guidelines for locations and Guidelines for IFX.

Batches and draw calls

These statistics count the number of requests that are made to the graphics system of the device each frame. We recommend that the number of draw calls remains below 80 for mobile devices, and below 400 for desktop devices.

Memory

Memory usage indicates how much information your assets include. This includes the geometry, as described in Vertices and TriCount; lighting and reflections, as described in Batches and draw calls; and also textures.

The following sections describe some of the main statistics that the profiler IFX displays, and how you can improve them. Many of the statistics match those used in Unity's Memory Profiler module, and you can find more information about them in the .

For information about how to reduce these values, see .

You can improve the efficiency of your assets, and reduce the values for these statistics, by using fewer materials, combining materials, using baked lighting instead of dynamic lights, and removing reflection probes. You may also be able to improve performance if you combine meshes. For more information, refer to in the Unity documentation.

For information about how to reduce the memory required for textures, see .

Unity documentation
Manually combining meshes
Optimizing 3D geometry
Optimizing textures
Profiler Tool