计算机图形学(英文)cg10-04.ppt

Generalization * Angel: Interactive Computer Graphics 5E ? Addison-Wesley 2009 - d = Dx(b-a) d is an integer d 0 use upper pixel d 0 use lower pixel * Angel: Interactive Computer Graphics 5E ? Addison-Wesley 2009 Scan Conversion = Fill How to tell inside from outside Convex easy Nonsimple difficult Odd even test Count edge crossings Winding number odd-even fill * Angel: Interactive Computer Graphics 5E ? Addison-Wesley 2009 Fill at end of pipeline Convex Polygons only Nonconvex polygons assumed to have been tessellated Shades (colors) have been computed for vertices (Gouraud shading) Combine with z-buffer algorithm March across scan lines interpolating shades Incremental work small * Angel: Interactive Computer Graphics 5E ? Addison-Wesley 2009 span C1 C3 C2 C5 C4 scan line C1 C2 C3 specified by glColor or by vertex shading C4 determined by interpolating between C1 and C2 C5 determined by interpolating between C2 and C3 interpolate between C4 and C5 along span * Fill can be done recursively if we know a seed point located inside (WHITE) Scan convert edges into buffer in edge/inside color (BLACK) Then, flood fill it starting from (x, y) flood_fill(int x, int y) { if(read_pixel(x,y)= = WHITE) { write_pixel(x,y,BLACK); flood_fill(x-1, y); flood_fill(x+1, y); flood_fill(x, y+1); flood_fill(x, y-1); } } * Angel: Interactive Computer Graphics 5E ? Addison-Wesley 2009 Can also fill by maintaining a data structure of all intersections of polygons with scan lines Sort by scan line Fill each span vertex order generated by vertex list desired order * Angel: Interactive Computer Graphics 5E ? Addison-Wesley 2009 * Angel: Interactive Computer Graphics 5E ? Addison-Wesley 2009 Ideal rasterized line should be 1 pixel wide Choosing best y for each x (or visa versa) produces aliased raster lines * Angel: Interactive Computer Graphics 5E ? Addison-Wesley 2009 Color multiple pixels for each x depending on coverage by ideal line

文档评论(0)

1亿VIP精品文档

相关文档