Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Bug Reports / Odd slow down with limbs and objects

Author
Message
Lost in Thought
21
Years of Service
User Offline
Joined: 4th Feb 2004
Location: U.S.A. : Douglas, Georgia
Posted: 27th Dec 2005 14:05 Edited at: 27th Dec 2005 14:07
If you make an object with lots of limbs and yet hide most of them, the FPS is still very low. With this test code there are 4096 limbs and only 1 is unhidden (12 polys) yet the max fps is 50



Using the same code but modified to use hidden objects instead of limbs the max is 60 fps



using objects with exclude object on instead of hiding gives you a 230 fps max.



If the limb is hidden and all collisions are set to off then what is slowing DBP down?

What else is there to consider in the calcs?

Could we possibly have an exclude limb on command?

re faze
20
Years of Service
User Offline
Joined: 24th Sep 2004
Location: The shores of hell.
Posted: 27th Dec 2005 17:35
dbp probably has to run through all of the limbs for each loop thus being slower per render because of all the extra data. the hide object command prevents it from being rendered but still allows it to be altered, exclude object is faster but you would only use this if you are removing an object from a scene for an extended period of time, because an object is 'locked' while being excluded and you cannot set its properties.

Lost in Thought
21
Years of Service
User Offline
Joined: 4th Feb 2004
Location: U.S.A. : Douglas, Georgia
Posted: 27th Dec 2005 21:10
That would explain somewhat the slowdown with the limbs though they should be stored in a heiarchical order keeping the data seperated to prevent this. All it should have to do is check if the object is set to be visible then one by one check if the limbs are visible. If not then totally ignore all of the limbs data.

DBP should also be setup to have a "changed settings" flag so all hidden objects' data is ignored unless the object has been changed. Any command that changes an object can turn this flag on and when it is updated, DBP can turn the flag off. So unless you are actually modifying any objects they shouldn't cause much slowdown as long as you have enough memory to hold them.

There should really be no need for exclude object at all, but since it works it would be nice to have an exclude limb to ghetto patch the other slowdown as they did with the hidden objects.

Zealous
20
Years of Service
User Offline
Joined: 13th Sep 2004
Location: Colorado Springs
Posted: 31st Dec 2005 00:05
I agree, either 'auto exclude' hidden objects AND limbs if they arent being modified, OR give us a command to do it manually (exclude object limb objnum,limbnum)

All you need is zeal
Zeal
22
Years of Service
User Offline
Joined: 10th Oct 2002
Location: Colorado Springs, CO
Posted: 9th Feb 2006 06:13
Up you go. Please confirm me, this performance hit is unacceptable (seeing as how limbs are the only decently fast way to go).

All you need is zeal
re faze
20
Years of Service
User Offline
Joined: 24th Sep 2004
Location: The shores of hell.
Posted: 9th Feb 2006 23:59
are zeal and zealous, the same guy???

Lost in Thought
21
Years of Service
User Offline
Joined: 4th Feb 2004
Location: U.S.A. : Douglas, Georgia
Posted: 10th Feb 2006 00:32
yes

Zeal
22
Years of Service
User Offline
Joined: 10th Oct 2002
Location: Colorado Springs, CO
Posted: 10th Feb 2006 01:20
Yeah sorry I had forgotten what email I used when I first registered Zeal, so when I moved back to Colorado I had to create Zealous, and was too lazy to get Zeal 'working'. (turns out I used a old email account from when I was down in Florida, back when Pro had just came out).

So im back!

All you need is zeal
Zeal
22
Years of Service
User Offline
Joined: 10th Oct 2002
Location: Colorado Springs, CO
Posted: 14th Feb 2006 00:35
Since Lee is kicking ass and taking names I thought this guy needed a bump

All you need is zeal
Oddmind
21
Years of Service
User Offline
Joined: 20th Jun 2004
Location: Atlanta, Georgia
Posted: 14th Feb 2006 01:14
Quote: "Odd slow down with limbs and objects"


ok... I thought I was moving a little speedily.

formerly KrazyJimmy
Zeal
22
Years of Service
User Offline
Joined: 10th Oct 2002
Location: Colorado Springs, CO
Posted: 14th Feb 2006 02:21
Quote: "ok... I thought I was moving a little speedily.
"


what?

All you need is zeal
Oddmind
21
Years of Service
User Offline
Joined: 20th Jun 2004
Location: Atlanta, Georgia
Posted: 14th Feb 2006 05:29
god I hate explaining jokes.

*looks at name*

*looks at word "ODD" within user name*

*Looks at word "ODD" within title of report*

*makes joke*

I have also had this problem with limbs slowing down my framerates... of course doesnt everything these days?

formerly KrazyJimmy
LeeBamber
TGC Lead Developer
25
Years of Service
User Offline
Joined: 21st Jan 2000
Location: England
Posted: 14th Feb 2006 15:16
Alas this is not a bug, more a fact of limb management. It is not so much whether the limb is drawn or not that causes a performance overhead, it is the additional work required within the structure of an object. Hiding 99% of your seperate objects also saves related tasks on those hidden objects, but the limbs of a single object must all be handled if the object is active. Such things as inter-limb texture sorting, collision checks, the simple process of nesting through 4000 limbs, etc. It all adds up. It also sounds like you have found the preferred method of entity management through seperate objects tied in with the exclude object command. Using limbs should be done with full consideration of the performance hit of this many limbs in the root of an active object. There is more than one way to program a cat

"Small, smart, and running around the legs of dinosaurs to find enough food to survive, bedroom programmers aren't extinct after all "
Zeal
22
Years of Service
User Offline
Joined: 10th Oct 2002
Location: Colorado Springs, CO
Posted: 14th Feb 2006 23:04 Edited at: 14th Feb 2006 23:06
This is perhaps the single worst piece of news ive ever heard for the future of of DBPro

Quote: "the limbs of a single object must all be handled if the object is active."


Please explain why, and just exactly what "handling" includes

Quote: "Such things as inter-limb texture sorting, collision checks, the simple process of nesting through 4000 limbs, etc."


Why is there no 'exclude limb on' command? It can be done for objects, why not limbs? Simply ignoring a limb would NOT cause this kind of performance hit, there are other things going on behind the scene (as you mentioned). Things that we SHOULD have the ability to turn off.

Have you ever tryed to create a high object count scene, then create the same scene with limbs? The performance difference is amazing. The bottom line is we NEED to use limbs, and thus they NEED more love.

PLEASE give this more consideration.

All you need is zeal
Lost in Thought
21
Years of Service
User Offline
Joined: 4th Feb 2004
Location: U.S.A. : Douglas, Georgia
Posted: 14th Feb 2006 23:17
It's a lose, lose situation always it seems.

Maybe one day DBP's object and limb management will be revisited. Until then I see no good way to do this sort of thing in DBP. It takes ages to load that many objects. Plus when you use levels from other modelling packages such as 3DWS, we have to break them up into our own seperate objects. We don't really have all the tools in DBP we need to do that just yet, though hopefully DBP will advance to the point of getting around to the feature request side of the force.

I don't see what is going on in the background though if the collision is turned off and the limb is hidden. Is DBP really that slow? I know you wouldn't harldy ever have 4096 limbs, I just made so many to amplify the problem. Why is there so much more overhead from having limbs instead of seperate objects? Further still ... if limbs are so slow then why was it chose to make FPSC using mostly limbs? I believe this is one of it's main slow downs.

Zeal
22
Years of Service
User Offline
Joined: 10th Oct 2002
Location: Colorado Springs, CO
Posted: 14th Feb 2006 23:31
Limbs are better than objects, period. Even WITH their current limitations, they still outperform individual objects. Its not really apparent in your example (I think partly because were just using primitives), but its true.

Take it from somebody who has tryed every method under the sun and finally settled on a single object with limbs. My terrain used to be a 16x16 grid of individual objects (they were clones too). Due to MANY of the problems you get with high object count, I ended up migrating to a single object with 16x16 limbs, and implementing custom frustum culling. Not only did I see a fps increase, but I greatly reduced the overhead thats painfully associated with a high object count (now I only had ONE object for my terrain).

Like I said, worst news ive heard yet for DBPro's future. This topic needs a closer look Lee. I really want to know why a limb cant be excluded from ALL aspects of checking/rendering.

All you need is zeal
Zeal
22
Years of Service
User Offline
Joined: 10th Oct 2002
Location: Colorado Springs, CO
Posted: 15th Feb 2006 00:13
I made a little example program thats a bit more practical (compares 256 objects to 256 limbs). As you can see the performance difference when everything is visible isnt that great (making the single object + limbs the clear winner, because it has such less overhead). However you will see limbs fall behind in a big way when you start to hide them. Excluding objects is the clear winner here.

So tell me again why a hidden limb would cause a loss of HUNDREDS OF FRAMES per second compared to a excluded object? Why cant a limb be excluded just like a object? Yes were asking for cake AND icecream, but is there really any reason why we cant have it?

Again, very discouraging if this topic is really going to be ignored.

Project attached, here is the source if you just want to look



All you need is zeal
Lost in Thought
21
Years of Service
User Offline
Joined: 4th Feb 2004
Location: U.S.A. : Douglas, Georgia
Posted: 15th Feb 2006 03:03
Well all of my FPSC and personal game engine plans relied on this fix, the make and save mesh crashing at high polys, and of course the new collision system (hopefully at least it will be put in). I'll wait until the final U6.0 to complain though, as it's release will help me determine whether to stay with DBP or move on and maybe come back when it is further along.

Lost in Thought
21
Years of Service
User Offline
Joined: 4th Feb 2004
Location: U.S.A. : Douglas, Georgia
Posted: 26th Feb 2006 23:38
This is a bit better in U6. I get 96 fps instead of 50. Still sucks for 12 polys though.

Zeal
22
Years of Service
User Offline
Joined: 10th Oct 2002
Location: Colorado Springs, CO
Posted: 27th Feb 2006 05:20
Im getting a pretty decent performace increase in general. Dunno if they really did anything specific to this though.

All you need is zeal

Login to post a reply

Server time is: 2025-08-08 20:52:11
Your offset time is: 2025-08-08 20:52:11