2009/3/20 Alan Wolfe <alan.wolfe@xxxxxxxxx>: > Heya, > > I'm trying to code some shadow volume code (ie this > http://en.wikipedia.org/wiki/Shadow_volume) and am hitting a snag. > > To render the shadows right you have to find the silouette of the model in > relation to the light source. > > If a model has holes in it for the light to shine through (like a doughnut > or swiss cheese), finding one silouette edge isn't enough. > > I think i have a way to find all the silouette edges (basically check every > triangle on the mesh that isnt back face culled from the light to see if > it's and edge, and if so if it's not already part of a siloette edge find > the edge that contains that triangle) > > but thats a much costlier thing i think, so i'm trying to figure out, how > can you tell if a model has holes in it? That way i could set a flag on the > mesh saying it's ok to use the simpler test if there's no holes. > > Does anyone know a way to tell if a mesh has holes in it? If I understand it what You do is You create 2d silhouette from those edges? I presume You have to build some binary trees to speed-up searching "does new edge connect to other edges". If You found edge which connects to other edges - merge it to the tree. Otherwise create new one. You had to also merge the trees. ..... ;) It is just a guess. I imagine it as creating outlines and then finding out which outline is inside of which. If You have some lone edges - delete them . > > Thanks!! > Alan > -- "Brevity is the soul of wit." by William Shakespeare " It IS NOT all FACTS. It IS TRUE. I believe it SHOULD NOT BE BELIEVE LITERALLY. It IS TRUE." - jorgipogi --------------------- To unsubscribe go to http://gameprogrammer.com/mailinglist.html