Mark, 

your explanation indicates that you have undestood the volume shading process 
correctly. Thanks for mailing a better explanation than mine.

Arjo, I'm sorry for using misleading terms! I should have written 'Coordinates' 
not position:) The Coordinates channel includes the examined volume position. 
Changing it will make the program to compute shadows and illumination in 
another 3D point.  Changing Map coords channel only will not change 
illumination at all.


Best regards,
Vesa

  ----- Original Message ----- 
  From: Mark Heuymans 
  To: [email protected] 
  Sent: Wednesday, March 14, 2007 12:02 AM
  Subject: Re: groundfog test project


  Arjo,

  Where's the chapter about meditation in the RS manual? I need it ;)

  What I got so far:
  - volume shadows without any form of randomization leads to banding 
artifacts. In fact, I noticed that volume sampling of 200 produces pretty clean 
results, but that's a bit too much (however: skipping the randomization code 
makes the shader faster)
  - randomization of the Coordinates (a different channel from Map coords!) 
partly reduces banding but introduces grain. The problem is only partly solved 
because the Map coords don't match position (Coordinates).
  - the Map object takes care of this by re-computing Map coords from the new 
randomized position. Turbidity and volume illumination are calculated from 
identical positions inside the volume; artifacts are greatly reduced.

  In this case, the Random function is used rather than a Noise object: it's 
something completely different. Noise is a fractal pattern generator, Random 
doesn't have any patterns or scale/frequency.

  Nice tiles btw; in your example Noise is obviously the way to go, rather than 
Random!


  my 2 cts (I doubt it helps... hit me with a hammer if I'm missing the point)

  -Mark H



    This is what I ment for the randomize coords:
    The code...

    in the result it slightly randomizes the picture that has been applied to 
the object with a parallel mapping object. (I used the floortiles that are in 
the texture folder)

    I'm proabably completely off track with this approach. I haven't explored 
volume shaders much so far. So maybe it's better to start doing that first and 
then it might get clear by itself.
    The thing I don't understand is what you mean with "position". What 
position are you referring to?

    Arjo.


      -----Original Message-----
      From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Vesa Meskanen
      Sent: maandag 12 maart 2007 17:47
      To: [email protected]
      Subject: Re: groundfog test project


      Hi,

      > I think I understand it. But if I understand it right then I don't
      > understand why you don't put the randomization before the turbity 
object.

      It is just a matter of the order of the computations. When you randomize 
the position, you need to compute the new map coords value from the new 
position. It was earlier done by the material map object (parallel, sphere or 
whatever map - the material should actually be independent of that). When the 
position changes, how can you re-evaluate Map coords again ? How does the VSL 
code know what kind of parent mapping was applied (what type, what size etc?). 
The answer is: using the Map vsl object, which re-evaluates the parent mapping.


      >        Ray tracer: render engine computes position
      >            Material mapping: Parallel map computes Map coords from 
position
      >                Material:
      >                        randomize map coords  **** how ?????
      >                        Position changes by randomization
      >                        Turbidity is computed from randomized Map coords

      I highlighted the important row above. How can you randomize the map 
coords channel so that it's randomization matches the randomization oif the 
position.  Maybe you Map coords randomization goes to negative x axis 
direction, but position goes to +x axis direction! I repeat: Map coords depends 
on the size, orientation and type of the parent mapping, and VSL code normally 
does not know these.

      Map object takes care of such details:)


      Best regards,
      Vesa



<<attachment: code.jpg>>

Reply via email to