Hello Raphael,
Raphael Sebbe wrote:
> I have one problem though, it seems to be a constraint imposed by the
> scene graph.
>
> Let's say I want to represent a scene where objects can be selectively
> lit by lights, that is I can enable a light or disable a light for any
> particular object. It seems that this cannot be easily expressed in
> opensg. However this is a fairly common problem.
hm, can you let us know a bit about the context in which you need this
feature?
> The problem is because objects that are lit by a light must have that
> light as parent. More over, opensg imposes that a node can only have one
> parent. This is a very hard constraint, especially considering that both
> transforms and light states are expressed through that single parenting
> capability.
it's true that a Node can only have one parent, but a NodeCore (which is
what defines the behaviour of a Node) can have many; Light is a
NodeCore. Also the position of the light source is not defined by its
position in the scene graph, but rather by the coordinate system of its
beacon node.
OTOH multi parent scenegraph's have the IMHO very confusing property
that you can not determine a node's location in the world (unless you
visit that node as part of a traversal from a root), because there are
multiple paths to (potentially) multiple roots...
> (I am talking about local lights, global light can't be disabled for
> objects as far as I understand it)
no, and the idea for OpenSG has always been that lights affect their
children and are positioned in the scene with their beacon. The fact
that OpenSG 1.x also has global lights is more a historical
implementation issue with the local lights than intention.
> The only solution I can see is to duplicate local lights all over the
> graph, but this is tedious and not elegant solution to a simple lighting
> need.
hm, I'm not sure I'd agree that you have simple lighting needs, but ok
;) - you are right, I can't think of another way to do this other than
adding the Light NodeCore to multiple Nodes in the scene.
> Have you guys thought of other possible implementation of lights, that
> would be more like "attribute" that can be turned on/off through the
> graph traversal?
Speaking only for myself, I've not thought about it, but I'd be willing
to if you give us some more details on your use case; I'm afraid I've
not quite understood that yet:
Why do you want to light one object and not another one even though they
are close to each other (assuming that being children of a common object
suggests spatial proximity)? This does not seem to mirror the effect of
lights in the real world. I guess I'm missing something important. ;)
Cheers,
Carsten
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Opensg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users