Merging two objects

I am new to Panda 3D, but not to 3d game development.

I found that I could only manage 250 objects in a scene, even with instancing.
It isn’t the amount of polygons, I can have 250 objects with one quad’s(a grass blade) or 250 objects of 9600 quad’s (a field of grass) before the fps hit 60.

My game will be very graphic intense, with about 50-100 objects for grass and the same for trees leaving around 50 for all the game related objects.

How do I join two or more grass nodes into a large grass field node?
Will I be able to edit the node to update it as the player moves?
Is there some way I can manage more nodes or a less expensive node?

Some of the issues you raise should be covered in this section of the manual:

Performance Tuning

Also, if you post the results of “render.analyze()” for your scene the problem could most likely be identified. I’d guess you have too many geoms in your scene, see the last portion of this thread for an explanation: Panda3d Performance questions

In the manual under: Panda3D Manual: Performance Issue: Too Many Meshes, thy address the problem.

Unfortunately the NodePath.flattenStrong() and it’s counterparts all join the meshes into one mesh based on the original loaded mesh, this causes clipping errors.

The RigidBodyCombiner works the way I wan’t, it merges two or more meshes by using the reparentTo() function.
However, It appears that it is meant for objects that move through the 3d environment and could be more expensive than I need, because most of the objects won’t move.

Is there some kind of static combiner?
Is the RigidBodyCombiner better than joining the meshes my self with a geometry shader or Panda3d’s MeshDrawer() function, deleting the objects and adding a node with the new mesh?

To prevent clipping from becoming expensive, just use flattenStrong after reparenting your nodes to a dummy nodes in bunches. Ie. a cluster of trees that are fairly close together would be flattened together.

I was already using this method thanks to cslos77 links, after some physics tests I realised my models where HUGE compared to Panda3D’s scale and this was causing the clipping errors and not NodePath.flattenStrong().

I am now using NodePath.flattenStrong() and a dummy node with good results, thanks for all the help.