Illums and 3 Sided Polygons

Dear Radiance Gurus,

I have noticed that Radiance does not like 3 sided polygons for illums. My understanding is that a minimum of 4 vertices are needed (Out of curiosity, I understand that shadow rays are traced to the centroid of an object. Unless the triangle is obtuse, it seem that it should be simple to find its centroid.)

I would like to know whether or not the rendering time and accuracy would be adversely affected by using 3 sided polygons as illums and living with the "aiming failure" error messages. The reason why I ask is because sometimes I use windows that have some curved profiles (such as gothic windows) that can not be modeled as 4 sided polygons (my modeling software creates them as a mesh of 3 sided polygons by default). I may be able to export some of the polygons as 4 sided but for some windows, there is no getting around having some polygons 3-sided. Even when I do export some polygons as 4 sided, there still are some instances when I get the "aiming failure" error message. As far as I can tell, the polygons are non-concave and have no opening. I have looked at creating an illum object outside of the window but unfortunately this approach leads to some goofy reflections on the inside. Any suggestions?

Marcus

···

_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today - it's FREE! hthttp://messenger.msn.click-url.com/go/onm00200471ave/direct/01/

Hi Marcus,

Didn't we have this conversation a few weeks ago? Look at the recent postings from Mark de la Fuente and the various responses regarding illum's and illum shapes.

The simplistic source sampling code in Radiance assumes that a rectangular distribution of rays may be used. This is done more in the interest of speed than anything else, but it does place some limits on the shapes of sources you can model. The closer to a rectangle (or parallelepiped) your source is, the closer to -dj 1 you can go with your source sampling. Triangles are problematic because Radiance fits them into a rectangle and distributes the rays about this rectangle's center. In the case of a right triangle, this sends a ray exactly to the center of the hypoteneus, and floating point errors take over from there to produce a hit about 50% of the time. Not a good situation, and other triangles guarantee we'll miss every time with this sampling strategy.

A better approach for illum's, as I mentioned in one of my earlier responses to Mark, is to create a larger rectangular illum to cover your opening, disregarding the actual shape of your window elements. For a large window with many elements, you're better off using a single illum to cover it, anyway, so you don't send multiple samples when it isn't really necessary. Mkillum will compute the correct average for the larger illum surface. So long as this surface doesn't intersect the walls or have similar problems with its fit to the window, the result should be a reasonable approximation.

The "aiming failure" warning message should be taken seriously, unless you happen to know from geometric arguments that it is a rare condition generating this error. In general, it means that you are underestimating contributions from the associated source or illum.

-Greg

Greg,

I did read through the previous threads about the illums about one month ago. Though my question was similar in nature, I was looking for a more theoretical explaination of what goes on because I had been encountering some issues with some illums that I had placed outside of a window.

As I mentioned before, I was getting some very strange looking reflections on the floor of my renders. Here is an example:

The window has a dog ear arch. The rectangular bottom part of the window I probably could have made into an illum while placing a separate illum outside for the upper portion of the window. Instead I used illums placed outside the entire window. While reading through RWR in the section explaining the adaptive source subdivision, it mentions that large light sources can be a significant source of error in a standard ray-tracing calculation. Because of this, the illum plane I created consisted of 8 sub-planes (similar to the illum planes created in the museum scene in RWR. The only difference is mkilum create the distribution instead of winbright). For some reason this is what is causing a significant problem with the reflection. Why is this? It seems that the rendering would be better because the illum sources are smaller. Anywho, I did take your advise and I made 1 large plane instead of the multiple subplanes. The reflection did improve. Here is what I came up with:

You can see that the reflection is improved. It still isn't completely natural but it isn't as disurbing as the first picture. I set -ds to 0.1 and -dj to 0.75 for this rendering. I attempted to do three things in order to improve the reflection. None exactly worked. The first method I tried was decreasing the -ds parameter. I used a rediculously low number (0.001) with -dj set to 0.3 to see what would come out. Unfortunately,there wasn't any improvement. Here is the result:

I do not know if the lack of improvement was do any limit in Radiance for the -ds parameter. The second method I used to attempt improve the reflection was to increase the sampling density (i.e., increase the image size). I rendered the reflection at 12 times the final image size. There wasn't any improvement using this method either. Here is the result:

Any improvement over the previous image was due to the higher direct jittering setting (0.65 vs 0.3). The last method I tried was increasing the direct jittering parameter to 0.85. Here is the result:

There is a noticable improvement although not completely natural. There were no failures with the illums (there were created as perfect squares) but all my other light sources generated "aiming failure" error messages so this isn't a good solution.

Does any know of any ways that I maight improve the reflection? Please help.

Marcus

···

Date: Wed, 1 Sep 2004 14:12:28 -0700
From: Greg Ward <[email protected]>
Subject: Re: [Radiance-general] Illums and 3 Sided Polygons
To: Radiance general discussion <[email protected]>
Message-ID: <[email protected]>
Content-Type: text/plain; charset=US-ASCII; format=flowed

Hi Marcus,

Didn't we have this conversation a few weeks ago? Look at the recent
postings from Mark de la Fuente and the various responses regarding
illum's and illum shapes.

The simplistic source sampling code in Radiance assumes that a
rectangular distribution of rays may be used. This is done more in the
interest of speed than anything else, but it does place some limits on
the shapes of sources you can model. The closer to a rectangle (or
parallelepiped) your source is, the closer to -dj 1 you can go with
your source sampling. Triangles are problematic because Radiance fits
them into a rectangle and distributes the rays about this rectangle's
center. In the case of a right triangle, this sends a ray exactly to
the center of the hypoteneus, and floating point errors take over from
there to produce a hit about 50% of the time. Not a good situation,
and other triangles guarantee we'll miss every time with this sampling
strategy.

A better approach for illum's, as I mentioned in one of my earlier
responses to Mark, is to create a larger rectangular illum to cover
your opening, disregarding the actual shape of your window elements.
For a large window with many elements, you're better off using a single
illum to cover it, anyway, so you don't send multiple samples when it
isn't really necessary. Mkillum will compute the correct average for
the larger illum surface. So long as this surface doesn't intersect
the walls or have similar problems with its fit to the window, the
result should be a reasonable approximation.

The "aiming failure" warning message should be taken seriously, unless
you happen to know from geometric arguments that it is a rare condition
generating this error. In general, it means that you are
underestimating contributions from the associated source or illum.

-Greg

_________________________________________________________________
Don�t just search. Find. Check out the new MSN Search! http://search.msn.click-url.com/go/onm00200636ave/direct/01/

Hi Marcus,

The trouble with your floor is that you have specified a very small, but non-zero value for the surface roughness. Radiance employs a hybrid technique for computing specularity, which does a closed-form computation of specular highlights related to light sources (including your illum's) plus a Monte Carlo sampling of other soft-specular reflections. If you set the roughness to zero, you will see a perfect mirror reflection of the window, without artifacts. Presumably, this is not what you are after. Alternatively, you may increase your surface roughness value and your reflection will improve. Finally, you can set the surface roughness to zero, then apply the included "gloss.cal" function to achieve a pure Monte Carlo sampling of reflected rays. This will lead to greater noise in the result, but will eliminate the source sampling artifacts you are now seeing:

wood_pattern texfunc mc_roughness
4 gloss_dx gloss_dy gloss_dz gloss.cal
0
3 .02 .02 .02

mc_roughness plastic wood_flooring
0
5 .5 .2 .05 .02 0

Of course, I am only guessing on the parameter values, but this should give you an idea of what I mean.

-Greg

···

From: "Marcus Jacobs" <[email protected]>
Date: September 6, 2004 3:52:37 PM PDT

Greg,

I did read through the previous threads about the illums about one month ago. Though my question was similar in nature, I was looking for a more theoretical explaination of what goes on because I had been encountering some issues with some illums that I had placed outside of a window.

As I mentioned before, I was getting some very strange looking reflections on the floor of my renders. Here is an example:

http://pg.photos.yahoo.com/ph/marcdevon/detail?.dir=b3e9&.dnm=1736.jpg

The window has a dog ear arch. The rectangular bottom part of the window I probably could have made into an illum while placing a separate illum outside for the upper portion of the window. Instead I used illums placed outside the entire window. While reading through RWR in the section explaining the adaptive source subdivision, it mentions that large light sources can be a significant source of error in a standard ray-tracing calculation. Because of this, the illum plane I created consisted of 8 sub-planes (similar to the illum planes created in the museum scene in RWR. The only difference is mkilum create the distribution instead of winbright). For some reason this is what is causing a significant problem with the reflection. Why is this? It seems that the rendering would be better because the illum sources are smaller. Anywho, I did take your advise and I made 1 large plane instead of the multiple subplanes. The reflection did improve. Here is what I came up with:

http://pg.photos.yahoo.com/ph/marcdevon/detail?.dir=b3e9&.dnm=d860.jpg

You can see that the reflection is improved. It still isn't completely natural but it isn't as disurbing as the first picture. I set -ds to 0.1 and -dj to 0.75 for this rendering. I attempted to do three things in order to improve the reflection. None exactly worked. The first method I tried was decreasing the -ds parameter. I used a rediculously low number (0.001) with -dj set to 0.3 to see what would come out. Unfortunately,there wasn't any improvement. Here is the result:

http://pg.photos.yahoo.com/ph/marcdevon/detail?.dir=b3e9&.dnm=1dad.jpg

I do not know if the lack of improvement was do any limit in Radiance for the -ds parameter. The second method I used to attempt improve the reflection was to increase the sampling density (i.e., increase the image size). I rendered the reflection at 12 times the final image size. There wasn't any improvement using this method either. Here is the result:

http://pg.photos.yahoo.com/ph/marcdevon/detail?.dir=b3e9&.dnm=dfa5.jpg

Any improvement over the previous image was due to the higher direct jittering setting (0.65 vs 0.3). The last method I tried was increasing the direct jittering parameter to 0.85. Here is the result:

http://pg.photos.yahoo.com/ph/marcdevon/detail?.dir=b3e9&.dnm=5814.jpg

There is a noticable improvement although not completely natural. There were no failures with the illums (there were created as perfect squares) but all my other light sources generated "aiming failure" error messages so this isn't a good solution.

Does any know of any ways that I maight improve the reflection? Please help.

Marcus

Thanks Greg for the information. I did increase the roughness value and I did get what I was looking for. I tried it with a window with a trifold arch. Here is the result:

Marcus

···

Date: Mon, 6 Sep 2004 22:55:00 -0700
From: Greg Ward <[email protected]>
Subject: Re: Illums and 3 Sided Polygons
Hi Marcus,

The trouble with your floor is that you have specified a very small,
but non-zero value for the surface roughness. Radiance employs a
hybrid technique for computing specularity, which does a closed-form
computation of specular highlights related to light sources (including
your illum's) plus a Monte Carlo sampling of other soft-specular
reflections. If you set the roughness to zero, you will see a perfect
mirror reflection of the window, without artifacts. Presumably, this
is not what you are after. Alternatively, you may increase your
surface roughness value and your reflection will improve. Finally, you
can set the surface roughness to zero, then apply the included
"gloss.cal" function to achieve a pure Monte Carlo sampling of
reflected rays. This will lead to greater noise in the result, but
will eliminate the source sampling artifacts you are now seeing:

wood_pattern texfunc mc_roughness
4 gloss_dx gloss_dy gloss_dz gloss.cal
0
3 .02 .02 .02

mc_roughness plastic wood_flooring
0
5 .5 .2 .05 .02 0

Of course, I am only guessing on the parameter values, but this should
give you an idea of what I mean.

-Greg

> From: "Marcus Jacobs" <[email protected]>
> Date: September 6, 2004 3:52:37 PM PDT
>
> Greg,
>
> I did read through the previous threads about the illums about one
> month ago. Though my question was similar in nature, I was looking for
> a more theoretical explaination of what goes on because I had been
> encountering some issues with some illums that I had placed outside of
> a window.
>
> As I mentioned before, I was getting some very strange looking
> reflections on the floor of my renders. Here is an example:
>
> http://pg.photos.yahoo.com/ph/marcdevon/detail?.dir=b3e9&.dnm=1736.jpg
>
> The window has a dog ear arch. The rectangular bottom part of the
> window I probably could have made into an illum while placing a
> separate illum outside for the upper portion of the window. Instead I
> used illums placed outside the entire window. While reading through
> RWR in the section explaining the adaptive source subdivision, it
> mentions that large light sources can be a significant source of error
> in a standard ray-tracing calculation. Because of this, the illum
> plane I created consisted of 8 sub-planes (similar to the illum planes
> created in the museum scene in RWR. The only difference is mkilum
> create the distribution instead of winbright). For some reason this is
> what is causing a significant problem with the reflection. Why is
> this? It seems that the rendering would be better because the illum
> sources are smaller. Anywho, I did take your advise and I made 1 large
> plane instead of the multiple subplanes. The reflection did improve.
> Here is what I came up with:
>
> http://pg.photos.yahoo.com/ph/marcdevon/detail?.dir=b3e9&.dnm=d860.jpg
>
> You can see that the reflection is improved. It still isn't completely
> natural but it isn't as disurbing as the first picture. I set -ds to
> 0.1 and -dj to 0.75 for this rendering. I attempted to do three things
> in order to improve the reflection. None exactly worked. The first
> method I tried was decreasing the -ds parameter. I used a rediculously
> low number (0.001) with -dj set to 0.3 to see what would come out.
> Unfortunately,there wasn't any improvement. Here is the result:
>
> http://pg.photos.yahoo.com/ph/marcdevon/detail?.dir=b3e9&.dnm=1dad.jpg
>
> I do not know if the lack of improvement was do any limit in Radiance
> for the -ds parameter. The second method I used to attempt improve the
> reflection was to increase the sampling density (i.e., increase the
> image size). I rendered the reflection at 12 times the final image
> size. There wasn't any improvement using this method either. Here is
> the result:
>
> http://pg.photos.yahoo.com/ph/marcdevon/detail?.dir=b3e9&.dnm=dfa5.jpg
>
> Any improvement over the previous image was due to the higher direct
> jittering setting (0.65 vs 0.3). The last method I tried was
> increasing the direct jittering parameter to 0.85. Here is the result:
>
> http://pg.photos.yahoo.com/ph/marcdevon/detail?.dir=b3e9&.dnm=5814.jpg
>
> There is a noticable improvement although not completely natural.
> There were no failures with the illums (there were created as perfect
> squares) but all my other light sources generated "aiming failure"
> error messages so this isn't a good solution.
>
> Does any know of any ways that I maight improve the reflection? Please
> help.
>
> Marcus

------------------------------

_______________________________________________
Radiance-general mailing list
[email protected]
http://www.radiance-online.org/mailman/listinfo/radiance-general

End of Radiance-general Digest, Vol 7, Issue 3
**********************************************

_________________________________________________________________
On the road to retirement? Check out MSN Life Events for advice on how to get there! http://lifeevents.msn.com/category.aspx?cid=Retirement