Viewport culling

Hello everyone,
I couldn’t understand that in my viewport there couldn’t see anything but the fps is too low. Who can tell me what happened here?

430 objects in the scene on android is too much.
you should not get over 100.

FPS is not only affected by the scene graph. Check what you are doing in simpleUpdate, which executes every frame. If there is something that takes too much time, it will lower your FPS.

@nehon

@FrozenShade

I will try to reduce the objects, and I know it does affect the performance.
But in my viewport couldn’t see anything, but some objects is still be rendered (I use instance by the way), shouldn’t it be culled, because there is nothing in my viewport?(it’s expected.)

We don’t know anything about your scene really… so anything we said would be a wild guess.

…so maybe you have too many giraffes. (throwing in my wild guess. ;))

1 Like

Also, 3 million vertices is kinda high for Android too.

OK, maybe I need to make my trouble clearly. I use the “BatchNode” in my scene, and the culling confused me, because it looks abnormal, the detail is in all pictures there should show more than 150k Vertices, but the vertices are less and less in fact. In the pictures “camera’s look at” are a little different. What’s the matter?

If you’ve batched heavily the maybe your bounding box of your batched object is never really getting culled even if you don’t happen to see any mesh at that given moment.

…I have gotten a crick in my neck from seeing if the screen shots showed any of this information, though. :slight_smile: (didn’t see it)

@pspeed

Maybe I have batched heavily.
What I do now is that divide the scene into 10 parts, like below:

And there is a “BatchNode” in every part, and I put nearly all models in the part into the “BatchNode”, then I use the method “GeometryBatchFactory.optimize(batchNodes[i]);”, it display normal; But when I change the method to “((BatchNode)batchNodes[i]).batch();”, it display abnormal.(the batchNodes[i] instanceof BatchNode is true).
What’s the matter?

I noticed that the “BatchNode” is still experimental in the wiki.
http://wiki.jmonkeyengine.org/doku.php/jme3:intermediate:optimization?s[]=batchnode

• Using the still experimental BatchNode allows batching Geometry while keeping the single Geometry objects movable separately (similar to animation, the buffer gets updated per Geometry position).

And what I want to know is that when I use the “BatchNode” what it is I should mind?
Thank you very much.