grt-talk
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[grt-talk] Misc notes


From: Nikodemus Siivola
Subject: [grt-talk] Misc notes
Date: Tue, 6 May 2003 02:26:26 +0300 (EEST)

Like I hinted earlier I've been looking into the shader based architecture.
Besides shaking GRT upside down this has resulted in leafing through
Renderman spec. What follows are some ideas quite miscellaneous ideas I've
collected.

 * Per object illumination. Object can specify which light sources they
   can receive illumination from. Can be done in shaders, but
   do we want to?

 * Sampling accuracy. Shaders can cache old shading results and reuse
   them.

 * No shadow, no image, matte image, no reflection. Union of the matte
   of RenderMan and POVRay flags. Where do we implement this?
   Apparently additional flags are required per object. For complete
   orthogonality these whould be per halfspace (surface), nor object.
   Tricky.

 * Level of detail. This is a very open issue. At the extreme we could
   make whole objects functions: first call the object with the ray
   to receive the appropriate representation for the distance. Note
   that this could double as the bounding test, so it might not be
   as expensive as it seems.

 * Minor optimization: use a constant identity matrix, so that
   whenever there is no transformation we manage with a single EQ.

 * Shear/skew transformation. I hate the way this needs to be specified
   with matrix in POV.

Why am I getting into all this now? Because I'm looking for inspiration. To
make a long story short: there were some issues with per-part CSG texturing
that I needed (and need) to resolve, that would pretty much resolve
themselves if we were shader based. (This is the point where Simon gets to
say "I tried to tell you but you didn't listen...")

I percieve three major issues in this paradigm shift:

 1) We will not wan't to pass scene to each and every shadoer, all the
    time. Instead we will bind the scene being rendered to a special
    variable in RENDER. This selfsame variable can also maintain other
    state such as the pixel being rendered, etc.

 2) Various utility functions from vector ops to illuminance need
    to be well thought out and written to minimize the pain of writing
    shaders. RenderMan spec should be of use in the specification process,
    but we are still more raytracing centric than renderman, so thinking is
    required.

 3) Translucent shadows. How? So far the best I've come up with is
    letting objects optionally have a filter function as well a
    shader, but something tells me this is not right. Am I missing
    something obious?

Anyways, I'll probably branch the shader version off CVS within a few days.
Whether it'll turn out to be 0.2 or 0.3 remains to be seen.

Cheers,

  -- Nikodemus







reply via email to

[Prev in Thread] Current Thread [Next in Thread]