[Radiance-general] Specular instead of lambertian for indirect

Greg Ward gregoryjward at gmail.com
Tue May 27 22:23:10 PDT 2008


Hi Lucio,

> I know that I could run two simulations and then combine the  
> results, but it would be much cleaner to be able to use a new kind  
> of primitive able to use BRDF for direct light and a specular  
> material for indirect light. Is it possible to develop such  
> primitive? I'm not very skilled about programming , but I can  
> always learn and help in developing such primitive, if you like. I  
> guess that such kind of primitives could be handy even for other  
> applications. What do you think about it?

Do you want the specular part to be 'pure' -- that is, mirror-like?   
If so, this can be achieved easily enough by specifying a mixfunc  
with a fixed parameter, e.g.:

void metal specular_bit
0
0
5 0.1 0.1 0.1 1 0

void plasdata brdf_data
{your arguments here}

void mixfunc asphalt
4 specular_bit brdf_data 0.5 .
0
0

Since we are mixing half of each, you need to double each component  
(the specular_bit and the brdf_data), but otherwise this should work.

If, on the other hand, you want a specular component with a soft  
lobe, it gets a little trickier.  Essentially, you want to modify  
your BRDF data such that the Gaussian model you are using for the  
specular_bit is taken out.  The basic principle still applies, however.

I hope this makes sense.
-Greg



More information about the Radiance-general mailing list