[comp.graphics] Bounding extent questions

pyle@lll-lcc.UUCP (03/08/87)

Some questions please:


1.)  Does anyone know how to determine a bounding ellipsoid for an arbitrary
     object?  Kajiya stated in one of his papers that one could be created
     via a "principal axis transformation on the covariance of the points."
     Can someone tell me what this involves?

2.)  Has anyone ever implemented a cluster sphere hierarchy for a ray-tracer?
     Can the hierarchy be constructed automatically, given a set of local
     bounding spheres?

3.)  Given a unit object (see Roth's paper, 1982, in Computer Graphics and
     Image Processing), like a unit cube, can one determine its bounding
     sphere in world coordinates, just given the local-to-world transform?
     If the scaling factor was even in X, Y and Z, I concluded that it was
     possible.	I was wondering if it was still obtainable, given that the
     cube is transformed into, for example, a retangular box.



Thanks a bunch,

Ernie Pyle


P.S.  Responses via E-Mail would be just great.

shirley@uiucdcsm.UUCP (03/11/87)

Semi-answer to 3):

    If the bounding sphere is to be used as an extent for the unit
primitive, a bounding ellipsoid can be substituted.  This ellipsoid
will correspond to the bounding sphere in primitive space.  This will
give you a tighter fit, but the ray will have to be transformed into
primative space.  If the extent is hit, the ray will NOT have to be
transformed again (the primitive space is the same for the unit prim
and the bounding sphere).  


A question about CSG ray tracing:

     How do you handle the interface between two transparent objects,
such as water and glass?  If they touch the basic union operation will
ignore the interface.  If they don't touch the water-air-glass will
have a higher reflection than is desired, so simply separating the objects
slightly doesn't cut it.  I currently treat very small separations as
a special case and ignore the air in the calculation the reflectance and
the refracted ray, but this is terribly inelegant (as well as making
object specification ugly).  Is there a nice way to handle this?

Thanks

Peter Shirley
U of Illinois at U/C