I read Real-Time Rendering and the author explains that scene graphs can be used to propagate "materials" and light sources down the hierarchy, that's cool but it really ends right there. There's no explanation on methods and techniques of doing these stuff.

Right now I'm using scene nodes as containers for geometry objects and the farthest I've gone is doing skeletal animation with them.

My question is how such a system of using scene nodes as cameras, lights, shadows etc. can be be implemented. (A reading source will be gratefully accepted as well)

  • 1
    \$\begingroup\$ It's not clear to me what you're unsure about and what specifically you want to know. Are the other questions on this site about scene managers not answering your question adequately? \$\endgroup\$ – Sean Middleditch Dec 11 '15 at 22:40
  • \$\begingroup\$ Yeah I'm very confused about all this. I'm asking about implementing such a system. How exactly can I use scene nodes to represent light sources in my rendered scene? Is this "multipurpose" scene node approach just another form of ECS? \$\endgroup\$ – Pilpel Dec 11 '15 at 22:45
  • \$\begingroup\$ You could take a look at how engines like OpenSceneGraph and OGRE are implemented to get a hint. \$\endgroup\$ – Vaillancourt Dec 15 '15 at 12:54
  • \$\begingroup\$ Its really hard to follow big engines architectures. They include lots of dirty flags and uncommented methods \$\endgroup\$ – Pilpel Dec 15 '15 at 13:02

You should have a look at jmonkey engine that is an open source engine implementing a scene graph.

Jmonkey home

By the way, the general idea for material in this case is that each node of the scene has a material definition that, for each material parameter, specifies either inheritance from the previous node or a value

The inheritance is done when traversing the scene for collecting the leaves of the tree for rendering. Each leaf then have it's own material with some elements inherited from upper nodes.

Hope this helps!

|improve this answer|||||
  • \$\begingroup\$ Thanks! Are you sure Jmonkey is open-source? \$\endgroup\$ – Pilpel Dec 13 '15 at 18:12
  • \$\begingroup\$ Yes, I checked it's source a number of time when starting my own rendering engine for Android \$\endgroup\$ – elenfoiro78 Dec 13 '15 at 18:13
  • \$\begingroup\$ GitHub: github.com/jMonkeyEngine/jmonkeyengine and licence: "New BSD (3-clause) License. In other words, you do whatever makes you happy!" \$\endgroup\$ – Katu Dec 13 '15 at 18:26

Not the answer you're looking for? Browse other questions tagged or ask your own question.