[Radiance-general] perlin noise

Greg Ward gward at lmi.net
Sat Oct 13 09:28:12 PDT 2007


Hi Xian,

Jack is correct.  If you want the noise to appear different in  
subsequent images, you must alter your scene description.  Probably  
the easiest is to add some transform to the material, like so:

void brightfunc random_dirt
10 dirt dirt.cal -t ${rand_x} ${rand_y} ${rand_z} -rx ${rand_rx} -ry $ 
{rand_ry}
0
1 0.5

I am assuming an "A1" parameter of 0.5, but use whatever you like.   
The above data may be passed in a file (say "dirt.fmt") to rcalc and  
inserted in your scene like so:

!date +%s | rcalc -e 'seed=$1/1000 - 1192290' \
	-e 'rand_x=3000*rand(seed*1.901+3817)' \
	-e 'rand_y=3000*rand(seed*-1.627-592)' \
	-e 'rand_z=3000*rand(seed*9.67-5824)' \
	-e 'rand_rx=180*rand(seed*2.083+964)' \
	-e 'rand_ry=360*rand(seed*4.813+371)' -o dirt.fmt

random_dirt plastic my_plastic
(etc.)

Since "date +%s" outputs a different number of seconds every time you  
run it, this should give you a new transform unrelated to the last  
one every time -- as long as you don't run them less than a second  
apart.

Why do you want to do this, out of curiosity?

-Greg

> From: Jack de Valpine <jedev at visarc.com>
> Date: October 13, 2007 7:52:14 AM PDT
>
> Hi Xian,
>
> Actually dirt.cal uses the fractal noise function: fnoise3(x,y,z).  
> The Perlin noise function is noise3(x,y,z). You can look in  
> dirt.cal to see how the function is used there and in rayinit.cal  
> for library functions that are available. There are also additional  
> functions: noise3x(x,y,z), noise3y(x,y,z) and noise3z(x,y,z). As I  
> understand from RwR these represent the partial derivative of the  
> Perlin noise function at the point (see RwR page 253).
>
> Regards,
>
> -Jack de Valpine
>
> Yun-Xian Ho wrote:
>> Hi,
>>
>>
>> I am using the dirt.cal function to generate Perlin noise, but I  
>> would like to make a different noise pattern for each image given  
>> the same A1 parameter. How do I do this?
>>
>> Thanks!
>>
>> --xian



More information about the Radiance-general mailing list