Disable unloading of objects out of view

If you are using the shader generator, you may indeed gain a benefit from using 1.10. Besides the fact that prepareScene now effects the shader generator, I’ve done a bunch of work on improving the performance of applications that use the shader generator, especially when a great number of render states is involved. I’d be happy to hear your experiences.

Panda can’t combine two Geoms together when they have different render states. The render state includes properties like colour, texture and material. So for most effective flattening, parts should share these properties as much as possible. That your model reduces to 3 Geoms probably reflects that there are three uniquely different render states active on parts of your model.

A common way to further reduce this is that instead of having separate textures for each part, you have one big texture, and you use UV mapping to assign each part to a particular area in that texture. This is a lot easier to do during authoring than at runtime, which is why flattenStrong() does not attempt to do this.

Please note that the rigid body combiner has no benefits over flattenStrong() when applied to static parts. It is only useful for systems that have a lot of nodes that move independently, and it does not perform very well for larger meshes, although it may be worth a try if alternatives fail.

What exactly do you mean by “animated objects”? If you are using skeletal animation, you may get a benefit from using hardware accelerated animation, which is new in 1.10. There may also be a benefit for the rigid body combiner, but I’ve never tested that.