Transcript 第三讲
注意! – 坐标系不是顺序产生的 – 而是一开始就设定好, 然后才能 计算出相应的转换关系 3D 建模 3D 渲染 3D2D 观察转换 其它处理 建模坐标系 -> ->单个对象位置、方向变换,多个对象的装配 世界坐标系 -> ->光照计算(颜色),纹理坐标计算 -> ->观察变换(投影变换) 观察坐标系 -> ->裁剪, -> -> 消隐,透明 -> ->设备坐标扫描转换为二维像素坐标, 定下每个像素颜色 2D 显示 2-1 设备(屏幕)坐标系 第3讲 彩色图形显示 1 光栅扫描原理 2 帧缓冲器 3 其它 1. 光栅扫描原理 2-3 阴极射线管(CRT) 阴极射线管(CRT: Cathode-Ray Tube)是图形显示器的核心 早期电视机中的显像管都是CRT 大多数视频监视器的操作都是基于标准CRT而设计 荧光粉层 电子枪 控制栅 加速电极 玻璃屏 红 绿 偏转系统 导电涂层 电子束 灯丝 阴极 聚焦系统 水平偏转 垂直偏转 阴极射线管(CRT)剖面图(穿透式) 2-4 偏转距离 玻璃屏 荧光粉层 电子枪 控制栅 加速电极 红 偏转系统 绿 导电涂层 CRT工作原理 电子束 灯丝 阴极 聚焦系统 水平偏转 偏转距离 垂直偏转 阴极射线管(CRT)剖面图(穿透式) 由电子枪发出的电子束(阴极射线),通过聚焦系统和偏转 系统,射向涂覆荧光层的屏幕上指定位置 在电子束冲击的每个位置,荧光层发出一个小亮点,而产 生可见图形 电子枪:在控制栅极上的电压电平控制下,产生带负电荷 的自由电子,通过聚焦、加速冲向荧火屏 聚焦系统:用来强制电子束在轰击荧光屏时会聚到一个小 点,保证电子束轰击荧光屏时产生的亮点足够小 加速电极:加速电极加有正的高电压,使经过聚焦的电子 束高速运动 偏转系统:控制电子束使其在荧光屏的适当位置绘图 2-5 荫罩法显示彩色的原理 荫罩法彩色CRT是在荧光屏每个光点处呈三角形排列着红、 绿和蓝三种颜色的三个荧光点 CRT有三支电子枪,分别与三个荧光点对应 2-6 由于三个荧光点很小,且靠得很近,所以每个光点所显 示的是一个具有混合颜色的光点 每支电子枪发出的电子束专用于轰击某一类荧光粉 荫罩栅格被安置在紧靠荧光涂层的地方 荧光屏上的荧光点、荫罩栅格上的小孔和电子枪被精确地 安排处于一条直线上,使得由某一电子枪发出的电子束只 能轰击到它所对应的荧光点。三个电子束经聚焦偏转之后 ,穿过荫罩栅格上的小孔,激活该小孔对应的三个荧光点 荫罩法结构示意 电子枪 光点 荧光点 荫罩栅 荧光粉 2-7 点状 栅格式 沟槽式 大多数球面与柱面显像管 Sony的Trinitron显像管 Mitsubishi的Diamondtron显像管 LG的Flatron显像 管 荫罩法彩色原理 三支电子束的强度等级可控制荫罩CRT显示的彩色 调节各电子枪发出的电子束强度,即可控制各光点中三 个荧光点所发出的红、绿和蓝三色光的亮度 彩色取决于红、绿、蓝荧光层激活的总量 荫罩法常用于光栅扫描系统 它能产生的彩色范围很大 图形系统的彩色CRT设计成RGB监视器 2-8 这些监视器采用荫罩法,且不经任何中间处理,直接从 计算机系统取得每支电子枪(红、绿和蓝)的强度等级 2. 帧缓冲器 2-9 光栅扫描显示的帧 在刷新式CRT光栅扫描方式中,电子束总是不断地从左到 右、从上到下反复扫描整个屏幕 电子束从左到右(横向)扫描一次为一条扫描线 从屏幕顶部到屏幕底部(纵向)的扫描线构成一帧图像 2-10 在每条扫描线末端,电子束返回到屏幕的左边,又 开始显示下一条扫描线 一帧图像是显示系统执行一次全屏幕循环扫描(一次 屏幕刷新)所产生的图像 每帧终了,电子束返回到屏幕的左上角,开始下一 帧 光栅扫描显示的帧 在扫描过程中,只要在对应时刻、对应位置控制电子束 的强度就能显示所要的图形 2-11 光栅扫描的逐行扫描 扫描线在屏幕上自上而下一条一条地扫描。当电子束从左 到右到达屏幕的右边在每条扫描线末端,电子束返回到屏 幕的左边,又开始显示下一条扫描线。在回扫过程中,电 子束几乎不发射出电子,而且速度也很快 水平回扫(horizontal retrace):每条扫描线扫过后,返回 到屏幕左端 垂直回扫(vertical retrace):当电子束到达屏幕底部时, 又返回到屏幕左上角,从头开始扫描下一帧 2-12 水平回扫 垂直回扫 光栅扫描的隔行扫描 某些系统采用隔行(interlaced)刷新方式,每帧显示分 为两趟: 第一趟:电子束从顶到底,一行隔一行地扫描 第二趟:垂直回扫后,电子束则再扫描另一半扫描 线 以这种方式的隔行扫描使在逐行扫描所需时间的一半时 就能看到整个屏幕显示 奇场 2-13 偶场 光栅扫描刷新频率 光栅扫描显示器每秒刷新的循环数称CRT的刷新频率 一般,光栅扫描显示器的刷新是按每秒60到80帧的速 率进行的,但有些系统设计成更高的刷新速率 刷新频率以每秒多少周期或赫兹(HZ)为单位来描述: 一个周期对应于一帧 每秒60帧的刷新频率为60HZ 注意:刷新频率与物体的复杂度无关,也不会因物体的复 杂度而影响其显示的质量 2-14 光栅扫描显示的帧缓冲器 光栅扫描显示器显示图像或画面是由像素组成 图像所有像素的强度值都要存放在一个存储器中 2-15 这个存储器称为帧缓冲器(frame buffer)或刷新存储器 (refresh buffer),俗称显示存储器 帧缓冲器与屏幕象素 光栅扫描系统能较好地适用于包含细微阴影和彩色模式的 场景的逼真显示,因此,光栅扫描显示器具有丰富的灰度 和色彩,能产生真实感很强的复杂图形 光栅扫描的帧缓冲器对屏幕每一点都有存储强度/颜色信息 的能力。帧缓冲器的单元个数至少与显示器能显示的像素 总数相同,且存储单元一一对应于可寻址的屏幕像素位置 2-16 在每像素一位(二值)系统中,每个屏幕点或亮或暗,只 需一个二进位来控制屏幕位置亮度,这时的帧缓冲器通 常叫做位图(bitmap) 彩色显示和单色多灰度显示时,要能显示彩色并且强度 可变,就需附加位,每个像素需要使用多个二进位表示 ,此时,帧缓冲器常常视为像素图(pix-map) 帧缓冲器与颜色种类 帧缓冲器每一个存储单元的位长决定了一幅画面上能同时显 示的不同灰度的数目或颜色的种类 – 若帧缓冲器存储单元的位长为n,那么,帧缓冲器能支持一幅画面上同 时显示的灰度等级或颜色种类数为2n: –高质量的光栅图形系统的帧缓冲器中每个象素对应24位,即每个 电子枪发出的电子束的强度有256个等级,则该显示器能显示28 ×28×28 = 224 =16兆种颜色 –每个光点具有24个存贮位的RGB彩色系统通常称为全彩色系统或真 彩色系统 – 在采用彩色表之前, • 物理屏幕一幅画面上可以同时显示的颜色种类数? • 该显示系统最多能够显示的颜色种类数? 2-17 帧缓冲器、分辨率与颜色种类 假定显示器的分辨率为m×n,需要同时显示k种颜色,那 么帧缓冲器的容量v至少要求为: v m n lg k 或者,假定显示器的分辨率为m×n,帧缓冲器的容量为v, 那么,可以同时显示颜色种类数k可表示为: k 2-18 v 2 m n 帧缓冲器、分辨率与颜色种类 通俗地讲:帧缓冲器的容量一定时,分辨率越大,帧缓冲器 中每个单元可分配的位长越小,可同时显示的颜色种类也越 少 例如:具有1M字节的帧缓冲器: • 若分辨率为640×480,则帧缓冲器每单元的位长就为 24位 • 若分辨率为1024×768,则帧缓冲器每单元的位长就 为略多于8位 2-19 帧缓冲器的位平面 位平面结构: 像素的每一位各自存放在不同的存储体,这样,一幅画面 上所有象素的相同位存储在同一存储体内,这就是位平面 一般情况下,帧缓冲器的每个单元有多少位就可分成多少 个位平面 2-20 由于使用多个存储体,可一次同时读出更多的像素信息 ,降低了对帧缓冲器工作速度的要求,在中、高性能的 图形显示器中得到广泛采用 位平面的数目就是帧缓冲器的深度,也就是颜色的深度 (灰度等级或颜色种类) 多灰度显示的位平面 位平面 3 数模转换 黑白两种颜色 8 个灰度等级 位平面 2 位平面 1 帧缓冲器、位平面与多灰度显示 即:若帧缓冲器的位平面的数目为n,则屏幕上一 次可同时显示的颜色种类/灰度等级数是2n 2-21 彩色显示的位平面 用于高分辨率彩色显示时所需要的帧缓冲器的开销是相 当高的 作为帧缓冲器可能要求几兆字节存贮量,这由该系 统的分辨率决定 每个像素24位,而屏幕分辨率为1024×1024的系统 需要1024×1024 ×24 ÷ 8≈ 3MB存贮量作帧缓冲器 蓝 蓝 8位 位平面 绿 红 绿 24 位 位平面 8位 数模转换 红 位平面 8位 1024X1024X24=25165824 位 2-22 帧缓冲器与彩色显示 帧缓冲器的分页 帧缓冲器的容量往往比一幅屏幕画面的像素图大得多 这时,帧缓冲器区域分成若干页面,每个页面存放一幅 屏幕画面 帧缓冲器可以同时存放多幅画面的像素图 通过控制器实现不同画面的切换 页面的大小可以划分得比屏幕位图大得多,甚至是整个帧 缓冲器 2-23 从程序员的角度来看,可输出显示的画面将远大于实际 的物理屏幕,此时,物理屏幕仅是一个窗口,它显示的 不过是全部画面的一部分 彩色查找表技术 彩色查找表或颜色索引技术: 2-24 在帧缓冲器与显示屏的数模转换器之间增加一个查色表 (Color Lookup Table,又称调色板),对显示的颜色进行 索引 不增加帧缓冲器存储容量而得到更多颜色 彩色查找表的结构 彩色查找表(彩色表)可看成是一 维线性表 2-25 每一项(元素)对应于一种颜 色 帧缓冲器中每个单元存储的 是对应于某一像素颜色在颜 色表中的地址(索引),而 不是颜色值 0 ( 象 素 颜 色 种 类 ) 彩 色 表 地 址 196 255 彩色表元素 (帧缓冲器单元位长) 彩色查找表的结构 彩色表的地址长度由帧缓冲器每个存储 单元的位数决定 这确定一幅画面能同时显示的颜色 种类数 彩色表的元素位长由帧缓冲器每个存储 单元的基色数决定 这决定显示器可选择显示的颜色种 类总数 2-26 0 ( 象 素 颜 色 种 类 ) 彩 色 表 地 址 196 255 彩色表元素 (帧缓冲器单元位长) 彩色查找表标注 例:帧缓冲器单元位长为8,彩色表的元素位长为24位(每 一个基色位长为8位),这样,一幅画面上能同时显示256 种颜色,而可得到1600多万种颜色的可能性 这称为:1600多万种颜色中同屏显示256种颜色 记为:256/16777216 蓝 来自帧缓冲器 绿 红 红 绿 蓝 8位 8位 8位 数模转换 红 8位 2-27 绿 8位 蓝 8位 彩色查找表其它功用 彩色表的使用还增加了一些附加功能。如: • 彩色表内容全部置成背景色可快速清除屏幕画面; • 假如帧缓冲器中的三个位平面中存放着三幅不同的单色 图像,可通过彩色表来选择其中的任意一幅进行显示, 也可将其中的两幅或三幅叠加显示 • 2-28 彩色表在动画中应用更加广泛 液晶和等离子 液晶显示:通过电流来改变液晶面板上的液晶分子排列, 使它能阻塞或传递内部光源发出的光 。 等离子显示:依靠高电压来激活显像单元中的特殊气体, 使它产生紫外线来激发荧光物质发光 。 刷新速率, 响应时间 色彩 ——每个像素都由三个单元构成,分别负责红、绿和蓝色的显示 ——彩色萤光粉 分辩率 亮度和对比度 视角,屏幕尺寸 …… 2-29 前景像素与背景像素的颜色融合 可见面判别 面绘制(渲染) 假设透明度系数0<=tn<=1 P = tF + (1 − t)B P = t0F + t1B1 + (1 − t0 − t1)B2 2-30 OpenGL的颜色处理函数 RGB,RGBA(RGB+α透明度系数)模式 glColor* (colorComponents); glColor3f (0.0, 1.0, 1.0); glColor3i (0, 255, 255); glColor4i (0, 255, 255,0.2); 颜色表模式: glutSetColor (index, red, green, blue); glEnable (GL_COLOR_TABLE) glIndexi (196); 颜色混合(调和):不作用于颜色表模式 glBlendFunc (sFactor, dFactor); (Sr Rs + Dr Rd , SgGs + DgGd , Sb Bs + Db Bd , Sa As + Da Ad ) glGetFloatv (GL_CURRENT_COLOR, colorValues); 2-31