[Opensim-dev] SOG/SOP
Toni Alatalo
antont at kyperjokki.fi
Fri Aug 29 12:54:39 UTC 2008
Stefan Andersson wrote:
> I still think that having an object that represents the object in
> scene, as opposed to having ten scene objects magically linked on
> 'root' id is a good idea - especially when considering stuff like
> mesh-enabled objects, where 'child prims' simply does not apply.
i think mesh-enabled/using objects may well have children too, perhaps
even child prims, and certainly it is common in 3d modelling suites to
have it so that meshes can be children of other meshes (also there are
groups, arrays etc.). at least now when first thinking it i'd see the
questions a) whether an object is using prims or meshes and b) whether
there is some sort of hierarchical composition mechanism in place, as
independent, -- orthogonal even.
> But this time, maybe we should get more discussion. I bid you all
> ventilate your ideas. And references to other 3D models, and
> suggestions incorporating how grid, region, scene, avatars,
> attachments, mesh objects and linksets can work togehter in a single,
> simple API paradigm are extra welcome.
i don't know what exactly the SOG/SOP design is currently like, but the
idea as outlined in your post of having some scene level object for
which attributes/properties like position are context independent, and
which can hide type specific implementation details of how the geometry
is constructed etc., sounds promising (if i understood correctly how
Adam's extended SOG for Rex meshes fits in the picture).
i don't mean to go too deep into specifics of esoteric scene
construnction things in 3d modelling, which are far outside the scope of
current opensim development, but outline a couple examples in the
following the illustrate a bit what kind of mechanisms there are
elsewhere. hopefully that is helpful for further developing the OpenSim
model, perhaps so that things similar to the examples below will be
possible later if they prove sane for virtual worlds (i believe clever
instanciating of copies etc. would be good for performance while
allowing rich worlds)
i'm mostly familiar with the Blender object model, and was thinking last
winter when working with Rex about how some lessons from there (and 3d
movie & game making in general) could be brought to virtual world
content models. in Blender the basic design is that on the scene level
there are so called objects, which is an abstract notion of a
scenepresence with position, orientation and scale - then the concrete
geometry is implemented in the different object data types like mesh,
curve and text. for example text objects might be good to have in
virtual worlds too (it can be a can of worms though if you go deep into
kerning and all, you can see how it is in Blender from
http://wiki.blender.org/index.php/Manual/Text )
back to the issue of hierarchies, in modelling suites the relationships
that different objects in a scene can be of several kinds - for example
in the aforementioned manual page on text objects you can see how curves
can be used to shape how a text is laid out
(http://wiki.blender.org/index.php/Manual/Text#Examples_5 shows a text
on a circle) - so there a text object has a relationship of type
'TextOnCurve' to the circular curve object.
another case is instanciating, arrays of objects or duplicating the same
object several times to e.g. make a wall of bricks. Blender has two
techniques for that now: 1. so-called dupliverts, where the vertices of
an invisible mesh are used to place instances of another object,
http://wiki.blender.org/index.php/Manual/PartXIII/DupliVerts and 2. the
array modifier where copies of a given object are generated
parametrically to make e.g. walls, roads or chains,
http://wiki.blender.org/index.php/Manual/Array
arguably such things are too complex for the hopefully emerging standard
protocols for virtual worlds, and i can understand if they are ruled out
categorically and only simpler scene and object models are used (you can
always e.g. export curve-shaped text objects as meshes etc). just
thought this would be a good time to point them out 'cause think that
they can be very powerful too (e.g. for animating such shaping with
curves is great, you can then very lightly (in terms of changing data)
animate relatively complex objects by just moving the control points of
the invisible curve). for instanciating combining procedural things with
hand-made building blocks can be quite powerful, like giving the
positions of object instances in an array as a function etc., but that
goes even further out of the reach of current possibilities.
> Stefan Andersson
> Tribal Media AB
Toni Alatalo
Playsign, http://www.playsign.net/
More information about the Opensim-dev
mailing list