|
![](/i/fill.gif) |
> "ltong" <nomail@nomail> wrote:
>> ok, after some experimentation, the result looks much better. seems value_n is
>> defined as 1-min(1,Fn). Don't know how to attach a pic here, below follows the
>> code.
>>
>> #declare FALLOFF = 1.3; // just an example, toy with it
>> #declare a = 0.7;
>> #declare b = 0;
>> #declare c = 0.44;
>> #declare FnRadial = function(r) {a*exp(-(r-b)*(r-b)/2/c/c)}
>> #declare FnAxial = function(z) {1/(1+(FALLOFF*z*FALLOFF*z))}
>>
>> // helper function to compute radius from x,y
>> #declare FnR = function(x,y) { sqrt(x*x+y*y) }
>>
>> // the resulting 3D function
>> #declare Fn = function(x,y,z) { FnRadial(FnR(x,y)) * FnAxial(z) }
>>
>> object {gauss
>> hollow
>> pigment { color rgbt<1, 1, 1, 1> }
>> interior {
>> media {
>> emission color rgb < 1.0, 0.0, 0.0>
>> density{ function {Fn(x,z,y)}
>> color_map {
>> [0 color rgb <0.0, 0.0, 0.0>]
>> [1.0 color rgb <1.0, 0.0, 0.0>*1.2]
>> }
>> } // end density
>> }//end of media
>> } //end interior
>> scale <1,1,1>*1.5
>> translate<0,2.0,0.0>
>> } //end object
>
> Hey, this is a great example! I have been trying to do this with Pov-Ray for a
> while. I tried a direct copy and paste of this code into Pov-Ray but got (on
> line "object {gauss"
>
> ---
> Parse Error: Expected 'object', undeclared identifier 'gauss' found instead
> ---
>
> I did a quick search for gauss and it doesn't seem to be an internal function.
> Was this just a helper file or was there more to this example that I am missing?
> I am relatively inexperienced...
>
> Thanks in advance!!!!
>
>
>
This is a snippet from a larger scene.
Here, "gauss" is an object previously defined by the author in a
#declare directive.
It /could/ look like:
#declare gauss= cylinder{<0,0,10><0,0,-10>,2}
Beter writing:
#declare Gauss= cylinder{<0,0,10><0,0,-10>,2}
The primitive used can be any ot the available ones, but should be built
around the origin. In this case, it also should be longer along the Z axis.
Anyway, it's always beter to always use at least one UPER case leter in
any user defined identifier, and leave all lower case ones for the
reserved words.
There have been cases where scenes got broken by not following that
guide line and used some variable that got used as key word in a later
version.
Alain
Post a reply to this message
|
![](/i/fill.gif) |