Search Unity

3D Model Polygons Optimization

Discussion in 'General Discussion' started by wtchmy, May 13, 2019.

  1. wtchmy


    Nov 10, 2018
    Hello to all!

    Quite recently I started working with Unity, 3D modeling and all the rest. My task was to build a level in unity and record a video through the unity recorder - I do not make the game. I make a cut scene for video recording.

    My problem is that due to lack of experience I did not know that the scene can be overloaded with a large number of models with a very large number of polygons. I did not do these 3d models myself. In general, I made quite a high level and placed a lot of these models there. in the end - the number of tris in the project, provided that all models are displayed - 237M and, accordingly, I can not record video (the camera should just fly through the tunnel).

    Please advise optimization methods in the unity itself.
    I already know about occlusion culling and the LOD system, the Simplygon plugins for Unity and Mesh Simplify.

    I also began to study the DOTS system and the new project for Unity 2019 Megacity - there are hundreds of models and statistics show ~ 200-300k tris with a huge scene load. Maybe there is an option to transfer my models to this project? Will their optimization system apply to my models and solve the problem?

    And another point - from the very beginning, I did a project on a computer with an RTX2060 video card and in general I feel comfortable working in a project even if all the models were displayed. Now I do not have the opportunity to work on that computer and I work on i7 / GTX970. In this regard, I have difficulties.

    I apologize for the stupidity of my question, I understand that I must separately open each model in the 3D editor and reduce the number of polygons, but I need to make this scene as soon as possible.

    I will be glad to any advice and again apologize for my incompetence.

  2. RichardKain


    Oct 1, 2012
    237 million triangles is probably way, WAYYY too much, even for a cut-scene. That is just a crazy-high number of polygons.

    For starters, you should most likely check through your scene, and make certain that proper culling of various areas is set up correctly. A level like that one should not be attempting to draw or even check to draw all of the models incorporated into it at the same time. It should be possible to divide your level up into different chunks and tell the engine to only attempt to render certain chunks when the camera is in certain positions. This would allow you to reduce your drawing and culling to individual corridors at a time, instead of testing against the entire level.

    Past that, it is just a matter of optimizing the 3D models. Unfortunately, the only way to really do that properly is with a 3D program such as Blender. Drop a high-definition model into Blender, and use some manual retopology to reduce it to a simpler model, and assign the UV mapping accordingly. Model optimization is a discipline in its own right, and generally shouldn't be handled automatically.

    The most important aspect for re-constructing 3D models is to strip out any polygons that don't directly contribute to the model's silhouette. Tiny 3D details in the middle of a model can be re-created using UV textures and/or normal maps. Remove those from the model itself and make sure that the outline of the model still looks similar to its high-polycount counterpart.
    sylon likes this.


    Jun 1, 2017
    For a high-end realistic AAA scene you shouldn't need more than a few million tri's on screen at any time.

    If you are going to be a layout artist you need to work with properly optimized realtime models and have basic understanding of how game models are built. The details surrounding that constitute a professional discipline and cannot be summarized in a forum post. The wiki at polycount is a good place to get overview of game art, and also just search on youtube and you'll find plenty of info to get started with.
  4. kdgalla


    Mar 15, 2013
    Always use the profiler to see where your performance problems are. Not sure how detailed it gets for rendering but it might give you more info.

    Do you have multiple shadow-casting lights? That will blow-up your poly count far in access of your actual level geometry. If you do, you could probably get a performance boost by setting the lights to be baked-only and baking a lightmap.

    I imagine that baked occlusion culling would probably help, though I don't have much experience with that. Once bake the volumes, this feature will automatically hide parts of the level that are behind walls. that way the renderer doesn't waste time rendering things that you cant see at that moment.

    Depending on where you got your models, they may not be intended for use with real-time graphics and you may have to "decimate" them some like others have suggested.