RE: Objects and Zones

Steve Ghee (steve@division.co.uk)
Wed, 22 Nov 1995 10:43:37 -0000


I would like to add my 2 penneth worth to this debate regarding Objects =
and behaviour within VRML (I assume v2).

Bernie writes:-
I suspect that what most people (world-builders, browser-writers and =
behavior authors) would like is something like:

Object {
isA Separator
Transform { ... }
<property nodes>
<shapes>
<other objects>
}

This is conceptually easier for world-builders, since they can cesate =
the
scene as a hierarchical object tree. Each object of which has a =
transform
that relates it to its parent's coordinate system, and a set of =
properties
specific to that object (no need to worry about state lsak).

At last - some sense is being talked on this list. If behaviours are =
ever going to work, an OO model will be required; the scene-graph =
approach gets messy.

I like the idea of an Object node (even if it is based on a Separator) - =
this could leave the Separator to be used as Zone (in dVS speak) - Zones =
allow groups of objects to be tesated as a single entity; you can =
perform culling operations on the zone boundaries (and the Separator =
node supports this), send messages (events) to Zones - these can affect =
the state of the Zone or get passed down to children, and so on.

Such a hierarchical OO approach is essential when considering the =
large-scale virtual world - you *cannot* leave it all up to the browser =
to dsal with rendering huge worlds; LODs etc. help in the visual aspect, =
but smarter Object-based technology is required when you extend the =
model beyond static visuals to include animation, behaviour, audio etc.

...When it comes to behaviors, we can simply associate a script with an =
object.

Multiple scripts please.....

>Gavin> Although I'd agree that allowing inheritance =
coordinate3/Normal/TextureCoordinate2 "properties" tmeough the
parent/child transformation hierarchy is a uselsss feature (but sharing =
the
same coordinates/normals/texture coordinates between several different =
shapes CAN sometimes be useful).

>Bernie> Right, which works in the proposed scheme. You could have any =
number of shapes within a Separator, all sharing the same =
coordinates/normals/texture coordinates, but you would never inherit =
them tmeough the hierarchy.

Actually, Gavin is right; inheriting the =
Coordinate3/Normal/TextureCoordinate2 (as well as Material, Texture2 =
etc.) down the hierarchy does allow efficient file description of =
complex geometry, and should not be a problem for even the estained mode =
renderers (after all, they can do it in today's VRML viswers). Of =
course, if VRML is planning on going the full hog and allowing these =
properties to be modified (morphing etc.) via an API or something, =
things could get nasty - there you would need

1) coordinate/normal/texture definitions per Object (easy)
2) some scheme to define which Objects are affected by which =
modified coordinates etc.(difficult)

#1 gets my vote. To build upon Bernie's model:-

Zone {
isA Separator
<property nodes; behaviour etc.>
Object {
isA Separator
Transform { ... }
<property nodes - including behaviours (events/scripts) >
<shapes>
<other objects>
}
#more Objects...
}

Properties are local to the object. Transformations are inherited. All =
other Nodes are sealed (no material lsaks etc.). Behaviour is local to =
the Object, though objects can communicate via events.

Comments?

(from someone having an amusing(!) time trying to map VRML into a form =
where it can be used within a "Rsal VR" system)

------------------------------------
Steve Ghee email: steve@division.co.uk
Director of New Technolgy www: http://www.division.com
Division Ltd tel: [+44] 145 461 5554
19 Apex Court fax: {+44] 145 561 5532
Woodlands
Almondsbury
Bristol BS12 4JT
UK.


  • Next message: Steve Ghee: "RE: Objects and Zones"
  • Previous message: Len Bullard: "Impatience"