[Top][All Lists]
[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
- [grt-talk] Misc notes,
Nikodemus Siivola <=