I came for a counsel this time.
For some time, we try to improve the performance of our program. It start to become quite big, and quite slow.
I’ve try to improve it with different technique so far, but it is still lacking in a lot of field.
My scene is a big city, with a lot of element, that can be seen for either really close view, in a top_down view(the most used).
It can used more than 50000 independent object ( and we had to stop there because we crash/ became unusable).
here a little render.analyze(): ( 3 fps)
> 41516 total nodes (including 0 instances); 0 LODNodes. > 13996 transforms; 33% of nodes have some render attribute. > 14144 Geoms, with 416 GeomVertexDatas and 4 GeomVertexFormats, appear on > 13972 GeomNodes. > 41851 vertices, 41851 normals, 0 colors, 41851 texture coordinates. > 10018 normals are too long, 0 are too short. Average normal length is > 1.00531 > GeomVertexData arrays occupy 2285K memory. > GeomPrimitive arrays occupy 143K memory. > 19 vertices are unreferenced by any GeomPrimitives. > 70 GeomVertexArrayDatas are redundant, wasting 203K. > 39 GeomPrimitive arrays are redundant, wasting 17K. > 1227407 triangles: > 167782 of these are on 49711 tristrips (3.37515 average tris per strip). > 1059625 of these are independent triangles. > 153 textures, estimated minimum 245653K texture memory required.
One thing I try to improve the performance is the flattenStrong. Since I must still have interactivity with some of the mesh, I can’t really do a flatten at root, but I can still flatten heavily in some part.
then I get: ( 10 fps)
> 9833 total nodes (including 0 instances); 0 LODNodes. > 173 transforms; 1% of nodes have some render attribute. > 5179 Geoms, with 4765 GeomVertexDatas and 3 GeomVertexFormats, appear on > 4815 GeomNodes. > 1789297 vertices, 1789297 normals, 0 colors, 1789297 texture coordinates. > GeomVertexData arrays occupy 98000K memory. > GeomPrimitive arrays occupy 6841K memory. > 3953 GeomVertexArrayDatas are redundant, wasting 9415K. > 4643 GeomPrimitive arrays are redundant, wasting 5077K. > 1208379 triangles: > 137984 of these are on 39757 tristrips (3.47068 average tris per strip). > 1070395 of these are independent triangles. > 156 textures, estimated minimum 250261K texture memory required.
It’s a first step which could be great, except for this lose of memory. On other scene, the loss became larger and start to become unusable.
With a pstat, I see that( without the flatten):
Which are my possibility to improved performance ?
Since I mostly use top_down view, I don’t think a quad_tree can be that helpful, …
I can used Lod node of course, but It seems a lots of work, and I’m not sure it can improve performance that much, since my mesh are still low poly.
so I’m not sure what I can do,…