Page 1 of 1

More... more units

Posted: Thu Mar 24, 2005 7:09 am
by iRz
Hi guys. I develop game and need to display very(very!) many animated lowpoly models(2-5 original meshs), like SkeletonDemo.
Anybody know how do it faster?

Posted: Thu Mar 24, 2005 8:27 am
by johnhpus
Hello, welcome. Your question probably won't get answered because it doesn't really make any sense. I mean no offense and I understand that English isn't your native language.

I noticed that you are from Russia and I thought I'd point out to you that there is a Russian language Ogre site where it might be easier for you to communicate. Your still welcome here of course. Feel free to reword your question and try again if you want to.

Could someone who knows the website address please post it for our friend?

Posted: Thu Mar 24, 2005 8:29 am
by johnhpus
Actually, here you are: http://www.ogre3d.h14.ru/e/news.php

Posted: Thu Mar 24, 2005 10:48 am
by Kencho
I think he's talking about rendering a high amount of animated low-poly meshes at the same time (maybe a RTS game?).

I would suggest Octree scene management, and intensive use of LOD for those meshes ;)

Posted: Thu Mar 24, 2005 11:37 am
by iRz
johnhpus wrote:Actually, here you are: http://www.ogre3d.h14.ru/e/news.php
ok, thanks. sorry 4 my english.

Posted: Thu Mar 24, 2005 11:39 am
by Whitebear
johnhpus,
You have a chance of working as a teacher of good english language for poor Russians: :)

iRz wrote: :oops:
Anybody know how do it faster?

must be written: :shock:
Does anybody know how to do it faster?

...or something alike.

I'll be the first (not the best) pupil. :wink:

Posted: Thu Mar 24, 2005 2:04 pm
by monster
johnhpus wrote:Your still welcome here of course.
Not a good start for an English teacher!
;)

@ iRz
What kind of scenes are you trying to display?

Yes culling and LOD will get you so far, but you have to realise that there is a finite limit to the amount of scene nodes that you can put into a scene before you start hitting a bottleneck. Even if they're at the lowest LOD and they're mostly culled you still incur quite a substantial cost due transformation and culling calculations. When I was developing Tranz Oz I noticed a massive performance fall-off around the 1000 scene node mark, that might vary depending on your hardware.

If you possibly can you need to bake as much as you can into static geometry. For things in the very far distance try using animated textures on billboards.

If you can show us the kind of scene you'd like to render maybe we can offer some more targeted advice.

Posted: Thu Mar 24, 2005 2:18 pm
by Kencho
Depending on the game mechanisms (specially camera ones), you can still do some raw and fast calculations to disable completely far scene nodes. Just a suggestion; I've never faced this problem ;)

Posted: Thu Mar 24, 2005 4:34 pm
by SpannerMan
Kencho wrote:I would suggest Octree scene management, and intensive use of LOD for those meshes ;)
Sorry for the noobish question, but would Octree really be a good solution for culling numerous moveable entities? I was under the impression that octree was only good for partitioning / culling static scenes. If you have a big amount of moving objects (say, lots of soldier units running around fighting), wouldnt the octree have to keep updating / recalculating based on the constantly changing positions?

Whilst were on the subject, can anyone point me to some tutorials concerning octree in conjunction with OGRE?

Posted: Thu Mar 24, 2005 4:40 pm
by Kencho
I'm not sure, but I think all these cullers act the same way: You check which sectors (in this case, the octree nodes) the scene node touches in some way, and then cull the appropiate scene nodes. I guess it's the same principle as with BSP culling, but I'm not sure if they work this way (but testing them made me think that after all...)

Posted: Thu Mar 24, 2005 6:37 pm
by sinbad
SpannerMan wrote:Sorry for the noobish question, but would Octree really be a good solution for culling numerous moveable entities? I was under the impression that octree was only good for partitioning / culling static scenes. If you have a big amount of moving objects (say, lots of soldier units running around fighting), wouldnt the octree have to keep updating / recalculating based on the constantly changing positions?
It does, but in practice this is not expesive - it's an AABB containment calculation which is pretty fast.
Whilst were on the subject, can anyone point me to some tutorials concerning octree in conjunction with OGRE?
There aren't any tutorials at the moment, mainly because there isn't a lot to say. It's a standard loose octree implementation, the only really interesting thing are the options you can set on it, namely the Size and Depth of the octree - and you only need to play with those on very large scenes. Other than that it just works with the user not really having to care that it's an octree at all.

Re: More... more units

Posted: Thu Mar 24, 2005 11:50 pm
by bana
iRz wrote:Hi guys. I develop game and need to display very(very!) many animated lowpoly models(2-5 original meshs), like SkeletonDemo.
Anybody know how do it faster?
I don't believe this has been said yet, but make sure and look into Hardware Skinninng for your animations (skeletal I'm guessing). As this will allow you to do much more in the GPU and save large amounts of CPU - AGP traffic and so forth (IIRC).

I don't believe that static geometry (or baking as it is known) would help you here, as each is moving (animated) and the large savings from baking generally come from the reduction in the number of transforms necessary for all the separate meshes, wheras since they are animated, this wouldn't be possible.

Posted: Fri Mar 25, 2005 8:44 am
by tuan kuranes
shader instancing ? or does hardware skeletal animation already gives that ?

(I mean exactly same draw call for many entitires, using max shader parameters possible to specify positon and animation see GDC 2005 far cry paper or Humus Instancing Demo, only one parameter would change, giving object number that points which parameters to use for this object.)