0
\$\begingroup\$

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)

\$\endgroup\$
4
  • 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\$ Commented Dec 11, 2015 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\$ Commented Dec 11, 2015 at 22:45
  • \$\begingroup\$ You could take a look at how engines like OpenSceneGraph and OGRE are implemented to get a hint. \$\endgroup\$ Commented Dec 15, 2015 at 12:54
  • \$\begingroup\$ Its really hard to follow big engines architectures. They include lots of dirty flags and uncommented methods \$\endgroup\$ Commented Dec 15, 2015 at 13:02

1 Answer 1

1
\$\begingroup\$

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!

\$\endgroup\$
2
  • \$\begingroup\$ Yes, I checked it's source a number of time when starting my own rendering engine for Android \$\endgroup\$ Commented Dec 13, 2015 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\$ Commented Dec 13, 2015 at 18:26

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.