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>>
