第二章 CG标准
? 图形标准的历史
– 见第一章
– http://accad.osu.edu/~waynec/history/lessons.html
? ISO标准:
– GKS及其编译系统
– CGM(计算机图元文件 )
– CGI(计算机图形接口)
– IGES(基本图形转换规范)
– STEP(产品数据转换规范)
?OpenGL
?VRML
?http://www.lnnu.edu.cn/xdjyjx/tuxing/Chapter5/CG_Txt_5_001.htm
2.0 图形系统标准分类
? 面向图形设备的接口标准:
计算机图形元文件 (CGM),(CRT,Mouse,…)
计算机图形接口 (CGI).设备驱动程序。
? 面向应用软件的标准:
程序员层次交互式图形系统( PHIGS),GL (图形程
序包 )
(三维)图形核心系统( 3D-)GKS
? 面向图形应用系统中工程和产品数据模型及其
文件格式:
基本图形转换规范( IGES)
产品数据转换规范( STEP)
Example,中国 CAD系统标准 —共八部分
B.1 计算机图形系统标准
B.2 CAD数据的表达与交换标准
B.3 零件库
B.4 电子设计自动化描述语言
B.5 技术制图
B.6 文件管理和光盘存档
B.7 术语标准
B.8 CAD系统汉字
2.1 CGI
? 五种功能集合
– 控制 功能集,5个方面
– 输出 功能集,5类
– 图段 功能集
– 输入与应答 功能集
– 光栅 功能集
ISO TC97
ISO DP 9636
ANSI VDI(1985)
? 提供控制图形硬件的一种与设备无关的
方法。
? 图形设备驱动程序的一种标准。
? 在用户程序和虚拟设备之间,以一种独
立于设备的方式提供图形信息的描述和
通信。
CGI是设备级的计算机图形标准,它规定了一个 CGI实现和 CGI
用户之间的接口。一个 CGI的实现叫做对象,对象既可以是硬
件设备也可以是一个程序。 CGI的用户就是用 CGI对象实现的
与设备无关的应用程序。 CGI提供了一些功能来实现一个 CGI
对象和一个 CGI应用程序之间数据交换。
对象和应用程序之间的接口由 CGI引用模式来描述,基于
CGI对象和 CGI应用程序的配置情况,引用模式提供了一个
概念上的框架说明 CGI在一个计算机图形环境中如何使用。
CGI有三种引用模式:应用、对象和 CGI产生器与解释器配
置。
为了使应用程序创建、保存、修改和显示图形,CGI提供了管道机
制。 CGI的管道分为三种:
( 1)图形对象管道,说明应用程序如何使用 CGI提供的功能来创建
图形;
( 2)光珊管道,说明图形对象管道及其相关的图形输出功能与光
珊虚拟设备及光珊操作功能之间的联系;
( 3)输入管道,说明 CGI虚拟设备如何支持交互式输入。
1.CGI控制功能集
控制功能集包括 CGI所涉及的虚拟设备和出错处理功能,用
以实现图形图像信息以及接口的图形与非图形部分的内部关
系的管理,这些功能分为七类:
( 1)虚拟设备管理,提供了对虚拟设备的控制,包括启动
和终止用户与 CGI虚拟设备的对话期、管理虚拟设备上的画
面等;
( 2)数值精度要求;
( 3)坐标空间;
( 4)视点,如何使定义在虚拟设备坐标空间中的图形图像
显示在绘画面;
( 5)裁剪;
( 6)其它;
( 7)出错处理。
2.CGI输出功能集
CGI输出功能集创建包含用户的画面的图形对象及
控制它们的显示,确定图形对象的几何和显示特性
。用户可以借助输出功能,使用标准绘图图元或广
义绘图图元来生成标准图形对象或非标准图形对象

CGI输出功能集包括以下四类功能:
( 1)图元功能,创建包含用户画面的图形对象;
( 2)属性功能,定义图形对象的属性;
( 3)属性控制功能,允许用户控制图形对象的;
( 4)输出查询功能,返回输出以及属性描述表和
状态表的有关信息。
3.CGI图段功能集
CGI图段功能集定义了图形对象组合到图段中的方
法,用唯一的图段标识符标识图形对象,产生、修
改和操纵图段的功能。
( 1)图段操作,包括对图段的产生、关闭、删除
和操纵图段的功能;
( 2)图段属性,设置和修改图段属性;
( 3)图段查询,用以获取与图段描述表和状态表
有关的信息。
4.输入和应答功能集
在 CGI中,按返回数据的类型将逻辑输入设备分为八类,
即:
定位、笔划、取值、选择、拾取、字符串、光珊和其它输
入设备。
光珊类的输入设备用来输入象素阵列,相应的物理设备是
扫描仪、摄像机等。其它输入设备的逻辑输入设备用来输
入指定格式的数据记录,这种物理设备的例子如声音输入
设备等。每类逻辑设备有四种输入方式:请求、采样、事
件和应答。在应答方式下,允许将该逻辑输入设备的当前
值应答在相应的 CGI虚拟设备上。
光珊功能集
大多数计算机图形设备或是向量设备或是光珊设备,二者都可以绘
制直线、圆等图形对象。然而,向量设备和光珊设备所绘制的图形
对象是不同的。向量设备上显示的图形对象是光滑连续的,不一定
与设备坐标相交,独立于图形设备的分辨率。光珊设备以点的阵列
来显示图形,表示图形的点总是位于设备坐标上。因此,光珊设备
所显示的图形没有向量设备所显示的图形光滑且显示的效果随设备
分辨率的不同而不同。在 CGI输出设备描述表中显示类型一项指定
了图形设备的类型,其值可以是 VECTOR(向量),RASTER(
光珊)或 OTHER(其它)。
光珊设备支持一些向量设备所不支持的功能,这些功能称为光珊操
作功能集。 CGI是支持光珊操作的第一个计算机图形标准。为了支
持光珊虚拟设备,除了图形对象管道外,还需要光珊管道。一个光
珊虚拟设备上的画面由许多象素组成,象素所占据的内存区域叫做
位图。画面由以象素阵列方式绘制的图形对象来生成,这些象素写
入位图,通过从位图中读象素并显示在光珊虚拟设备的绘画面上来
显示图形图像。
当图形对象以象素阵列方式显示后,作为一个图形对象的标识符就
丢失了。例如,当一个圆被以象素方式显示以后,一个圆被显示这
CGI提供的光珊操作功能包括产生、检索、修改和显示象素数
据的功能:
( 1)光珊控制,在 CGI在位图分为可显示位图和不可显示位
图,不可显示位图又分为全深度位图和映象位图。全深度位
图是和显示器上每个象素用多少位来表示相匹配的;而映象
位图的每个象素只有一位。位图操作可以把虚拟设备空间(
VDC)中特定区域内的图像映射到当前的设备空间( DC)中来
。在 VDC到 DC的一系列变换中并不会改变已有位图中象素的数
量,只会影响位图在 VDC中表示的区域。
( 2)光珊操作,包括象素阵列数据的检索和显示,各种形式
的位图运算以及位图区域的移动、合并和复制等。
( 3)光珊属性,用来设置源和目的位图之间进行象素操作的
绘图方式和填充位图区域功能。 CGI中定义的位图绘制方式有
:布尔运算型(与、或和非)、加运算型和比较运算型。此
外,CGI还提供了对光珊描述表、光珊状态表和位图状态表的
查询功能。
2.2 CGM
? ANSI 1986标准
? ISO 1987标准 —ISO编号为 ISO IS8632
? 是一套与设备无关的语义词法定义的文件
格式,规定了生成、存储、传送图形信息的格式,面
向系统和系统开发者,和 CGI配套提供。
? 组成:
– 说明 文件格式的规范
– 文件词法的 三种编码 形式
? 特点:通用性是其关键属性。
http://www.itl.nist.gov/fipspubs/fip128-2.htm
功能,The Computer Graphics Metafile (CGM)
is the International Standard for storage and
exchange of 2D graphical data.
文件格式支持,raster and vector images.
A metafile is a collection of elements,These elements may be the
geometric components of the picture,such as polyline or polygon,
They may be details of the appearance of these components,such
as line colour,They may be information to the interpreter about
how to interpret a particular metafile or a particular picture,The
CGM standard specifies which elements are allowed to occur in
which positions in a metafile.
CGM also has profile rules and a Model Profile to attempt to
solve the problem of flavours of standards,4 Internationally
Standardised Profiles (ISPs) have been developed for CGM,CGM
has been accepted as a MIME data type,
CGM历史
? 1987 - IS 8632,1987
? UK (by BSI) and the USA (by ANSI).
? IS 8632,1992,adding
– naming,external symbol libraries,compound clipping
paths,curve primitives and colour calibration support
? User,US Department of Defence,etc
? Latest news,CGM is also being discussed by W3C
as a standard for graphics on the WWW,Where
vector diagrams are being sent across the netwerk,
the use of CGM would result in lower file size,faster
transfer and editable files when compared with raster
formats such as GIF.
RALCGM
RAL-CGM is a program to interpret Computer Graphics Metafiles
?Translate them to a different encoding (Binary,Character or
Clear Text
?Display CGM's on screen using X-Windows,Silicon Graphics
GL,VGA screen on PCs or Tektronix 4200 series graphics
terminals)
?Send CGM's to a printer or plotter (PostScript or HPGL)
It runs on Unix machines (X11 needed for display) and PCs,plus
OpenVMS and VM
RALCGM was written by staff at Rutherford Appleton
Laboratory (RAL) in the UK,
http://www.agocg.ac.uk/train/cgm/ralcgm.htm
2.3 GKS
? 提供 app与图形 I/O设备间的功能接口,定
义了一个独立于开发语言的图形核心系
统,并可以被嵌入到相应的语言中。
? GKS在 app中的地位
? GKS的体系结构
应用说明:必须按所使用主语言的
约定方式,把 GKS程序 嵌入 到相应
的语言之中
JTC 1/SC 24
Computer
graphics,
image
processing and
environmental
data
representation
? ISO documents describe the GKS standard:
1,ISO 7942 Functional Specification
2,ISO 8651-1 Fortran Binding
3,ISO 8651-2 Pascal Binding
4,ISO 8651-3 Ada Binding
5,ISO 8651-4
6,ISO 8805 GKS-3D
7,ISO 8806 GKS-3D Bindings
GKS is a standard
specifying the input
and output primitives
for displaying 2D and
3D graphical data,
Although GKS has no
native file format,the
CGM (Computer
Graphics Metafile)
format is often closely
associated with its
use,
GKS在图形应用中的地位如图所示。图中每个层次可以调用下一层
次的功能。对于应用程序员来说,通常使用:
?面向应用层
?依赖语言的接口层
?操作系统
等资源 。
为了使图形应用程序获得更高的可移植性,GKS的体系结构具有
可更换设备驱动程序的元文件 等特点。 GKS的体系结构如 2.2.3所示。
其中氖的图形资源都必须由 GKS控制,应用程序( DDPi)不得旁路
GKS而直接使用图形资源。
GKS在应用程序和图形输入输出设备之间提供了功能接口,它包括一系列交互和
非交互式图形设备的全部图形处理功能,大致分为以下十类。
( 1)控制功能:执行打开、并闭 GKS以及使工作站进入或退出活
动状态和删除工作站等;
( 2)输出功能:确定输出图形类型;
( 3)输出属性:图素的各种属性以及各种图素在工作站上的表现
方式;
( 4)变换功能:实现规格化变换和工作站变换;
( 5)图段功能:对图形进行生成、删除、复制以及实现图段属性
控制;
( 6)输入功能:对各种输入设备初始化,设备工作方式、确定请
求、采样和事件输入;
( 7)询问功能:查询 GKS描述表、状态表、出错表、工作站描述
表、图素表等,查询 GKS状态值、级别、工作站类型、状态以及描
述表,图段状态等内容;
( 8)实用程序:实现 GKS的几何变换等;
( 9)元文件处理;
( 10)出错处理 。
GKS评价
GKS作为一个 二维图形的功能描述,它独立于
图形设备和各种高级语言,定义了用高级评议
编写应用程序与图形程序包的接口。 在任何配
有 GKS的图形软件中,只要有一个上述功能子
程序作为应用程序的接口,用户就可以根据自
己的需要,在应用程序中调用 GKS的各种功能,
这样编制出来的应用程序可方便地在具有 GKS
的不同图形系统之间移植。
2,4 PHIGS
? ISO IS 9592(1986年 )
PHIGS( Programmer’s Hierarchical Interactive
Graphics System) 目的:
其一,是向应用程序员提供的控制图形设备的图形
系统接口;
其二,图形数据按层次结构组织,使多层次的应用
模型能方便地应用 PHIGS进行描述;
其三,提供了动态修改和绘制显示图形数据的手段。
PHIGS是为具有高度动态性,交互性的三维图形应
用而设计的图形软件工具库。
最主要的特点
能够在系统中高效率地 描述应用模型,迅速修
改图表模型的数据,并能绘制显示修改后的图形
模型,它也是在程序与图形设备之间 提供了一种
功能接口 。
?在图形数据组织上,它建立了独立于工作站的
中心结构存储区与图形档案管理文件;
?在图形操作上,它建立了适应网状的图形结构
模式的各种操作;
?在图素的设置上,它既考虑了址维与三维的结
合,也满足矢量与光栅图形设备的特点。
PHIGS组成
由 328个用户功能子程序构成,按其内容可分为:
1,控制、
2,输出图元、
3,设置属性、
4,结构、
5,变换、
6,结构管理与显示、
7,档案管理、
8,输入、
9,图形元文件、
10.查询、错误控制及特殊接口功能模块。
说明,各模块相对独立,一
个模块仅通过系统的公共数
据结构与其他模块间相连。
各模块调用的公共子程序集
中在一个公共子程序模块中,
从而整个系统的逻辑结构清
晰,且没有重复的程序功能,
从而便于逐个模块地进行程
序开发,并可利用已经测试
通过的程序模块对正在高度
的程序模块进行验证,也为
整个 PHIGS的开发提供了方便。
2,5 IGES
? ANSI标准( 1982年 ?现在版本为 IGES5,0 )
? 事实上的工业标准
? 作用:提供不同 CAD/CAM系统间图形数据
转换
注,70年代末,美国 CAM-I提出了初始化图形
标准 IGES、产品数据定义接口 PDDI、产品数
据交换规范 PDES。
随着 CAD/CAM技术的广泛应用,产品的几何模型或产
品的完整信息模型 以计算机可以理解的数据结构存
贮在计算机内部。企业间、企业内部不同的职能部
门间经常需要进行产品信息的交换,由于 CAD/CAM系
统的不同,产品模型在计算机内部的表达也不相同,
直接影响到设计和制造部门和企业间的产品信息的
交换和流动 。导致了产品数据交换标准的制订。
问题背景
1980年,由美国国家标准局( NBS)主持成立了由波音公司和通
用电气公司参加的技术委员会,制订了基本图形交换规范 IGES
( Initial Graphics Exchange Specification),并于 1981年正
式成为美国的国家标准。
开发 IGES是为了能在计算机绘图绘图系统的数据库上进行数据
交换。 IGES开发吸取的思想主要来自波音公司的 CAD/CAM集成信息
网和通用电气公司的中性数据库。 IGES草案( IGES 1.0)于 1980年
1月发表,最初范围仅限于工程图纸所需的典型几何、图形和标注
元素( Entity)。 1980年春季,美国国家标准所( ANSI) Y14.26委
员会经表决,接受 IGES作为产品数据交换标准的一部分,于 1981年
1月发表。与此同时,一个旨在维护 IGES标准的委员会成立,致力
于 IGES的发展和应用。
标准的发展
IGES作为 ANSI标准发表以后,IGES委员会把注意力放在扩展
IGES到新的领域,为此设立了一些委员会研究新增的应用领
域。
1982年 IGES 2.0版本发表,包括了电子和有限元两个委员会
完成的工作。 1986年 IGES 3.0发表,包括了工厂规划和建筑
结构工程两个委员会的工作。在几何表示方面,IGES 3.0支
持曲面和三维线框表示,只是对 IGES 1.0有所改变,这在实
际的 CAD系统数据交换中是不够的,因为 CAD数据很大部分以
实体形式出现。 IGES在 CAM- I的协助下开发出实体模型数据
的实验规范 ESP( Experimental Solids Proposal)。 ESP能
处理边界表示模型,CSG模型和装配体,其中的 CSG部分成功
地用于福特汽车公司的 PADL-2系统、通用汽车公司的 GMSolid
和通用电气公司的 TRUCE系统之间的数据交换。 1988年 6月发
表的 IGES 4.0包括了 CSG模型,而实体的边界模型则包含在
IGES以后的版本中。
从 1981年的 IGES 1.0版本到 1991年的 IGES 5.1版本,和最
近的 IGES 5.3版本,IGES逐渐成熟,日益丰富,覆盖了
CAD/CAM数据交换的越来越多的应用领域。作为较早颁布的
标准,IGES被许多 CAD/CAM系统接受,成为应用最广泛的数
据交换标准。制订 IGES标准的目的就是建立一种信息结构
用来产品定义数据的数字化表示和通信,以及在不同的
CAD/CAM系统间以兼容的方式交换产品定义数据。
IGES元素
? Initial Graphics Exchange Specification
? 版本,1982,1988 IGES 4.0,IGES 5.0
? 文件格式是 ASCII码,五节:开始节,目
录入口 (DE),参数 (DP)节,整体节和结
束节。
2.6 STEP
? SIO/IEC JTC1的下属分技术委员会 SC4提
出,用于克服 IGES的不足。
? Standard for the Exchange of Product
model Data.特点:
? 覆盖产品整个生命周期
? 强调建立能存入数据库中的一个产
品模型的完整表示。
? 克服 IGES中的问题和缺点。
? 图形程序库,by SGI’ Kurt
? UNIX下运行,
? OpenGL—微 机,
? 分类:基本图素;坐标变换;设置属性
和显示方式; I/O 处理;真实图形显示。
2.7 GL(图形库 )
功能类
? 1,基本图素。 包括点、直线、多边形、三角形、
三角形风格、矩形、圆和圆弧、字符、曲线和
曲面以及读写象素等。
? 2,坐标变换。 支持旋转、平移、比例变换以及
窗口视图变换、投影变换和裁剪,同时支持用
户定义的各种变。
? 3,设置属性和显示方式 。可定义 选择线型、
填充图案、字体和光标,可设置 RGB和颜色表
两种选色方式以及明暗效果、双缓冲、各种位
图等多种绘图方式。
? 4.输入/输出。 用于启动输入输出设备,并对
相应的事件队列进行处理。
? 5,真实图形显示。 这里有消除隐藏线、面、光
照处理和深度排队。
GL在 UNIX操作系统下运行,具有,
?C,
?Fortran,
?Pascal
三种语言联编形式。
GL和其他三维图形标准相比具有以下特点:
( 1)图元丰富, 除具有一般图元外,还具有 B样条曲线,Bezier
曲面,NURBS曲面等。
( 2)颜色, GL肯有 RGB和颜色索引两种方式,有 Gourand和
Phong光照模型,使表面显示的亮度与色彩变化柔和。
( 3) Z缓冲技术 是在每个象素上附加一个 24位或 48位的表示 Z
值的缓冲存储器,这对曲线曲面的消隐,亮度随度变化的处理,
提高图形处理效率等都具有重要作用。
( 4)光源,光源的强芭、颜色、物体的反方向、镜面反射系数、
漫反射系数等都影响到一定光源照射下物体最终的显示效果。
GL提供了充分的光源处理能力,使用户能得到非常生动的图象。
( 5) GL和 X窗口,GL既可单独运行,也可在 X窗口环境下运行,
进而可支持网络上的用户。
2.8 图形文件格式基础(略)
? 作为练习
? http://www.faqs.org/faqs/graphics/fileforma
ts-faq/part3/preamble.html