[comp.graphics] Scene language, how about SceneTex.

woolstar@nntp-server.caltech.edu (John D. Woolverton) (05/14/91)

   Well after several interesting conversations and responses
to my initial criticisms of RenderMan, I would like to bring up
some new thoughts and clarify myself a bit.

        [I wrote]
>> I would love to have a standard interface to work with
>>    (from both sides: modeling and rendering).
>> However my investigation of RenderMan has been _very_ dissapointing.

   It has been over two years since I actually looked at the
RenderMan spec.  What I have been investigating lately are implementations
of RenderMan by various animation packages on the PC and Mac.  It was
pointed out to me that there is a _big_ difference between the two.

>> But for work in RayTracing and beyond, there are too many things missing.
   What I found, was that it would be very awkward to try and extract
the information I wanted for ray tracing from the 3rd party implementations
of the RIB file.  Perhapse my style of thinking is outdated, in that I have
been used to having access to scene information for setting up my
rendering (ray tracing).

        [Mark Vanderwettering wrote]
> RenderMan (regardless of what some people believe) is not a modeler.
> It is not even a modelling language.  It is a language which describes
> how scenes are to be rendered  ...  RenderMan tries to be accomadating
> to modellers, but by no means is there enough information in a .rib file
> to feed an adequate modeller.  RIB is perhaps a "write only format",
> similar to PostScript again.

   Again, my warped style of doing things includes having access to all
the modeling info in the scene for setup.

> (One doesn't expect to reconstruct a LaTeX file from PostScript either).
   Maybe this is what I'm looking for:  SceneTeX.

   What I use now is a split description:
Static objects exist in separate files:  floor.aob, wall.aob, truck.aob
Scene organization is described in reference to the objects:

        Camera
           position info [across time]
        Light
           brightness and position info [across time]
           static attributes

        Actor 1
           position and attachment [time]
           use object floor.aob
        Actor 2
           position and attachment [time]
           use object wall.aob
        Actor 3
           position and attachment [time]
           use
              truck.aob from t1 to t2
              truck_detail.aob from t2 to t3
              NULL from t3 to t4
        Actor 4
           position and attachment [time]
           use mix
              plant_1.aob with [mix track]
              plant_2.aob with [mix track]
              plant_3.aob with [mix track]

        World organization
           box { Actor 1, Actor 2 }
           box Actor 3
           box Actor 4

        [I wrote]
>> Extentions to both for geometry organization (bounding boxes...).
        [Mark Vanderwettering wrote]
> The third is interesting, but forces a particular rendering style onto
> the user (why is your geometry organization better than mine?).
> Perhaps my automatic bounding volume generator is much better than
> you can do in practice.

   I have picked a particular system for ray tracing, and have
spend a couple of years refining it.  What I've noticed, is that I
haven't found any general way to automatically decide which objects
to group together.
   If you remove the scene and object information, presenting me
with a list of polygons, the problem is that much harder, with no
good grip on how to interact with the artist anymore.  (ie I can't
ask the artist "Should I put polygon #871 with #324?").

> I mean, you may not know details about how rays are cast, and the
> relative costs.  The renderer definately knows, and perhaps can do
> a better job than a "third party" could.
   While the artist using my system doesn't know much about the
ray costs and rendering style.  He does have a good idea about how
the scene is organized, and can make decisions as to what is grouped
together.  I would like to provide an expert system that will let
the artist try out different configurations, and provide feedback
as to how efficient they are.

   Another item lost in the representation is camera information.
I would much rather have a look from and look at point, with
a field of view, than be presented with a perspective
transformation matrix, and have to extract the information from it.
If it is possible at all, I don't know how at this point.

   [I wrote]
>> RenderMan is also grossly inefficient for representing polygons
   I stand corrected [a hundred times].  "RiPointsPolygons"
   I wasn't going by the spec, I was generalizing from the inspection
of the modeler outputs that I looked at.  Zero out of four used
the "RPP" model.  Very dissapointing, and surprising, considering that
at least two used a 'point--face' model for their objects internally.

   As far as the organization of a scene description,
        [Tony Apodaca wrote]
>    What do we mean by simple animation?  We all know the type...
> flying logos, camera moves over static scenes, robot arms and spaceships.
> Basically, simple rigid motions over repetitive objects.  Our own animation
> has shown us that people are bored of this, and want to move to complex
> animation:  soft, squishy surfaces which deform as they move, faces and
> bodies, scenes with zillions of objects.  Everyone wants to see and do this
> type of animation, but what does it do to the image description?  Well,
> for one thing, almost NOTHING is constant from one frame to the next.
> Oh, the occasional desk or wall, but the size of the data in the description
> of the wall is microscopic in comparison to size of the data in the description
> of the baby's crying face.  It makes a lot of sense to optimize for the big,
> changing data, rather than the small, static data.

   I'm not sure I agree completely, and even so, Pixar seems a bit
ahead of its time.  I'm not sure how many PC and Mac based allow easy
molding and deformation of polygonal models, but even if there were some,
very few people have the time and patience of John Lassiter (sp?) to go
in and mold each frame of an animation.  Alot of smooth blobby animation
is being done right now with in-betweening, and morphing.  Even some of
the work in artificial faces, uses a set of pre-defined expressions, and
uses interpolation for generating the facial animation.
   The second point is data, 16 Megs of object database times 30 seconds
of animation generates about 14 Gigabytes of data.  This is a little
bigger than most peoples hard drives right now.  You might argue that
computer storage is getting bigger, but so is the models that people are
building for animations.

> So, what have we learned?  Modeling languages are hard.
   I agree to that.  And so we all keep working on it.

> This is not to say impossible, and I look forward to the day when a smart
> person solves this problem.  But Pixar didn't (and doesn't) know the answer.
   I wish someone did.  I have some ideas as to what I want, and I keep
listening and learning what other people want.  RenderMan starts to address
part of the problem, and may be a good step towards bringing rendering packages
together, but I'd like to see things evolve further.

        John D. Woolverton, Engineer -- Video Bits
        woolstar@cobalt.caltech.edu

CPU-use figures probably won't rise much until hardware stops speeding
up, or somebody makes a hell of a breakthrough in software technology,
or we invent a drug that makes people more intelligent, or we stop
reading news and spend more time coding, or computers learn to
program themselves, or...