Say I have 10 models in the scene. They all have 3 materials on them (Red, white, and blue). I am using these same 3 materials over and over again on all of my models. Is my game going to run faster if I bake the textures of all of my models and make separate materials for each model, or if I continue to link the 3 materials on every model?

I'm using Blender Game Engine.

  • 1
    $\begingroup$ I am not sure how the Blender Game engine handles rendering internally. If it first renders all objects that share one material (while keeping the material active all the time) and then all objects with the next material and so on, having only three materials will be faster: the OpenGL states have to be switched less frequently. Switching to a different texture for every object would be much slower. $\endgroup$ – maddin45 Jun 11 '14 at 14:46
  • $\begingroup$ As @maddin45 says - in engines like Unreal Engine 3, 4, you will definitely benefit from reusing shaders on multiple objects. There's a system in UE called Material Instances, which allows you to change only single parameters (like a texture) per object, keeping the rest of the shader untouched. $\endgroup$ – Oskar Świerad Jul 2 '14 at 8:48

Even if Blender did something non-efficient, like making new shader for each object, there still would be an obvious benefit which @maddin45 mentioned. The less textures you have (the more you combine them in big atlases), the better.

As for the models themselves, think of modularity - make LEGO-like pieces and duplicate them. http://blog.timothyeustace.com/2012/04/gears-of-war-wireframes.html


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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