Understanding illum correctly?

Hello All,

I hoping someone can help me with my understanding of illum sources.
I've read RwR, done the tutorials, etc., and I think I'm OK with the
concept of secondary sources. All of the examples I've seen make illums
around windows and skylights. My situation is slightly different - I
have a skylight that is not flush with the interior of the space (i.e.
there is a well, the insides of which are painted white).

  ----------- <-- skylight glass
  > >
  > > <-- well
  > >
  > >
-- __ --------------- <-- ceiling of room
        \
         \
      -------------------- illum

   <- room ->

My intention is to make an illum at the ceiling of the room, which
incorporates the bounces that the light takes to get into the room.
Using the files below I've been able to simulate the skylight and the
results look pretty reasonable. However, when I run the simulation using
rad, I get the error message 'warning - no light sources found'. From
reading Axel Jacobs' excellent tutorials I was imagining that this
message would go away with the illums.

Any comments/tips/pointers would be great.

Cheers,

Mark Shewfelt
Enermodal Engineering Ltd.
Kitchener Ontario Canada

skylight.rif:

···

------------------------------
scene = sky.rad
scene = material.mat
scene = room3.rad
illum = skylight.rad
# The file in which to store indirect values
AMB= simple.amb
INDIRECT = 2
mkillum= -ab 2

material.mat:
------------------------------
skyfunc brightfunc window_dist
2 winxmit winxmit.cal
0
0

window_dist glass skylight_glass
0
0
3 0.8 0.8 0.8

# light is emitted from this but is invisible.
void illum skylight_illum
0
0
3 0 0 0

skylight.rad
------------------------------
# light enters skylight well from here
skylight_glass polygon skylight_window
0
0
12
   5.491076 6.503552 3.400000

   4.201076 6.503552 3.400000

   4.201076 5.213552 3.400000

   5.491076 5.213552 3.400000

# light is emitted from this "surface" into the room
skylight_illum polygon face.65
0
0
12
   5.491076 6.503552 3.00000

   4.201076 6.503552 3.00000

   4.201076 5.213552 3.00000

   5.491076 5.213552 3.00000

Hi Mark,

re-order the vertices of your illum polygon so that its surface normal
(right-hand rule) points into the room.

-cb

... and set the radiance vals of the illum source to sth. greater than zero,
(preferrably 1,1,1 if used with a modifer function)
... and use the light intensity distribution function calculated by mkillum
as modifier instead of 'void'

-cb

Hi Mark,

I realize this is confusing, but basically you want to put a "void" polygon in front of your opening. Carsten is correct that the polygon needs to point into the room, but some other slight modifications are necessary as well to work with rad, as identified below. It is probably better just to use a pane of glass instead of an illum initially.

From: Mark Shewfelt <[email protected]>
Date: December 7, 2006 1:25:21 PM PST

Hello All,

I hoping someone can help me with my understanding of illum sources.
I've read RwR, done the tutorials, etc., and I think I'm OK with the
concept of secondary sources. All of the examples I've seen make illums
around windows and skylights. My situation is slightly different - I
have a skylight that is not flush with the interior of the space (i.e.
there is a well, the insides of which are painted white).

  ----------- <-- skylight glass
  > >
  > > <-- well
  > >
-- __ --------------- <-- ceiling of room
        \
         \
      -------------------- illum

   <- room ->

My intention is to make an illum at the ceiling of the room, which
incorporates the bounces that the light takes to get into the room.
Using the files below I've been able to simulate the skylight and the
results look pretty reasonable. However, when I run the simulation using
rad, I get the error message 'warning - no light sources found'. From
reading Axel Jacobs' excellent tutorials I was imagining that this
message would go away with the illums.

Any comments/tips/pointers would be great.

Cheers,

Mark Shewfelt
Enermodal Engineering Ltd.
Kitchener Ontario Canada

skylight.rif:
------------------------------
scene = sky.rad
scene = material.mat
scene = room3.rad
illum = skylight.rad
# The file in which to store indirect values
AMB= simple.amb
INDIRECT = 2
mkillum= -ab 2

material.mat:
------------------------------
skyfunc brightfunc window_dist
2 winxmit winxmit.cal
0

window_dist glass skylight_glass
0
3 0.8 0.8 0.8

Replace the above with simple, clear glass type:

void glass skylight_glass
0
3 0.96 0.96 0.96

# light is emitted from this but is invisible.
void illum skylight_illum
0
3 0 0 0

You can take the illum out, as we won't need it (and the zeroes shouldn't be there, as Carsten mentioned).

skylight.rad
------------------------------
# light enters skylight well from here
skylight_glass polygon skylight_window
0
12
   5.491076 6.503552 3.400000

   4.201076 6.503552 3.400000

   4.201076 5.213552 3.400000

   5.491076 5.213552 3.400000

Take the above and put it into room3.rad, as you won't be making it into an illum with mkillum. The "illum=" line in your rad input file is for surfaces to be made into illum's, only. Orientation doesn't matter in this case.

# light is emitted from this "surface" into the room
skylight_illum polygon face.65
0
12
   5.491076 6.503552 3.00000

   4.201076 6.503552 3.00000

   4.201076 5.213552 3.00000

   5.491076 5.213552 3.00000

As Carsten points out, you need to reverse your vertex order:

# light is emitted from this "surface" into the room
void polygon face.65
0
12
   5.491076 5.213552 3.00000
   4.201076 5.213552 3.00000
   4.201076 6.503552 3.00000
   5.491076 6.503552 3.00000

···

---------------
Notice that I replaced the modifier with "void." Mkillum will take this file and compute an appropriate output distribution based on the light entering the space and up to 2 indirect bounces. (This may be modified by setting the "mkillum=" variable in rad.)

-Greg