Area lights breaking up?

Hi,
  I'm having trouble with a scene I'm rendering. I have billiard balls that
are a "plastic" material and a large area light above them. For some reason
the area light appears in their reflections as a grid of squares (or
circles now that I've changed the roughness). The shadows even show this
break-up of the area light.

Here's a small sample:
http://www.ian.testers.homelinux.net/dump/billiard_main4.weird
(hosted on my ADSL line, be nice!)

I've tried fiddling with -dj and -ds, and a few other rpict parameters, but
they don't seem to do much at all. Is this a bug in Radiance 3.7 or am I
doing something wrong? I've never had this problem with area lights in
Radiance before.

thanks,
bye

Ian Tester wrote:

I've tried fiddling with -dj and -ds, and a few other rpict parameters, but
they don't seem to do much at all. Is this a bug in Radiance 3.7 or am I
doing something wrong? I've never had this problem with area lights in
Radiance before.

Are you sure? I'm pretty sure that effect you see is the result of the -ds parameter subdividing your largeish area source into smaller bits. Fiddling with -ds should have changed the number of sources you saw in your reflections. Setting -ds to 0 turns this off, which you may want to try.

- Rob Guglielmetti
www.rumblestrip.org

The problem appears to be with the roughness of the plastic. If it's set
to 0, then reflections are shown. As soon as I increase it to as much 0.01,
the plastic is no longer reflective and all we see is the specular
highlights of the sub-divided area light pieces. Is this the intended
behaviour? I remember spending quite some time fine-tuning these parameters
to look just the way I wanted. Now nothing I can do will bring back the old
appearance. The billiard balls should be glossy but not too smooth.

I wondered if my problems might be to the mixfuncs and such that I use to
produce the billiard balls. So I made a super simple scene to test this
problem and I get the same results. I've attached it to this email. Just
run rad on the test.rif file.

Here is what I get:
http://www.ian.testers.homelinux.net/dump/test_main

The left ball has a roughness of 0.01, the one on the right is 0.

And if the mailing list eats the attachment:
http://www.ian.testers.homelinux.net/dump/spectest.tar.bz2

bye

spectest.tar.bz2 (703 Bytes)

···

On Tue, 23 Aug 2005 13:47:15 -0600 Rob Guglielmetti <[email protected]> wrote:

Ian Tester wrote:

>I've tried fiddling with -dj and -ds, and a few other rpict parameters,
>but they don't seem to do much at all. Is this a bug in Radiance 3.7 or
>am I doing something wrong? I've never had this problem with area lights
>in Radiance before.
>
>
Are you sure? I'm pretty sure that effect you see is the result of the
-ds parameter subdividing your largeish area source into smaller bits.
Fiddling with -ds should have changed the number of sources you saw in
your reflections. Setting -ds to 0 turns this off, which you may want
to try.

Ian Tester wrote:

The problem appears to be with the roughness of the plastic. If it's set
to 0, then reflections are shown. As soon as I increase it to as much 0.01,
the plastic is no longer reflective and all we see is the specular
highlights of the sub-divided area light pieces. Is this the intended
behaviour? I remember spending quite some time fine-tuning these parameters
to look just the way I wanted. Now nothing I can do will bring back the old
appearance. The billiard balls should be glossy but not too smooth.

The left ball has a roughness of 0.01, the one on the right is 0.

There is a paper (out there, somewhere) that describes the behavior of materials in Radiance. In there, it says that for plastic with roughness greater than zero, where a reflected ray hits a light source, that ray is not used in the calculation because that would be double-counting. I believe this is the cause of your two distinct renderings. Perhaps someone else has some ideas as to how to get a rougher material that still renders a decent reflection of an area light?

P.S.
I had a look at your website Ian, any chance you might want to share those perl scripts you have that generated your sphereflake and water geometries? I'm always interested in seeing geometry generators that people have created.

- Rob Guglielmetti
www.rumblestrip.org

(Meant to copy this to radiance-general, but I guess I missed.)

Hi Ian,

This behavior is the same as for Radiance 3.6. (I just checked.) You can increase the -dj parameter to 1 and get a better result. Decreasing -ds also helps somewhat, but setting -ds 0 makes it look unnatural. Increasing the roughness also alleviates the problem -- it's just when you're on the boundary that you'll have trouble.

An alternative is to use a perfectly smooth material modified by a random texture function that simulates roughness without applying the BRDF model in Radiance, like so:

# A glossy surface
void texfunc ball_roughness
4 gloss_dx gloss_dy gloss_dz gloss.cal
0
3 0.01 0.01 0.01

ball_roughness plastic white3
0
5 0.9 0.9 0.9
         0.05 0.0

-Greg

P.S. There are two relevant references for materials in Radiance, as Rob mentioned:

SIGGRAPH '92: http://radsite.lbl.gov/radiance/papers/sg92/paper.html

Materials reference: http://radsite.lbl.gov/radiance/refer/materials.pdf

···

From: Ian Tester <[email protected]>
Date: August 23, 2005 5:11:18 PM PDT

The problem appears to be with the roughness of the plastic. If it's set
to 0, then reflections are shown. As soon as I increase it to as much 0.01,
the plastic is no longer reflective and all we see is the specular
highlights of the sub-divided area light pieces. Is this the intended
behaviour? I remember spending quite some time fine-tuning these parameters
to look just the way I wanted. Now nothing I can do will bring back the old
appearance. The billiard balls should be glossy but not too smooth.

I wondered if my problems might be to the mixfuncs and such that I use to
produce the billiard balls. So I made a super simple scene to test this
problem and I get the same results. I've attached it to this email. Just
run rad on the test.rif file.

Here is what I get:
http://www.ian.testers.homelinux.net/dump/test_main

The left ball has a roughness of 0.01, the one on the right is 0.

And if the mailing list eats the attachment:
http://www.ian.testers.homelinux.net/dump/spectest.tar.bz2

bye

Thanks for that info. I tried your texfunc suggestion but it didn't seem to
be giving the effect I was after. Then I read about "plastic" in
materials.ps:

  If the surface roughness (a5) is zero or the specularity (rs) is
  greater than the threshold (ts) then a ray is traced in or
  near the mirror direction.

So I set -st to just below the specularity of the balls (0.05) and set
their roughness to the value I wanted (0.03). This gave a better effect and
seemed faster. I'm still using the texfunc modifier on a dielectric
material I need to match with the plastic (the transparent window over the
numbers on the billiard balls). So thanks for that.

bye

···

On Wed, 24 Aug 2005 08:27:00 -0700 Greg Ward <[email protected]> wrote:

(Meant to copy this to radiance-general, but I guess I missed.)

Hi Ian,

This behavior is the same as for Radiance 3.6. (I just checked.)
You can increase the -dj parameter to 1 and get a better result.
Decreasing -ds also helps somewhat, but setting -ds 0 makes it look
unnatural. Increasing the roughness also alleviates the problem --
it's just when you're on the boundary that you'll have trouble.

An alternative is to use a perfectly smooth material modified by a
random texture function that simulates roughness without applying the
BRDF model in Radiance, like so:

# A glossy surface
void texfunc ball_roughness
4 gloss_dx gloss_dy gloss_dz gloss.cal
0
3 0.01 0.01 0.01

ball_roughness plastic white3
0
0
5 0.9 0.9 0.9
         0.05 0.0

-Greg

P.S. There are two relevant references for materials in Radiance, as
Rob mentioned:

SIGGRAPH '92: http://radsite.lbl.gov/radiance/papers/sg92/paper.html

Materials reference: http://radsite.lbl.gov/radiance/refer/
materials.pdf

Thanks.

Ok, I've put up a new page:
http://www.ian.testers.homelinux.net/radiance/contribs

I've added my mkbubbles.pl script there. I'll look at adding more scripts
later. The problem is that I've written a few Perl modules for
vector and matrix maths, and simple radiance scene reading/writing. Most of
my perl scripts for Radiance use these modules. I'm not sure how much of a
hassle this will be for other people wanting to use my per scripts. Is it
easier for people to install a few small modules of mine, or for me to
modify my scripts to not use these modules?

I have my newer renderings up in my deviantART gallery along with some
photos:
http://imroy.deviantart.com/gallery/

Here's an older version of the billiard balls from about a month ago. My
first rendering with Radiance 3.7's DOF feature:
http://www.deviantart.com/deviation/21118483/

bye

···

On Wed, 24 Aug 2005 09:11:01 -0600 Rob Guglielmetti <[email protected]> wrote:

P.S.
I had a look at your website Ian, any chance you might want to share
those perl scripts you have that generated your sphereflake and water
geometries? I'm always interested in seeing geometry generators that
people have created.

Ian Tester wrote:

Ok, I've put up a new page:
http://www.ian.testers.homelinux.net/radiance/contrib

Thanks, Ian!

I've added my mkbubbles.pl script there. I'll look at adding more scripts
later. The problem is that I've written a few Perl modules for
vector and matrix maths, and simple radiance scene reading/writing. Most of
my perl scripts for Radiance use these modules. I'm not sure how much of a
hassle this will be for other people wanting to use my per scripts. Is it
easier for people to install a few small modules of mine, or for me to
modify my scripts to not use these modules?

I'd say it's probably easier to just load your modules (of course, I haven't looked at Perl in a while but I *believe* it's as easy as adding Python modules (?)). But as the author of the program, you pretty much get to do whatever you wish. :wink:

Here's an older version of the billiard balls from about a month ago. My
first rendering with Radiance 3.7's DOF feature:
http://www.deviantart.com/deviation/21118483/

Nice...

- Rob