I've been re-reading Takeo Igarashi's SigGraph 1999 paper on Teddy
where he describes the inflation method that TPainter 's is based on. TPainter uses a slightly different approach, making use of the outline of a finished 2D drawing as opposed to Teddy using paint strokes, but the actual inflation method looks similar. After reading through this a couple of times, it seems to me that a potentially simpler and quicker method might be to build a heightmap by accumulating successive logical ANDs of increasingly offset BitBlts of the original image, so that heightmap pixels with the greatest planar distance to the edges of the original image would accumulate the highest values. This would take a number of BitBlt's to accomplish, but the offset of each pass could possibly be increased more quickly to reduce the number of passes. Once the heightmap was built, it would then be interpreted into a triangular mesh (somehow) and textured with the original drawing. This is probably not an original thought, has anyone seen this kind of thing implemented somewhere else? |
David Faught wrote:
> I've been re-reading Takeo Igarashi's SigGraph 1999 paper on Teddy > where he describes the inflation method that TPainter 's is based on. > TPainter uses a slightly different approach, making use of the outline > of a finished 2D drawing as opposed to Teddy using paint strokes, but > the actual inflation method looks similar. It is the same. > After reading through this a couple of times, it seems to me that a > potentially simpler and quicker method might be to build a heightmap > by accumulating successive logical ANDs of increasingly offset BitBlts > of the original image, so that heightmap pixels with the greatest > planar distance to the edges of the original image would accumulate > the highest values. This would take a number of BitBlt's to > accomplish, but the offset of each pass could possibly be increased > more quickly to reduce the number of passes. Once the heightmap was > built, it would then be interpreted into a triangular mesh (somehow) > and textured with the original drawing. > > This is probably not an original thought, has anyone seen this kind of > thing implemented somewhere else? Only indirectly. I have seen (what I would call) a "dual" version of this algorithm for thinning and skeleton generation but not exactly what you're describing. It would be interesting to see if that has better performance characteristics than the current algorithm or if it has other advantages. Cheers, - Andreas |
In reply to this post by David Faught
Am 12.07.2006 um 07:17 schrieb Andreas Raab:
> David Faught wrote: >> I've been re-reading Takeo Igarashi's SigGraph 1999 paper on Teddy >> where he describes the inflation method that TPainter 's is based on. >> TPainter uses a slightly different approach, making use of the >> outline >> of a finished 2D drawing as opposed to Teddy using paint strokes, but >> the actual inflation method looks similar. > > It is the same. > >> After reading through this a couple of times, it seems to me that a >> potentially simpler and quicker method might be to build a heightmap >> by accumulating successive logical ANDs of increasingly offset >> BitBlts >> of the original image, so that heightmap pixels with the greatest >> planar distance to the edges of the original image would accumulate >> the highest values. This would take a number of BitBlt's to >> accomplish, but the offset of each pass could possibly be increased >> more quickly to reduce the number of passes. Once the heightmap was >> built, it would then be interpreted into a triangular mesh (somehow) >> and textured with the original drawing. >> This is probably not an original thought, has anyone seen this >> kind of >> thing implemented somewhere else? > > Only indirectly. I have seen (what I would call) a "dual" version > of this algorithm for thinning and skeleton generation but not > exactly what you're describing. It would be interesting to see if > that has better performance characteristics than the current > algorithm or if it has other advantages. I remember a paper about giving a 3D look to 2D cartoon characters that might work similarly: Scott F. Johnston: "Lumo: Illumination for Cel Animation" in Proceedings of Second International Symposium on Non Photorealistic Animation and Rendering (NPAR 2002) A method is presented to approximate lighting on 2D drawings. The specific problem solved is the incorporation of 2D cel animation into live-action scenes, augmenting the existing method of drawn "rims and tones" with subtle environmental illumination. The image-based tools developed to solve the problem have both photorealistic and non-photorealistic applications. I think it does not actually build a 3D mesh but IIRC it used image processing to create a height field. - Bert - |
Free forum by Nabble | Edit this page |