[Radiance-general] genprism | no explicit hole

Jelle Feringa // EZCT / Paris jelle.feringa at ezct.net
Fri Jan 7 12:25:17 CET 2005


Dear George, Greg,

Thank you both for your feedback, most helpful!


> One alternative approach would be to cut the outer polygon apart
> instead of keeping it intact. Just sort the corner points of all
> the holes eg. vertically, and make a horizontal cut at each
> height. You need to be careful to combine equal hights (allow for
> some numeric rounding error), and not to cut through tall holes
> sitting next to short ones. This method should work particularly
> well if the wall and hole polygons are orthogonal to each other,
> which happens to often be the case in architectural models.

George,

The solution proposed by the author of the python Polygon package does
exactly this; the complex polygon is split into a list of simple polygons,
using the center of gravity of the polygon. After the split it isn't
difficult to write it out to a .rad format!

> Maybe I'm being naive, but I've had good luck creating connecting seams
> between arbitrary vertices in holey polygons.  Make sure the outer
> vertices are in counter-clockwise order around the normal, and the
> interior (hole) vertices are clockwise.  Then, the algorithm goes
> something like this:
> 
> 	First N vertices are N vertices of outer contour
> 		Next M1 vertices are M1 vertices of hole 1
> 		Close hole loop with vertex that is copy of the first hole
> vertex
> 		Close seam by adding copy of last outer contour vertex
> 		Repeat 3 steps above for each hole contour
> 
> In Radiance, polygon seams can cross all over each other and it doesn't
> create any artifacts.  This is how fonts are rendered, for example.
> This is also why I never bothered implementing holes in polygons; I
> never found where seams caused a problem, and I couldn't think of any
> way besides seams for implementing holes.
> 
> -Greg

Greg,

Thanks for the sketched out algorithm, I was hoping for that kind of
response! By no means was my mail intended as criticism for the lack of
explicit holes, just hoping for a way to get passed the problem!
I'm sure your suggested algorithm will be helpful in further development of
my project.

Cheers,

Jelle.







More information about the Radiance-general mailing list