POV-Ray : Newsgroups : povray.programming : POV 4 Design Musings : Re: POV 4 Design Musings Server Time
28 Jul 2024 22:18:14 EDT (-0400)
  Re: POV 4 Design Musings  
From: Nigel Stewart
Date: 14 Apr 1999 13:22:46
Message: <3714BFE3.BF82787E@eisa.net.au>
I've had an interesting thought about what
should be the "top level" object in an OO
scene for raytracing.  In one sense it is
the camera, since all the rays originate
from it.  Otherwise, you can have a glorified
Union container, perhaps with global 
parameters tacked on.  One interesting 
alternative is treating the top level
object as a 2D texture.  A camera naturally
maps 3D rays to the 2D texture, but allows
procedural textures, blending, even camera-
motion blur, for each pixel. 

To implement camera-motion blur, you put
maybe 20 cameras and average the result for
each pixel, perhaps multiplied by a brightness
channel for fade in.out, etc.

Simply:  PovCamera is a PovProceduralTexture

> How about a PovWorld or a PovScene object?

PovScene  (is a PovParsable)

  Container class for a world or scene.  Global
  parameters, cameras, fog, clock, etc live here.
  A PovScene may contain any number of camera's
  that are selectable without editing the scene
  file, perhaps from the command line.  
  
  Methods:

    void   setTime(double time);
    double getTime();

    bool   selectCamera(int cameraIndex);
    bool   selectCamera(char *label);
   
    vector<PovCamera> &cameras();

  Notes:

  Associate the whole scene with a transform?
  Allow encapsulation of scenes within scenes?
  -  If a ray enters a room, model the room as
     a seperate scene?
  -  If we're watching TV, allow TV to be an
     independent scene?

> We could also use subclasses of PovCanvas
> like PovZbuffer, PovAlphaChannel...

PovZbuffer (is a PovCanvas)

  Can be used as an alternative to an RGB
  canvas, stores the distance for each ray,
  rather than performing shading, lighting,
  etc.

PovAlphaChannel (is a ????)

  Notes:

  Where does alpha channel fit?  Is it simply
  the degree of "background" that shows for
  each pixel, or is it something more?  Perhaps
  alpha channel should be an optional extention
  of PovCanvas.


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.