Hi, checking a very low FPS app with pstats it appears that the collision traverser ctrav is eating a lot of time.
More precisely App:Collisions:ctrav:pass1 is reported to be in the range of 75ms, and obviously is killing the FPS.
Any ideas or hints on what could be the issue?
BTW. on top of this I have too a Wait:Flip:Begin time of 20ms, and a Draw:Window1:dr_0 time of 32ms … what’s this stuff?
that means your collisions are taking up too much.
Try using optimized collision geom’s, look into [url]Egg Octree] the egg octree script… find the one (about third page) by Treeform.
Draw:Window1:dr_0 means (in my experience only) that objects are being sent to the graphics card.
If you have lots of model’s that have several GeomNodes (peices that where perhaps never joined/merged/flattened in your model) then try calling mymodel.flattenStrong() which will flatten the underlying node structure to a single node.
Hope this helps any bit at all, if my information is any bit accurate…
Hi PowerUp, thanks for your input.
The point is I already flattened (strong) my model and tried unsuccessfully to octreefy it (see my previous post [Optimize egg for collision (octrees?)) ).
I tend to think the octree scripts have trouble with the structure of my egg file (the VertexPool is not found certainly because it’s buried under several Group nodes…) Still waiting from some Guru’s help on this.
Running pstats shows:
3.7Mb of Vertex Data
120 Transform states
82 Mb System memory
291 Geom cache size
7 Collision nodes
74334 Collision volumes
I don’t know if this could give some hints.
BTW. What is the equivalent of node.analyze() in C++
Perhaps flatten strong larger chunks, from what I’ve read around the forums, 500 GeomNodes is… about two hundred more than the average graphics card can handle…
(I could be wrong, that’s why I’m saying give it a shot and see what happens)
Try to reduce the GeomNodes using flattenStrong() in larger chunks, and see how the draw performance in pstats is. Also report back with the number of geoms you where able to push down to… that should help.
I know of no C++, honestly, try the API doc perhaps (that’s the best I can say)
Best of luck reducing the load,
What do you mean by flatten strong “large chunks”?
The point is I’m already using a flatten strong on my whole landscape, I don’t know what I can do more in term of flattening.
BTW. any idea about the meaning of Wait:Flip:Begin time ? Is it a time lost purely waiting (for what I don’t know)??
flatten will undo the effect of any octree structure.
for the visual models you’d want to have few, large geoms. for collision you’d want to have a manymany small geoms arranged in a hirarchical way.
500 geoms in your scene are not much of a problem. except if you have all of them visible on the screen at the same time.