Voxel Node

T.D. Ritchey ([email protected])
Sun, 11 Jun 95 12:20 BST


Thanks to everyone for their feedback. I'll try to cover all of the points
presented in some meaningful way.

First, and I humbly apologize for this, I am sorry that I didn't adequately
(or for that matter at all) define the Voxel. Mark Pesce gave a good
definition, thanks. The benifits of Voxel representation is not only for
difficult to simulate effects such as flames, but it also is the standard
format for Medical, Geo-Physical and Atmospheric data (among others). My
reason for bringing up the possibility of including such a node is that
while the majority of the WWW will be using VRML for bringing 3D to the
masses, and a large portion will be used for more traditional graphics
tasks, there is large need in the academic community for distributed
visualization tools. I think a perfect examle of this would be a virtual
operating room, where medical students could work with experts in the field
from around the world on an MRI or CAT scanned image with specific
pathologies, etc.

The two most important difficulties are a) computational complexity, b)
manipulation of the data in order to benifit from the voxel itself.
Computational complexity of the voxel depends upon many things - most
importantly what you want to see with it. This ties in very closely with
b). I see two paths which we could follow in parallel in order to deal
with these two probelms. In the first implementation, the voxel node could
be assumed to be pre-massaged. The values at the points will be optomized
prior to inclusion in the .wrl. The browser will then only need to render
the image without manipulation. To this end, I would suggest an additional
field in the voxel node which flagged a default threshold and limiting the
number of datavalues at each point to one. The browser would simply render
as-is. In the second implementation (i.e. VRML 2.0) using a behavioral
model, the raw Voxel data could be manipulated by users dynamically in
order to obtain the desired result. Two people accross the country could be
looking and manipulating the same data, or a JAVA applet could cause a
flame to behave in flame-like ways.

At most, the first implementation could allow for adjustment of a threshold
value, and the selection of how more than one set of data should be
represented. (ex: at each point if you have temp-pressure-humidity
readings, you could decide which one to look at, or whether to sum them,
etc.)

The Voxel node does add a level of complexity to the rendering of a scene,
but I believe that a simplistic default behaviour will allow it to be
viewed across a wide range of platforms. Besides the fact that what is in
an SGI box today, will probably be in a Gateway in two years. By the time
a full blown Voxel methodology was implemented in VRML 2.0, the possibility
of machines able to view and manipulate such structures may be on the way
to many desktops.

Len Wanger mentioned the possibility of using a generic grid node. This
appears to be a good idea. I am just wondering whether it would be able to
include the fields necessary to make the voxel data both easy to render in
default modes, and yet flexible enough to be altered when a fully
implemented version would come along.

Thanks for the time, and consideration.
tim
---------------------------------------------
Timothy Ritchey [email protected]
Jesus College tel: (01)223 576-822
Cambridge fax: (01)223 576-822
CB5 8BL
England