I wrote a procedural generator and it saves the output for the Meshes in a text file. Then I wrote a python3/Blender script which parses through that text file and creates the meshes from the input. The parsing itself is not fast but definitely within reasonable time.
However when I run blender (blender --python parsetext.py) with more than ~12000 Polygons, Blender turns grey on startup and stops responding (My computer turns quiet - Blender seems to stop doing anything). When I run the script with slightly fewer Polygons it works just fine and also the rendering / in-Program movement works flawless.
It seems like there is some kind of Limit in how many Objects Blender can save or that Blender adds Objects in a weird way (recursively...?!?! recursion depth reached or something along those lines maybe...!?!?).
Has anybody else had this problem? It really seems like Blender should be able to handle more than ~12000 Polygons.
Else, could someone think of a way to save/load my meshes from the script more effectively? (I can't find anything useful on the .blend file format though)
I tried following some advice concerning merging objects. Before that, each Polygon was created with createpolygon() with a list of coordinates and a texture. The object was then linked to the scene.
Now createbuilding() gets called which calls createpolygon a few times but then tries to join the objects. However, I get a segmentation fault error.
def createpolygon(coords,texture,length): me=bpy.data.meshes.new('mesh') ob=bpy.data.objects.new('mesh',me) me.from_pydata(coords,, [range(length)]) me.update(calc_edges=True) try: me.materials.append(materialslist[texture]) except: pass return ob def createbuilding(obj,texture): meshes= for me in obj: ob=createpolygon(me, texture, len(me)) ob.select=True meshes.append(ob) bpy.context.scene.objects.link(ob) bpy.context.scene.objects.active = meshes bpy.ops.object.join()