I've been getting into Unity game dev recently. Previously, I've also done some modeling from within Blender. Of course, there's a big difference between the rendering methods on the two different platforms. Cycles can take hours to render, but Unity is real time. Furthermore, I'm planning on developing for the Oculus Rift, so models will have to be mega-uber optimized. And that means I need to know what affects the speed of a render the most.

Verts, Faces, Tris

I've typically paid minimal attention to the Verts, Faces, and Tris in Blender, but now that's different. I need to know which affects the rendering speed the most. I suspect I'll want to focus on making the tris lower, but I don't really know.

Texture Sizes

On top of that, there's textures. Are textures more or less influential in the speed of the render than the afformentioned Verts/Faces/Tris? How can I optimize my textures? Would a lower bit depth do anything or even be worth it? How much does blurring a texture affect the speed?

Blender's Part in this Problem

Evidently, this issue isn't caused by Blender at all. It should be the user's responsibility to optimize their model. The reason I ask this, though, is because I wonder if there are some tools provided by Blender to automatically make a model more efficient. Is there any way to "lower the resolution" of a model to keep the model's shape generally the same while having a lower amount of faces?

As you can see, there is quite a bit about optimization that I don't really understand. There's a good chance that the model complexity and texture size aren't the only factors in optimization. If I am missing something, please bring it to my attention.

  • 3
    $\begingroup$ I'm voting to close this question as off-topic because it doen't seem to be a question specifically about Blender $\endgroup$ – Duarte Farrajota Ramos Jan 2 '17 at 1:37
  • $\begingroup$ As far as I know you shouldn't focus so much on vertex vs faces vs tris, but more on overall face count of your model. Texture content is mostly irrelevant for optimization purposes, blurred or otherwise have nothing to do with performance, what you need to take car of is image sizes which affect mostly memory consumption, and number of different texture files which can require more draw calls. $\endgroup$ – Duarte Farrajota Ramos Jan 2 '17 at 1:41
  • $\begingroup$ If you look into the Subsurf Modifier it can dynamically and non-destructively adjust the resolution of a model by changing the subdivision levels. You may also want to look into baking normal maps from high res to low res models which is a common workflow for making low poly but high detail models for real time display $\endgroup$ – Duarte Farrajota Ramos Jan 4 '17 at 1:50
  • $\begingroup$ I think this question ought to be moved to game development stackexchane, or properly seperated. Are you asking how to optimize a mesh (and in specifically what way), or are you asking what should be optimized in the first place. The first is topical (although probably a duplicate), while the latter (which appears to be the main theme of the question), belongs on game dev stackexchange. $\endgroup$ – GiantCowFilms Jan 4 '17 at 2:52
  • $\begingroup$ As per the edit: Have you tried the Decimate modifier? $\endgroup$ – VRM Jan 4 '17 at 2:55

I'm not an expert and have never used Unity but from my experience the golden rule of optimization is to reduce the amount of draw calls in the CPU. Each mesh in the scene induces a draw call. You should therefore avoid large number of meshes by merging geometries, doing instancing (https://en.wikipedia.org/wiki/Geometry_instancing) = fancy technique of cloning things and in general learning how to calculate stuff with the GPU (shaders). Other things are reusing materials whenever possible and making sure anything not visible on the player's screen is being drawn. All of these are not related to blender though... the only thing you can do in blender is to go low-poly. AFAIK when it comes to textures they are more of a burden on memory than fps.

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.