docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Optimization guidelines

    The frame rate must be optimal for real-time 3D applications.

    You can reduce the frame rate of CAD models to less than 60 frames per second. CAD models may have complex topologies, which translates into a high polygon count, but may also have many parts and materials, which translates into many draw calls.

    Reduce the polygon count

    When you import 3D models, Asset Transformer Toolkit runs a generic optimization process. By adjusting import parameters, you can customize optimization, for example to control the overall quality of imported meshes.

    Tessellation algorithms and decimation algorithms use these parameters to lower the polygon count until the target quality level is reached. To create different quality levels, generate levels of detail (LODs).

    If the polygon count is still too high after import, you can apply other strategies, depending on your model and your needs. You can process models in different ways:

    • Manually using the Toolbox
    • Automatically using the Rule Engine

    Decimate your model

    The most common way to reduce the polygon count is to decimate meshes. You can decimate meshes at import.

    Decimation works up to a certain limit, after which geometries are too damaged.

    From the Toolbox and the Optimize group (second), choose Decimate.

    Delete occluded geometries

    You can delete inside geometries.

    This processing proves particularly efficient on these models:

    • Models that have internal parts
    • Models that have been designed as solids
    • Models that have been designed using CAD software

    Approximate your source models

    With Retopologize, you can approximate your model by generating a single proxy mesh with baked maps (e.g. surfaces details are transfered into a Normal map), reducing the polygon count.

    Alternatively, you can create an impostor for long-distance models:

    Image

    These optimization strategies are leveraged to create LODs in the LOD Generator.

    Reduce the number of draw calls

    A draw call is a command that is sent by the CPU to the GPU to draw something on screen. Because the CPU and the GPU have different purposes, they only briefly communicate during the rendering of a single frame.

    The more time is spent on draw calls, the less time is left for the GPU to execute these commands during the remaining frame time. A good strategy is to reduce the number of draw calls or to group commands into a single batch command.

    Note

    Unity has capability to optimize the number of draw calls, for example through static batching, dynamic batching, and instancing of GPUs. These features work well in many cases, especially for games where many objects are instantiated multiple times. However, in the industry, the number of objects (parts) is much higher. Unity is often unable to batch these draw calls efficiently. ECS (or DOTS) improves performance by simplifying memory layout and allowing more effective compilation of code. However, ECS doesn't fix such draw call issues, even if it can heavily leverage the instancing of GPUs.

    We recommend that you simplify the product structure and reduce the number of submeshes.

    Merging bjects is the easiest way to reduce the number of draw calls, but has two disadvantages:

    • Merging flattens the hierarchy. You can choose to merge models at specific levels, to merge only the subassemblies that represent a set.
    • Merging destroys the instances of a same object. If your assembly mainly consists of many instances, merging might not be greatly beneficial.

    Use the Merge action and its different modes accordingly with your strategy, either in-Editor from the Toolbox or in a Rule, potentially attached to an importer so the merge happens with the import process.

    An alternative to merging for reducing draw call is replace your model with a retopologized version or with an impostor, which also reduces the polygon count and the number of meshes.


    Use smart combination of the strategies listed above to optimize your models and scene:

    This example shows the combination of Decimation + Bake Materials + Merge.

    In This Article
    Back to top
    Copyright © 2025 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)