图元的属性_章节总结
属性控制图元的显示特征 。在许多图形系统中,属性值以状态变量形式存储而图元使用当前状态值生成。当改变一个状态变量的值时,它仅仅影响在改变后定义的那些图元。
颜色是所有图元的公共属性,它常用RGB(或RGBA)分量来描述。红、绿和蓝颜色值存储在帧缓存中,它们用来控制RGB监视器的三个电子枪。颜色选择也可通过使用颜色表来实现。在这种情况下,帧缓存中的一个颜色只是一张表的一个索引,而该索引位置的表项中存储特定的一组RGB颜色值。颜色表对数据可视化和图像处理应用很有用,也可用来在不要求增加帧缓存容量的前提下提供大的可选颜色范围。计算机图形软件包常提供对使用颜色表或直接在帧缓存中存储颜色的选择。
基本的点属性是颜色和大小。在光栅系统中,各种大小的点用正方形像素阵列来显示。线属性有颜色、宽度和类型。线宽用标准的单像素宽度的倍数来指定。线型属性包括实线、划线和点线以及各种画刷或画笔类型。这些属性可应用于直线段和曲线。
字符可以按照不同颜色、大小、间隔和方向进行显示。为了设置字符串的方向,我们选择字符向上向量的方向和文本路径的方向。此外,我们可以设置相对于起始坐标位置的文字串对齐方式。标记符号可以通过选择各种大小和颜色的标准字符和专用符号进行显示。
由于扫描转换是光栅系统的一个数字化过程,因此显示图元有阶梯效应。这是由于将坐标值取整到像素位置造成的信息低取样所形成的。我们可通过应用调整像素强度的反走样过程来改善光栅图元的外貌。过取样是一种实现反走样的方法。即将每一像素看作为子像素的组合并计算每一子像素的强度及所有子像素的平均值。我们还可按子像素的位置来确定其贡献权值,给中心以最高权值。另一种选择是,进行区域取样并确定一个屏幕像素的区域覆盖百分比,然后设定与该百分比成比例的像素亮度。另一种反走样方法是构造能移动像素位置的硬件配置。
OpenGL中,图元的属性值由状态变量来维护。一次属性设定保证在其后定义的图元都有效,直到该属性值再次被改变。改变一个属性值不会影响前面的图元显示。在OpenGL中可以用RGB(RGBA)颜色模式或使用颜色表索引所选颜色的颜色索引模式来指定颜色。我们也可以使用a颜色分量来调和颜色值。我们还可以在颜色数组中指定与顶点数组相邻的值。除颜色外,OpenGL还提供选择点大小、线宽、线型和多边形顶点填充类型的函数,并提供显示用一组边或一组顶点定义的多边形填充区域的函数。我们也可以从显示中消除多边形的指定边,可以颠倒前向面和后向面的描述。在OpenGL中字符串可使用GLUT中的点阵或子程序来生成。为显示GLUT字符而设定的属性包括颜色、字体、大小、间隔、线宽和线型。OpenGL函数库中也提供对输出图元显示反走样的函数。我们可以用查询函数来获得状态变量的当前值,也可以用一个函数获得一组OpenGL属性的所有值。
属性控制图元的显示特征 。在许多图形系统中,属性值以状态变量形式存储而图元使用当前状态值生成。当改变一个状态变量的值时,它仅仅影响在改变后定义的那些图元。
颜色是所有图元的公共属性,它常用RGB(或RGBA)分量来描述。红、绿和蓝颜色值存储在帧缓存中,它们用来控制RGB监视器的三个电子枪。颜色选择也可通过使用颜色表来实现。在这种情况下,帧缓存中的一个颜色只是一张表的一个索引,而该索引位置的表项中存储特定的一组RGB颜色值。颜色表对数据可视化和图像处理应用很有用,也可用来在不要求增加帧缓存容量的前提下提供大的可选颜色范围。计算机图形软件包常提供对使用颜色表或直接在帧缓存中存储颜色的选择。
基本的点属性是颜色和大小。在光栅系统中,各种大小的点用正方形像素阵列来显示。线属性有颜色、宽度和类型。线宽用标准的单像素宽度的倍数来指定。线型属性包括实线、划线和点线以及各种画刷或画笔类型。这些属性可应用于直线段和曲线。
填充区域属性包括实心颜色填充、填充图案填充或仅仅显示区域边界的空心填充。各种图案填充用颜色阵列来描述,然后映射到区域内部。1.扫描线方法常用于填充多边形、圆和椭圆。2.内点填充用于扫描线与边界的每一对交点之间的像素位置从左往右进行。3.对于多边形来说,扫描线与其相交于顶点可导致两个交点。缩短某些边可解决这一问题。4.如果把填充区限定为凸多边形则扫描线填充算法可得到简化。如果场景中所有填充区域都是三角形则扫描线填充算法可进一步简化。沿每一扫描线的内部像素按照填充属性描述来赋以适当的颜色。绘画程序通常用边界填充方法或泛滥填充方法显示填充区。这两种方法都需要一个起始内点。然后从起始点开始逐个像素绘制直到边界。
区域也可以用颜色调和来填充。这种类型的填充应用于反走样和绘画软件包。软填充程序为区域提供了一个与先前填充颜色有相同变化的新填充颜色。线性软填充算法是这种方法的一个例子,该算法假设先前的填充是前景色和背景色的线性组合,然后从帧缓存设置中确定这种相同的线性关系,并用于以新颜色重新对区域涂色。字符可以按照不同颜色、大小、间隔和方向进行显示。为了设置字符串的方向,我们选择字符向上向量的方向和文本路径的方向。此外,我们可以设置相对于起始坐标位置的文字串对齐方式。标记符号可以通过选择各种大小和颜色的标准字符和专用符号进行显示。
由于扫描转换是光栅系统的一个数字化过程,因此显示图元有阶梯效应。这是由于将坐标值取整到像素位置造成的信息低取样所形成的。我们可通过应用调整像素强度的反走样过程来改善光栅图元的外貌。过取样是一种实现反走样的方法。即将每一像素看作为子像素的组合并计算每一子像素的强度及所有子像素的平均值。我们还可按子像素的位置来确定其贡献权值,给中心以最高权值。另一种选择是,进行区域取样并确定一个屏幕像素的区域覆盖百分比,然后设定与该百分比成比例的像素亮度。另一种反走样方法是构造能移动像素位置的硬件配置。
OpenGL中,图元的属性值由状态变量来维护。一次属性设定保证在其后定义的图元都有效,直到该属性值再次被改变。改变一个属性值不会影响前面的图元显示。在OpenGL中可以用RGB(RGBA)颜色模式或使用颜色表索引所选颜色的颜色索引模式来指定颜色。我们也可以使用a颜色分量来调和颜色值。我们还可以在颜色数组中指定与顶点数组相邻的值。除颜色外,OpenGL还提供选择点大小、线宽、线型和多边形顶点填充类型的函数,并提供显示用一组边或一组顶点定义的多边形填充区域的函数。我们也可以从显示中消除多边形的指定边,可以颠倒前向面和后向面的描述。在OpenGL中字符串可使用GLUT中的点阵或子程序来生成。为显示GLUT字符而设定的属性包括颜色、字体、大小、间隔、线宽和线型。OpenGL函数库中也提供对输出图元显示反走样的函数。我们可以用查询函数来获得状态变量的当前值,也可以用一个函数获得一组OpenGL属性的所有值。