|
|
Hey folks,
I have an idea to get more value out of the rays being shot during the
primary (hemisphere sampling) phase of the indirect illuminace calculation.
Currently, rays are shot equally in all directions. However, what I believe
we want is more rays to be shot toward more important areas, and fewer
toward less important areas.
Distance is one criteria for importance ( Importance = 1/r^2, closer =
more important). Brightness would be another.
The idea is that after shooting say, 25% of the total count of rays, we
tabulate the importance of those rays. Then, using a quick calculation
examine the distribution. One half of the hemisphere is likely to have a
higher average importance than the other. So if the difference is great
enough, we can subdivide the hemisphere in two. Now for the remaining rays
we shoot more of the them in the more important half of the hemisphere.
I'm not sure how to govern how many more rays to shoot in the more
important half. But we need some simple and fast method. so lets say the
ratio is 2:1
Say a render with count=100 is desired. Initially 25 rays will be shot in
all directions as usual. Using the importance info gathered at this step,
the hemisphere is subdivided. Then, 25 more rays would be shot in the less
important half, and 50 rays would be shot in the "important" half of the
hemisphere.
If the eye-ray/object instersection hit close to a wall, this would result
in twice as many indirect-illumination rays shot toward that close wall.
This would make sense because that nearby wall's contribution is more
important than other far-away objects in the scene.
To maintain speed, the subdivison method does not need to be precise, but
rather quick and dirty (perhaps a few discrete subdivided hemisphere
patterns to choose from?)
Comments?
Thanks,
George Pantazopoulos
--
Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/
Post a reply to this message
|
|
|
|
The idea sounds good... I think you will need to validate whether it is
possible to generate rays for the subdivision in a artifact-free way, and
whether you can generate the rays efficiently during rendering or use some
table.
In particular I think that it is a good idea to use importance more in the
renderer. You should check out some of the work of Per H Christensen
(search on google) if you haven't already.
Perhaps some ppl who have been around longer can validate / shoot it down
for use in povray, I have not looked at radiosity code.
Andrew
Post a reply to this message
|
|