Scene graphs "bad"?

I stumbled upon this uh… rant and I was wondering if there’s any merit to what he’s saying. Obviously Panda3D is scene graph based; how does it deal with the “issues” he cites?

http://home.comcast.net/~tom_forsyth/blog.wiki.html#%5B%5BScene%20Graphs%20-%20just%20say%20no%5D%5D

As for sorting, Panda provides you with the concept of “bins” which allows you to control the render order easily.

It was difficult to pick out any other specific issues. Like you said it seems more like a rant. If this person had a good amount of experience using scene graphs I’m sure they would have been able to provide more concrete examples, but this just seems like someone who doesn’t like the idea in general.

The complaints seem to be focused on scene graph not being the most optimal for rending, which is likely very true. Of course it does provide a lot of other advantages.

thanks for the info…


MS treatment

IMO, he does provide valid points in some cases, and it’s a (teeny tiny) little bit more structured than a rant, however:

  1. In most of the situations he brought up, ex. deciding how to sort things, etc, that’s where Panda asks you, the developer, what to do.

  2. He brings up everything he dislikes about scene graphs, but offers no alternative. With no alternative, I could only conclude there is no better way as of yet.

  3. He mentions a lot about performance and speed and, well, nobody can speak for him, however I think he’d probably be opposed to the idea of a game engine using a scripting language to control everything.

I really think that one thing you have to take into account when making things, is the actual time it will take to make it. A lot of people (including myself) jump to the conclusion of “This is better…” and it probably is, but it may take much longer to complete it, time that might have been spent on something else more important.

Just my thoughts,
~powerpup118

Panda is designed to be an easy-to-use engine, where people shouldn’t need to do advanced linear algebra in order to make some objects move, where they can put objects in the scene and attach them to each other and expect it to just work. I don’t see how that Panda could exist without a scene graph.

It’s true that traversing the scene graph often takes a fair amount of time, but if you do it right, you can get most of this time back by correctly structuring the scene graph.