您的位置:首页 > 理论基础

计算机图形学(三)_图元的属性_14_ OpenGL填充区属性函数(上)

2016-09-26 20:42 405 查看
4.14  OpenGL填充区属性函数

OpenGL中仅提供对凸多边形的填充区子程序。显示一个填充凸多边形要经过下列四个步骤:

    1.定义一个填充图案。

    2.引用多边形填充子程序。

    3.激活OpenGL多边形填充特性。

    4.描述要填充的多边形。

       多边形填充图案一直显示到包括多边形的边。因此,填充区中没有边界线,除非特别指定要显示边界线。除了为多边形内部指定一个填充图案,还有其他多个的选项。一个选项是显示一个空心多边形,其中仅生成边而没有内部颜色或图案。空心多边形与显示一个封闭多边形图元等价。另一选项是只显示多边形顶点而没有内部填充且没有边。同样,我们也可以为多边形填充区的前向面和后向面指定不同的属性。
14.1   OpenGL填充图案函数

    默认时,凸多边形使用当前颜色设定显示成一个实心颜色区域。为了用OpenGL的图案填充一个多边形,我们使用32位 × 32位的掩模。掩模中值为1表示对应像素设为当前颜色,值为0表示对应的帧缓存位置的值不变。填充图案使用OpenGL数据类型GLubyte以无符号字节进行描述,如同在glBitmap函数中一样。例如,用十六进制值定义一个位图:
GLubyte fillPattern [ ] = {
Oxff, 0x00, 0xff, 0x00, ...};
如3.19节(点击打开链接)中的bitShape一样,这些位必须从图案的底行开始描述,直到图案的最高行(32 )。该图案从显示窗口的左下角开始,在整个显示窗口中重复,而指定的多边形用与其重叠的图案部分填充(参见图4.31)。



一旦建立了一个掩模,可用下列函数将其用做当前填充图案:
glPolygonStipple (fillPattern);
接下来,在指定要用当前图案填充的多边形顶点之前必须激活填充子程序。这使用下列语句来实现:
glEnable (GL_POLYGON_STIPPLE);
类似地,使用下列语句关掉图案填充:
glDisable (GL_POLYGON_STIPPLE);

图4.32给出了3 × 3的点阵如何覆盖32 × 32的位掩模,该掩模可用于填充一个平行四边形。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息