Scene graphs

I need a good book on scene graphs/management.
Any sugestions ?
Thanks.

I don’t think there are any books about scenegraphs out there. There are a bunch of books about game engines and game programming in general, and there of course is Moller’s “Real-Time Rendering”, which is a must read for most people interested in real-time graphics. You can read OpenGL Performer’s Online documentatino, which is pretty good, at http://techpubs.sgi.com/library/tpl/cgi-…eloper/Perf_PG. Then there is my dissertation at http://elib.tu-darmstadt.de/diss/000244/, which highlights some design considerations in the scene graph context.

And of course there are a whole bunch of Open Source scene graphs out there, which are probably a great place to start. Google for OpenSG, Open Scene Graph, SSG, Coin, OpenRM and maybe look at SourceForge and you find lots of systems to look at. Most of these (at least the ones that are actively developed have mailing lists where the developers hang out and answer questions, and now and then some general philosophical/design questions slip through. If you want to start a larger discussion consider using the OpenGL High-Level APIs forum (where this post should have been in the first place), or look at the VRsource.org forums, where we had some discussions a long time ago.

Hope it helps

Dirk

Originally posted by reynvlietstra:
I need a good book on scene graphs/management.
Any sugestions ?
Thanks.

Dirk made a good point about there being some books or manuals on specific scenegraphs, such as VRML, Java3D or OpenSG. I don’t know of any on the details of scenegraph design or optimization. It might even be worth writing one, but I’m not sure there’s much demand. Is there?

Anyway, I have a free article that might give some useful info, but I don’t know whether you’re asking about using or writing. It’s www.realityprime.com/scenegraph.php and at least has some links you can use. I hope it helps a little.

Avi

dirk, that is an excellent dissertation - even though I’m only half way through it.
I was relieved to find something that addressed and solved many of the problems I myself had addressed and solved while writing my own scenegraph. Kind of validates what I’ve done and why I’ve done it, to my bosses!

Thanks for all the links.
I think there might be a demand for a book in this area, as I see it a scene graph is what keeps everything together, it should be the part of an engine that has the most thought put into and is also prolly the last thing you would want to do twice. Once someone starts using something like open scene graph, he effectivly ties himself to it, it would be hell switching to something else, wouldnt it ? I have a million and one questions, so I’ll start reading the links.

Thanks.

I think scene graphs are overrated. They always seem to obfuscate what is going on, and to be needlessly complex for the problem they intend to solve. There are better ways to solve each specific problem of what to draw and what states to use for the renderer and what entity is attached to what other entity besides having a single monolithic data structure containing all this information.

Of course, I’m a bit confused about how monolithic your scene organization has to be before it is considered a scene graph rather than just a common sense data structure that well represents the current problem. I don’t think that what I do is considered a scene graph, but it is an appropriate structure applied to the scene.

Maybe somebody who uses and likes scene graphs could explain to me why they are useful? They always seemed to be good from an academic sense and bad from a practical sense.

Originally posted by Coriolis:
[b]I think scene graphs are overrated. They always seem to obfuscate what is going on, and to be needlessly complex for the problem they intend to solve. There are better ways to solve each specific problem of what to draw and what states to use for the renderer and what entity is attached to what other entity besides having a single monolithic data structure containing all this information.

I don’t think that what I do is considered a scene graph, but it is an appropriate structure applied to the scene.

Maybe somebody who uses and likes scene graphs could explain to me why they are useful? They always seemed to be good from an academic sense and bad from a practical sense.[/b]

Coriolis, I understand your point but I can offer some alternate arguments. You especially should read that article I posted.

Unfortunately, I’d rather not get into it here since there’s already a forum on opengl.org for scenegraphs and such and this forum is mainly for opengl related questions.

Avi

Cyranose, I read that article. All the arguments I saw seemed to be arguments for using good data structures, but not for putting them all into a single monolithic data structure. It also lost a lot of credibility with me once it said that VisKit was a good scene graph, since I know a guy who used to work with VisKit.

Originally posted by Coriolis:
Cyranose, I read that article. All the arguments I saw seemed to be arguments for using good data structures, but not for putting them all into a single monolithic data structure. It also lost a lot of credibility with me once it said that VisKit was a good scene graph, since I know a guy who used to work with VisKit.

I think I said VisKit made some interesting and notable design choices. I didn’t recommend it. I can’t really comment on your “I know a guy” argument. I know the principal designer of viskit. It doesn’t change my opinion of the software one way or another

I think I also said that I’m an advocate of using the most appropriate organizations (note the plural) for data in the various domans (culling, rendering, searching, etc…). There’s nothing in the definition of scenegraphs that require a single monolithic structure. That’s part of the mythology I’m trying to address. The bottom line is use whatever organizations work best for you, but don’t dis all scenegraphs just because some of them are monolithic.

Avi

I’d take the word of a guy who uses code over the word of the guy who wrote the code any day I’m not trying to dis scene graphs, as you put it… I’m trying to grasp their usefulness, because in every single case I’ve heard mentioned it seems that other solutions are better. I readily acknowledge that they could be useful; I just don’t understand how, and would like for somebody to explain it to me.

Anyway, from what you said in your last post, my confusion may be in terminology, because I thought it had to be monolithic to be considered a scene graph. If you only have one type of data in a structure, it seems to me that it is just a good fit for the current problem and not a scene graph. Of course I do hierarchical data representation of the stuff I draw, but I would not call it a scene graph. So, I guess my biggest question is, how do you know when something stops being a simple data structure well suited for the problem and starts being a scene graph? In other words, what is a scene graph, and what isn’t?

Originally posted by Coriolis:
I’d take the word of a guy who uses code over the word of the guy who wrote the code any day

Sorry. I misinterpreted your comment to mean your impression of viskit was derived from your impression of “the guy” who used it.

I agree that in practice, VisKit can be a pain to use – having explicit states in the tree is one reason, IMO. But it’s an interesting choice, designwise.

Anyway, at some point someone is going to complain that this is the Advanced OpenGL forum and scenegraphs != OpenGL, so I’ll respond to your other points in the “Higher Level API” forum under “Scenegraphs”
http://www.opengl.org/discussion_boards/ubb/Forum8/HTML/000070.html

Avi