




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机图形学课程设计题目名称: 真实感与非真实感显示技术综述班 级:学 号: 学生姓名: 真实感与非真实感显示技术综述摘要在基于非真实感绘制的实时场景渲染过程中,为了达到更逼真的效果,三维物体在光照作用下产生的阴影需要被实时绘制并能够体现设计者的风格。本文利用现代可编程图形显示硬件技术,真实感与非真实感显示技术的意义以及常用真实感图形的绘制算法,提出了一种基于阴影线算法的阴影绘制方法,与采用传统的阴影图方法绘制阴影的效果相比较,该方法具有更好的艺术效果。在本系统中, 我们主要采用了两种消隐方法, 它们是背面删除及Z 缓冲区深度排序法。背面删除法用于单个实体的消隐, 而Z 缓冲区深度排序则用于整个3D 布景的隐藏面的删除。通过这两种类型的隐藏面的消隐方法, 我们就可以生成一个真实的3D 图形。关键词:非真实感绘制 阴影图 阴影线 消隐方法 背面删除法 Z 缓冲区深度排序法一 真实感图形绘制研究的重要意义绘制技术是计算机图形学的一个重要分支,它研究的是如何将几何定义的模型变成可视的图象。真实感图形绘制技术是图形学绘制技术发展的结果,它的目标是根据几何场景的造型、材质和光源分布,将其转变成跟真实场景在视觉效果上非常相似的图象,使观察者有身临其境的感觉。在近三十年的时间里,随着硬件技术和计算机图形学的高速发展,真实感图形绘制技术取得了举世嘱目的成就,并且已广泛应用于CADCAM、计算机动画、虚拟现实、科学计算可视化等众多领域,为社会的发展与进步做出了重大贡献。几十年来,CADCAM 技术的飞速发展,对许多行业的设计和生产过程产生了巨大影响,使其自动化程度达到了前所未有的高度。在机械设计方面,传统的产品设计通常需制作实物模型来检查设计效果,尤其是那些对外形美感要求较高的产品,一般要先按图纸制作样品,再根据样品反映的问题进行多次修改,耗费大量人力、物力和时间。若采用真实感图形显示技术,则可方便地在屏幕上显示产品在各种视角下的逼真图形,并且可直接在计算机上对设计参数进行交互修改和绘制,直到满意为止。既可大大减少反复生产样品的时间,缩短设计周期,也节约了生产样品的资金和人力;在建筑方面,建筑师往往要花费很大的精力绘制效果图,如果采用真实感图形绘制技术,不但可以把这方面的工作交给计算机处理,还可以结合虚拟现实技术进行建筑物体的虚拟漫游,这样,建筑师和用户在建筑物还处于设计阶段就可以非常直观地了解建成后的外观和内部空间的布置及采光效果等,做到胸有成竹。 计算机动画是真实感图形绘制技术的又一重大应用领域。在电影和电视广告中,要达到某些特定的效果,往往需要进行许多次的试验和拍摄。那些危险场面、破坏场面和需要动物配合的场面不但令电影工作者们非常为难,而且提高了电影的制作费用,还可能对人员造成伤害。另外,有些事物和景象更是现实世界无法找到的,比如科幻片或者灾难片,无法实景拍摄。通过计算机绘制出高度真实感的虚拟场景,这些困难都可以方便地解决。可以说,真实感图形绘制技术给影视工作者和艺术家提供了一个尽情发挥想象力的舞台。 虚拟现实是当前的一个热门研究课题,它在飞行训练、战斗模拟、计算机游戏等许多领域具有十分广阔的应用前景。真实感图形绘制技术是基于图形的虚拟现实的核心技术之一,直接关系到人机交互速度和图象输出质量。科学计算可视化是当前的另一热门课题,它已在医学、地球科学、天文物理、化学、机械工程等许多方面取得了巨大成就,将大批工程技术人员和医务人员从大量繁琐的数据中解放出来。真实感图形是科学计算可视化的输出手段之一,绘制质量将直接关系到工程技术人员对原始数据的理解和医务人员对病人病情和病因的判断,具有突出的现实意义。 真实感图形绘制技术的应用领域非常广阔,它的影响正迅速地向工业生和社会生活的各个领域渗透。可以预料,在未来社会里它必将发挥更为重要的作用。二 常用真实感图形的绘制算法真实感图形绘制是计算机图形学中的一个重要课题。早在1967 年,计算机绘制真实感图形就被提出,只是由于当时计算机运算速度慢,图形显示设备功能差,造价高,使其发展和应用受到了一定程度的限制。近三十年来,随着计算机硬件技术的飞速发展,真实感图形绘制技术取得了举世嘱目的巨大成就,光照模型、绘制方程、消隐算法、光线跟踪算法、辐射度算法和体绘制算法相继被提出和完善,真实感图形绘制技术也随之日益成熟。2.1 光照模型现实世界中,物体所表现的颜色都是光能作用的结果。客观世界中的物体都不同程度地具有发射光线、吸收光线、反射光线和透射光线的能力。光线照射到物体表面时,一部分被吸收并转化为热能,其余部分被则反射或透射。正是部分反射或透射的光线被眼睛接收后,我们才感觉到物体的存在及其所特有的形状和色彩。因此,要绘制高度真实感图形,就必须定义场景中的光源。为了便于计算,我们必须定量地描述光的多少或强弱,亮度和强度就是用来定量描述光的两个基本概念。物体表面光的亮度是指单位投影面积在单位立体角内发出的光的能量,它是物体表面上的小面元所具有的性质。对点光源常用强度来代替亮度。强度是指点光源在单位立体角内发出的光能。同样大小的被照射面离光源越远,接收到的光能就越少。光的传播服从反射定律和折射定律,光源与物体所表现颜色的关系可通过光照模型来模拟。物体所表现的颜色与光源有密切的关系。光照模型的作用就是计算物体可见表面上每个点的颜色与光源的关系,因此它是决定图形真实感的一项重要内容。物体表面发出的光是极其复杂的,它既与环境中光源的数目、形状、位置、光谱组成和光强分布有关,也与物体本身的反射特性和物体表面的朝向有关,甚至还与人眼对光线的生理和心理视觉因素有关。把这一切都通过计算机精确地计算出来是不现实的,我们只能用尽可能精确的数学模型光照模型来模拟光和物体的相互作用,从而近似地计算物体可见表面每一点的亮度和颜色。最基本的光照模型是Phong模型,它首次使光源和视点的位置可以任意选定。Phong 模型表达式如下:I=IaKa+IiKd(NL)(r+K)+ IiKs(NH)n/(r+K)其中,IaKa为环境光参数Ii为入射光强Kd为物体表面的漫反射系数Ks为物体表面的镜面反射系数N 为物体表面的法向L 从物体表面指向光源的向量r光源到物体表面的距离H 视线与L 的平分向量Phong 模型假设反射光线集中在反射方向(反射角等于入射角的方向)附近,并随着与反射方向夹角的增大,反射光急剧减弱。用Phong模型计算所得的物体象塑料,镜面反射光是光源的颜色,不能反映物体表面的材料特性,而且镜面反射在入射角很大时有失真。这个模型模拟的反射效果不理想,用它生成的图形缺乏质感。后来Blinn,Cook,Torrance等人相继对Phong模型进行了一些修改,使图形的真实感有明显的提高。1982 年Cook和Torrance提出了一个基于物理光学的表面反射模型CookTorrance 模型Cook82,使得模型中反射光的位置和分布与实际情况非常接近,因而用它绘制的图形具有很好的质感。CookTorrance模型的表达式如下:I=IaKaf+( KdF0(NL)+ KsDFG/(NV)/Ck其中,IaKaf为环境光参数Kd,Ks为漫反射与镜面反射的比例,Ks+Kd=1D 为物体表面的分布函数F 是菲涅耳函数,表示入射角和材料折射率的不同引起的镜面反射率不同G 为几何衰减因子,由微平面相互遮挡Cook模型运用了光学中的菲涅尔方程,此方程在入射光为非偏振光时是非常精确的。利用上述光照模型,可以计算出场景中各物体每一点的颜色。该颜色只与直接光源、物体的材料及该点的法向量有关,与它周围的物体还没有建立联系,这样的光照模型被称为局部光照(local illumination)模型。但现实世界里的大多数物体都具有明显的反光特性(因此我们的眼睛才能感觉到它们的存在),有些物体还具有透明特性,一个物体的反射光和透射光也会对其它物体产生明显的影响。光线跟踪算法和辐射度算法较好地解决了这方面的问题,它们被称为全局光照(global illumination)模型。其中光线跟踪算法解决了物体之间的镜面反射和透射的影响,能产生镜像、透明和阴影等效果,但对漫反射处理不足,辐射度算法正好解决了这一不足,它从能量的角度出发,很好地模拟了物体之间的漫反射。2.2光线跟踪算法光线跟踪(RayTracing)的思想是由A.Appel 首先提出的Appe68。后来,Go1dstein 和Nagel 对Appel 的光线跟踪思想作了一些改进,并首次用光线跟踪算法产生了阴影效果Gold71,使计算机绘制图形的真实感向前迈进了一大步。但由于当时计算机运算速度相对较慢,光线跟踪算法的时间开销极大,一般的计算机系统难以承受;另外,当时的图形显示设备性能有限,没有显示高度真实感图形的硬件基础,使光线跟踪的发展受到了一定程度的限制。直到1979年D.S.Kay用光线跟踪算法产生了反射和折射效果kay79,迎来了光线跟踪算法的又一次飞跃。这个算法对镜面反射和透明性的模拟非常成功,使物体的高光点、镜像和透明效果非常自然。它是真正意义上的高度真实感图形显示算法,现在仍被广泛采用。光线跟踪基本思想可用算法形式描述如下:for 需要计算的每个象素e确定通过视点V 和象素e 的光线R;Ray-tracing(R,I, 1);置e 的亮度为IRay-tracing(R, I, A)/*R 为当前跟踪光线,I 为当前跟踪光线的亮度,A 为I 对总亮度的贡献系数*/if A /为最小贡献系数I = 0;ElseR 与景物求交,返回可见点P1;计算P1点的局部照明亮度Ic;if P1所在的表面为光滑镜面确定P1的镜面反射光线Rs;Ray-tracing(Rs,Is,ksA);if P1所在的表面为透明面确定P1的规则透射光线Rt;Ray-tracing(Rt,It,ktA);I = A (Ic+ksIs+ktIt);光线跟踪算法使计算机产生图形的真实感大幅度提高,但卓越的图形绘制效果与昂贵的的计算开销形成了鲜明的对比。为了使这一算法真正实用化,减少运算量势所必行,从此,许多人开始研究光线跟踪的加速方法。光线跟踪中最费时的运算是线面求交,有关资料表明,如果不采取加速措施,线面求交约占整个光线跟踪时间的95以上Wfit80 。因此,减少运算量的关键在于提高线面求交的速度或减少线面求交的次数。层次包围盒方法是减少线面求交次数的重要方法。它的基本思想是,在复杂形体外包一个容易求交的包围盒,例如长方体或球面等。在光线与该复杂物体求交之前,先判其是否与包围盒相交,若与包围盒不相交,说明它与包围盒中的复杂形体也不相交,从而节约了时间。只有当光线与包围盒有交时,才有必要与复杂形体进行求交运算。若原复杂形体由多个部分组成,还可以为每个部分定义一个包围盒,从而形成一棵包围盒树。线面求交时先从树根结点开始判断包围盒,若光线与根结点的包围盒不相交,则与原物体不相交,否则再判断光线与每棵子树的包围盒是否相交,这样可以按层次访问包围盒,免除了许多不必要的求交计算。只有当访问到树的叶子节点时,才需进行必要的求交计算。减少求交计算的另一种重要方法是空间剖分法。它的基本原理是,将物体所在的空间剖分为若干个小体素,为每个体素建一张表以保存在该体素中或部分在该体素中的物体。若一个物体在几个体素中,则每个体素的表中都要记录该物体。光线射出后,先与其遇到的第一个体素中的所有物体求交,若有交且交点在该体素中,则此体素中的最近交点就是系统中所有物体的最近交点,这样就没有必要与其它体素中的物体求交。若在第一个体素中无交,则再判下一个体素,直至找到交点或穿出剖分空间为止。由于只有射线穿过的体素中的物体才可能参与求交,从而大大地减少了求交次数。空间剖分法特别适合于离散法造型系统中的形体或由多个简单形体构成的复杂形体。这样每个体素中的物体求交速度都很快,而且避免了绝大多数不必要的求交计算。选点计算加速法是另一种类型的加速方法。其理论基础是,物体表面的绝大部分颜色的过渡都是很均匀的,只是在边界部分才产生颜色突变。由此可知,在颜色变化不大的地方没有必要逐点进行计算,只需按照某种规则选择一些点进行真正的光线跟踪计算,然后对未计算的点进行线性插值即可。由于线性插值只包含简单的四则运算,比用光线跟踪算法计算亮度要快得多,因此能起到加速作用根据文献Akim91中的结论,选点计算法可将计算速度提高29 倍。2.3辐射度算法辐射度(Radiosity)算法源于五十年代提出的一种热辐射工程计算方法,原方法是用于计算场景中所有面相互之间的热辐射作用。八十年代中期,Goral等和Nishita等提出将这种方法引入到计算机图形学中Gora84Nish85。经过十多年的发展,辐射度算法成为真实感图形的一种重要生成工具,并且由于这种算法具有与视点无关的特点,在VR领域着广泛的应用前景。相对于其它真实感图形的绘制算法,辐射度算法的主要特点在于:1) 经典的辐射度算法只处理纯漫反射封闭场景;2) 场景的辐射度计算与视点无关;3) 其它的绘制算法大都基于实践经验,而辐射度算法从一开始就建立在求解能量平衡方程组的基础上,因而从光能分布计算上讲,辐射度算法比其它真实感图形的绘制算法更为准确。在辐射度技术刚被引入到计算机图形学中时,因为解析求解形状因子进而求解能量平衡方程组的计算量非常大,工程上的应用受到了很大的限制。1985 年,Michael F. Cohen等人提出用半立方体方法(hemi-cube)离散地求取形状因子的近似解Cohn85。Cohen 等人又在1988 年提出逐步求精绘制技术Cohn88。这两种技术的运用大大加快了能量分布的运算,使辐射度技术在工程上的应用成为可能.此后,辐射度算法的研究主要集中在以下两个方面:场景的划分:场景划分的质量直接关系到辐射度运算的时间和空间复杂度、内存的要求、计算精度以及最后结果的图形质量。非纯漫反射场景的处理:因为经典的辐射度算法只处理纯漫反射场景,而实际日常生活中的场景一般说来都包含有非纯漫反射物体。解决这个问题的两趟法(two-pass method)是先计算场景的漫反射和非漫反射光能分布,然后在绘制时采用光线跟踪技术。如果对结果要求非常高,还包括利用光线投射获得聚焦和失焦的特殊效果,这也就算所谓的多趟方法。三 真实感显示的消隐方法3.1 概述在系统中, 我们主要采用了两种消隐方法, 它们是背面删除及Z 缓冲区深度排序法。背面删除法用于单个实体的消隐, 而Z 缓冲区深度排序则用于整个3D 布景的隐藏面的删除。通过这两种类型的隐藏面的消隐方法, 我们就可以生成一个真实的3D 图形。观察现实世界中的物体可以发现, 视线一般不会穿透实心物体。近处的物体会遮住远处的物体, 凹多面体物体会遮挡住自身的某些部分。这些看起来似乎很明了、很自然的现象, 但要在计算机上实现却并不简单。一般来说, 三维线框图不是很逼真, 有时还存在二义性。其中( a) 是未经消隐的立方体,此时我们无法确定立方体倒底是按( b) 的方向放置的还是按( c) 的方向置的。所以在计算机图形生成中,为了达到较高的逼真性, 必须把观察者所不能看到的线和面从图形中消去, 这一过程称为隐藏线、隐藏面的未消隐图形的二意性消除, 简称消隐。1图1 未消隐图的二意性目前在计算机动画中所采用的一些主要消隐算法有Z 缓冲区深度排序法、扫描线算法和窗口细分算法。我们的动画系统中主要采用了两种消隐方法: 背面删除及Z 缓冲区深度排序法。背面删除法用于单个实体的消隐, 而Z 缓冲区深度排序则用于整个3D 布景的隐藏面的删除。5通过这两种类型隐藏面的消隐方法就真实的3D 图像。 2这是因为: Z 缓冲区深度排序保证了相机近处的实体会遮住远的实体, 而背面删除法确保了实体背对相机的表面是不可见的。63.2 背面删除背面删除用于处理单个3D 实体, 如立方体、球、锥、锲等。它检测并删那些背对相机的表面( 即背对观察者的表面) 。因为每个3D 实体都是由表面构成的,从相机的视点位置是看不到背对相机的表面的。背面删除算法建立在平面标准方程的基础之上, 这个方程用于测试相机的XYZ 坐标, 以判断相机位于平面的哪一面。 2因为我们使用B- rep 造型时, 总是用实体表面顶点的XYZ 坐标来描述该表面, 这些顶点坐标按逆时针方向排列, 实体的每个表面都是一个平面,因而确保了这种测试是可靠的。如果标准方程指出相机位于平面的内部, 那么该表面就是背对相机的, 因而是不可见的; 如果标准方程指出相机位于平面的外部, 那么该表面就是面对相机的, 因而是可见的。下面推导背面删除判据的数学表达形式。设以相机与平面方向的关系为原点, 空间三点的坐标分别为P1( x1 , y1 , z1) , P2( x 2, y2 , z2) , P3 ( x 3, y3 , z3 ) , 且三点按逆时针方向排列。现要判断相机位于过P1、P2、P3三点的平面的哪一侧。83.3 Z 缓冲区深度排序Z 缓冲区深度排序法不仅要用帧缓存来存放每个像素的亮度值, 而且还需要用Z 缓存来存放每个像素的深度值。开始时, 各像素的Z 缓存置为最大值, 帧缓存置为背景色的亮度值。此后, 每一个新像素的深度值和存贮在相应Z 缓存的深度值比较, 若新像素的深度值小于相应Z 缓存的深度值, 则将该新像素的亮度写入相应的帧缓存中, 深度写入相应的Z 缓存中, 否则不产生任何动作。我们用Z 缓冲区深度排序处理含有多个3D 实体的复杂布景。每个表面的Z 坐标代表了它到相机的距离, 这个距离称为深度。将场景中的所有深度进行排序, Z 缓冲区算法就可以保证作图时只画那些最近的表面。因为在一个透视观察体中, 近处的表面将遮住那些远离相机的表面。Z 缓冲区算法是人类在客观世界中视觉效果的一个很好的近似。所谓Z 缓冲区是内存中的字节数组, 每个字节对应着应用程序窗口视口的一个像素。Z 缓冲区中的每一个字节都含有一个Z 深度值( XYZ 坐标中的Z 值) 。这些深度值对应着最近表面上点的Z 值。开始时, 各像素的Z 缓存置为最大值。在Z 缓冲区算法对每个表面进行处理时, 如果发现了一个更小的值( 代表一个更近的平面) , 那么相应的内容将被改变, 否则不产生任何动作。当每个表面的每一个点都被处理完后, Z 缓冲区中就只含有那些最近( 可见) 点的深度值。7 9在Z 缓冲区深度排序算法计算深度值的同时, 它也在管理一个帧缓冲区。和Z 缓冲区一样, 帧缓冲区也是一个字节的数组, 其每个字节对应着视口上的一个像素。开始时, 帧缓存置为背景色的亮度值。当算法写一个深度值到Z 缓冲区中的一个字节时, 它也向帧缓冲区中相应的字节写入一颜色值。当每个表面的每个点都被Z 缓冲区算法处理完后, 帧缓冲区中也就包含了视口中每个像素的颜色值。我们之所以采用Z 缓冲区算法, 是因为它非常可靠。无论多么复杂的背景, Z 缓冲区深度排序算法总是能够产生一个正确的观察图像。这是因为Z 缓冲区法用了基于图像的算法, 每一个被处理的点都确切地对应着显示器上的一个像素。3.4 Z 缓冲区深度排序的分辩率在本系统中, 我们所用的Z 缓冲区都是由字节构成的, Z 缓冲区中的一个字节对应着窗口视口中的一个像素。这种设计可使内存要求较小。如: 若设视口的大小为256 255 个像素, 那么一个65280 字节的Z 缓冲区就可以放得下布景中所有像素的深度值。但是,由于一个字节只能存放256 种深度值, Z 缓冲区的分辩率被限制在0 255 的范围之内。如果3D 世界深度为512 个单位, 那么这时Z 缓冲区就不能区分只差一两个单位的两个点。解决这种限制的办法是使用整数或浮点数构成Z 缓冲区。10四 基于非真实感绘制技术的实时阴影渲染在三维场景的非真实感图形绘制中,铅笔画、水彩画、素描和油画等艺术效果的仿真绘制在艺术和娱乐领域发挥着重要作用11。为了达到更逼真的效果,阴影绘制是在光照作用下场景的实时绘制过程中不可缺少的部分。当前较为流行的实时阴影生成算法包括:阴影图算法和阴影体算法12;其中,阴影图算法的效率更高,因为它只需要将整个场景渲染两遍,而不需要额外的几何处理或者网格生成。本文主要研究应用于三维场景的铅笔画艺术效果的阴影实时绘制。若直接采用阴影图算法进行阴影绘制,在进行第二次渲染时整个阴影区域只是描浓了的效果,效果不佳。本文主要是将阴影线算法应用于阴影绘制,达到提高艺术效果的目的。同时为能够使运算速度满足实时绘制的要求,采用了现代可编程图形显示硬件加速功能并使用微软的高级着色器语言(HLSL)实现了相应算法。4.1 场景绘制这里的场景绘制采用了Emil Praun 等人提出的阴影线算法。算法原理是构建出一组2D 的具有铅笔画效果的TAM (Tonal Art Map)(如图1 所示),利用GPU 计算3D 模型上某点的光照值,并据此选取TAM 中的相应纹理进行混合生成3D 铅笔画效果。具体实现过程就是在顶点着色器中,通过光照方向和顶点法向量计算该点的受光亮度, 然后通过这个亮度值决定使用六幅TAM 纹理的权重,并记录下来。 14在像素着色器中,根据相应的权重值取得相应纹理的颜色,最后再合成起来。图2六幅不同笔划的TAM4.2 阴影绘制4.2.1采用阴影图算法阴影图其实就是一个浮点纹理, 让观察点位于光源位置,然后将场景的深度信息渲染到一个纹理图中,就是阴影图。当场景被渲染时,每个像素和光源的距离要同保存在阴影图中的对应距离进行比较,如果它们相等,则说明该像素没有位于阴影中;如果阴影图中的距离小,则说明该像素位于阴影中,此时,就相应更新该像素的颜色为阴影显示颜色。具体地说,首先在顶点着色器中将顶点坐标通过观察变换、投影变换转换为屏幕坐标; 像素着色器中根据深度值Z 和齐次坐标W 计算摄像机位于光源位置时场景中各个像素的度值(In.depth.z/In.depth.w),在渲染过程中实时计算像素和光源的距离depthshadow.z,然后进行比较,得出个像素点阴影颜色值。在着色器中的HLSL 代码如下:15If (depthshadow.z (In.depth.z/In.depth.w)-0.1f)Color = 0.3f; /判断为阴影点ElseColor = 0.3f + In.diffuse; /非阴影点 图 3 阴影图阴影绘制场景至此,阴影线算法绘制的三维场景添加了采用阴影图算法的阴影,效果如图2 所示。实验证明,铅笔画效果的三维场景被实时绘制,但该方法所渲染的阴影部分只是呈现比其他部分稍暗的效果,仿真效果不理想。图 4 阴影线阴影绘制效果图4.2.2采用阴影线算法为了解决上面的问题,考虑将阴影线算法应用于阴影部分,也就是在实时渲染过程中利用笔划表现阴影线,以达到更好的艺术效果。将阴影线算法运用于阴影的算法原理就是将着色器通道1 生成的阴影图作为通道2 的输入,其中判断为阴影的部分进行阴影线算法处理,在着色器中的HLSL 实现代码如下:机是专家系统的核心。下面仅将神经网络和推理机两个重要模块作一阐述。164.2.2.1神经网络模块 在基于神经网络模型的专家控制系统中,知识库用于存放各个神经元之间的连接权值,用数字化的权矩阵表示。在构造知识库时,很重要的一项任务就是网络模型的选择,即确定神经网络的表达方式和学习算法。在学习模块中,希望找到穿水后温度与应该采取的控制量的对应关系。该系统的输入和输出参数都是可以连续变化的,而且在训练中要求在一定的输入下推理得到的控制结论与螺纹钢穿水工艺专家给出的结论误差足够小,因此要求有教师学习。基于以上要求,本文选用误差反传神经网络(即BP 网络)来实现,网络模型(NNC 部分的网络模型)所示。BP 网络是一种单向传播的多层前向网络,其算法(称为BP 算法)的基本思想是最小二乘法15。它采用梯度搜索技术,以期使网络的实际输出值与期望输出值的误差均方值为最小。表示误差均方值神经网络学习模块可以在WINDOWS XP 环境下,用PLC 语言编程实现。4.2.2.2推理机模块 推理机由知识库中存储的神经元连接权值出发, 经过正向推理、反向推理或混合双向推理完成专家系统的求解过程,由于推理机制的类型与推理速度密切相关,而推理类型的选择又与规则库中的知识结构有关,在实时控制中,要在有限的采样周期内将控制信号确定下来,必须选取适当的推理方式。对于反向推理与混合双向推理,由于神经网络的加权不可分性和输入模式的非唯一性,在网络的学习和正向推理过程中需要记录输入层和隐层的动态过程,并将其连同目标输入和输出模式存入数据库, 使得这两种推理策略要比正向推理复杂得多。因此,在本系统研究过程中采用正向推理求解;实时搜索的任务是系统在一个(或多个)目标指导下,搜索使目标成立的途径,最后综合选择问题的最佳解6。由于各变量的调节均能在不同程度上直接影响主穿水管出口螺纹钢温度, 为在最大程度上满足装置的平稳控制要求,同时满足被控变量要求, 首先需要根据当前可调节变量的选择情况,确定优先调节变量为水的流量(流量阀门开度),其次调节变量为水的压力,水的流量可通过神经网络计算,水的压力可在操作点附近作线性化处理,本文提出的专家控制系统可在神经网络模型预测信息的基础上,利用内嵌的优化算法逐级递阶试探寻优来得到问题的最优解。4.2.2.3知识在线获取本系统的知识同时来源于神经网络和经验总结,分别提供数值型和逻辑型知识。其中,逻辑型知识以常规的“if-then”形式表达。针对不同控制要求设计, 在推理过程中结构固定, 参数则可通过人机界面(Wincc)修改。神经网络模型是穿水系统知识在线获取的主要途径。将神经网络模型嵌入DCS 系统, 并选取训练得到的权值作为模型的初始参数。在该模型实时计算过程中。该模型中将前时刻的螺纹钢穿水的温度分析值作为模型的反馈输入,前馈变化量作为输入,因此,该模型不但能较好地克服分析误差带来的扰动影响,而且可以及时反映系统变量动态特性变化带来的影响。本文针对螺纹钢穿水过程中出现的知识获取困难,提出一种基于神经网络模型的专家控制系统,此方法利用神经网络建模技术获取对象的机理知识,通过对影响模型特性的多个变量进行分析,自动得到常规专家控制系统难于获取的识, 并按分级递阶的启发式搜索机制,实现对螺纹钢穿水系统的实时控制。为实现螺纹钢穿水温度实时、准确评价与控制和提高螺纹钢的质量有重要意义。五 OpenGL 下的三维人体真实感显示技术最后以OpenGL 下的三维人体真实感显示技术为例来展示一下显示技术的具体应用。5.1 Visual C+ + 下的0penGL 实现由于0penGL 具有跨平台的特性, 它本身并不具有窗口管理、消息映射等Window s 编程所必备的能力, 使用0penGL 辅助库或Glut 库仅能实现控制台式的简单窗口进行三维显示, 不具有菜单、工具条、对话框等Window s 界面必备的标准元素,难以做出美观的界面。Visual C+ + 是Window s 环境下功能最为强大的编程工具, 而0penGL 本身就是由C 语言编写而成, Visual C+ + 程序中可以直接嵌入0penGL 语句, 是0penGL 开发的天然工具。两者结合起来将充分发挥二者的优势。5.1.1 Visual C+ + 的文档/ 视结构MFC 应用程序模型历经多年有了相当大的发展。有一个时期, 它只是个使用应用程序对象和主窗口对象的简单模型。在这个模型中, 应用程序的数据作为成员变量保持在框架窗口类中, 在框架窗口的客户区中,该数据被提交显示器。随着MFC20的问世, 一种应用程序结构的新方式 MFC 文档/ 视结构出现了。在这种结构中, CFrameWnd 繁重的任务被委派给几个不同类, 实现了数据存储和显示的分离。一般情况下, 采用文档/ 视结构的应用程序至少应由以下5个类的对象组成:* 应用程序的主体是CWinApp 类派生对象,它充当全部应用程序的容器。应用程序沿消息映射网络分配消息给它的所有子程序。* 框架窗口是Cf rameWnd 类派生对象, 它充当应用程序主窗口, 也是所有控件、菜单、以及视的容器。* 文档是指应用程序的数据结构, 是CDocument 类派生对象, 它存储应用程序的数据, 还包括处理这些数据的方法, 并把这些信息提供给应用程序的其余部分。* 视是Cview 类派生对象, 它与其父框架窗口用户区对齐。视窗接受用户对应用程序的输入并显示相关联的文档数据。* 文档/ 视结构的 管家#, CdocTemplate 类的派生对象, 它主要负责建立并维护框架窗口、文档及视图。在文档/ 视方式中, 应用程序数据移入CDocument 的独立数据对象。当然, 文档不一定是文字, 文档是可以表现应用程序使用的数据集的抽象术语。而用户输入处理及图形输出功能从框架窗口转向视图。单独的视图完全遮蔽框架窗口的客户区,输出必须通过视图。框架窗口仅仅是个视图容器。CDocument 类对文档的建立及归档提供支持并提供用于控制其数据的接口。17文档至少有一个相关的视图, 视图只能与一个文档相关联。总之, 在文档/ 视方式中, 文档和视是分离的,即: 文档用于保存数据, 而视是用来显示这些数据。文档模板维护它们之间的关系。这种文档/ 视结构在开发大型软件项目时特别有用。5.1.2 0penGL 与VC+ + 的连接具有Window s 编程经验的人都知道, 在Windows 下用GDI 作图必须通过设备上下文( DeviceContext 简写DC) 调用相应的函数; 用0penGL 作图也是类似, 0penGL 函数是通过 渲染上下文# Rendering Context 简写RC) 完成三维图形的绘制。Windows 下的窗口和设备上下文支持 位图格式# ( PIXELFORMAT) 属性, 和RC 有着位图结构上的一致。只要在创建RC 时与一个DC 建立联系( RC 也只能通过已经建立了位图格式的DC 来创建) , 0penGL 的函数就可以通过RC 对应的DC画到相应的显示设备上。这里还有以下需要注意的方面:( 1) 一个线程只能拥有一个渲染上下文( RC) , 也就是说, 用户如果在一个线程内对不同设备作图, 只能通过更换与RC 对应的DC 来完成, 而RC 在线程中保持不变( 当然, 删除旧的RC 后再创建新的是可以的) 。与此对应, 一个RC也只能属于一个线程, 不能被不同线程同时共享。( 2) 设定DC 位图格式等于设定了相应窗口的位图格式, 并且DC 和窗口的位图格式一旦确定就不能再改变。这一点只能期望以后的Window s 版本改进了。( 3) 一个RC 虽然可以更换DC, 在任何时刻只能利用一个DC ( 这个DC 称为RC 的当前DC) ,但由于一个窗口可以让多个DC 作图从而可以让多个线程利用多个RC 在该窗口上执行0penGL 操作。( 4 ) 现在的Window s 下的0penGL 版本对0penGL 和GDI 在同一个DC 上作图有一定的限制。当使用双缓存用0penGL 产生动画时, 不能使用GDI 函数向该DC 作图。( 5) 不建议用ANSI C 在Window s 下编写0penGL 程序。这样的程序虽然具有跨平台的可移植性( 比如很多SGI 的例子程序) , 但是它们不能利用Windows 操作系统的很多特性, 实用价值不大。17经过上面的分析, 用VC 来调用0penGL 作图的方法就很显然了。步骤如下:( 1) 先设置显示设备DC 的位图格式( PIXELFORMAT ) 属性。这通过填充一个PIXELFORMATDESCRTPTOR 的结构来完成, 这个结构有26 个属性信息( 关于PIXELFORMATDESCRIPTOR 中各项数据的意义, 请参照VC 的帮助信息) , 该结构决定了0penGL 作图的物理设备的属性, 比如RGBA 模式还是颜色索引模式, 单缓存还是双缓存, 以及颜色位数、深度缓存和模板缓存等像素格式。有一些位图格式( PIXELFORMAT) 是DC 支持的, 而有一些DC 就不支持了。所以程序必须先用ChoosePixelFormat 来选择DC所支持的与指定位图格式最接近的位图格式, 然后用SetPix elFormat 设置DC 的位图格式。( 2) 利用刚才的设备DC 建立渲染上下文RC( w glCreateContext ) , 使得RC 与DC 建立联系( wg lMakeCurrent) 。(3) 调用0penGL 函数作图。由于线程与RC一一对应, 0penGL 函数的参数中都不指明本线程RC 的句柄( handle) 。( 4) 作图完毕以后, 先通过置当前线程RC 为NU LL ( w glMakeCurrent ( NULL, NULL) ; ) , 断开当前线程和该渲染上下文的联系, 由此断开与DC 的联系。此时RC 句柄的有效性在微软自己的文档中也没有讲清楚, 所以在后面删除RC 的时候要先判断以下RC 句柄的有效性, 再根据情况释放( ReleaseDC) 或者删除( DeleteDC) DC。具体实现中, 是通过重载视类的几个消息响应涵数0nCreate ( ) 、0nDestroy ( ) 、0nPaint ( ) 、0nSize ( ) 以及PreCreate ( ) 成员函数, 这里不再给出相应的代码, 具体可以查看0penGL 编程的相关书籍及资料。175.2 VITUS 三维人体扫描仪数据格式V IT US 三维人体扫描仪是德图Tecmath 公司开发的非接触式三维人体扫描设备, 它利用4 束激光从4 个角度从上到下进行同步扫描, 扫遍全身只需6 18 秒, 支持多种三维数据格式的输出, 如0BJ、STL、DXF 等, 通常全身的顶点数据量在30万 50 万之间。本文采用了STL 的ASC 格式, 其数据内容是非常明了的, 如下所示是其中的一节:facet normal 0379 - 0921 0088 outer loop vertex - 05 8672 - 163 vertex - 26 8638 - 179 vertex - 26 8672 - 165 endloopendfacet这一节是一个三角形刻面的相关数据, facetnormal 后是该三角形的法线向量, 此向量已被归一化为单位向量, 三个Vertex 后跟的分别是三角形三个顶点的三维坐标, 整个ST L 文档就是由若干个这样的小节组成, 代表了组成三维实体的全部三角形。185.3 STL 文档的读入及动态数组的实现在VC + + 的文档/ 视结构中, 应用程序的数据是作为成员变量保存在文档类对象中的, 视类对象通过指针来访问文档类的成员变量。文档类的一个主要任务就是管理文档的数据磁盘存取, 在文档类中实现磁盘存取的关键函数是CDocument : : Serialize ( ) 函数, Serialize 一词从表面上可以解释 序列化#, 序列化这一概念实际是指一个对象可以将其当前状态存储于连续存储媒体, 当需要时又可以恢复其状态。具体应用中, 需要重载CDocument: : Serialize ( ) 函数, 并在File 菜单的0pen命令的消息响应函数中调用CWinApp: :0nFile0pen ( ) 函数, 即可自动调用CDocument: :Serialize ( ) 函数实现文档的读入。由于不同的人体扫描所得的三维顶点数据量是不一样的, 在读入原始数据文件时是无法预知数据量大小的, 需要能够实现动态可缩放的数组来管理数据。在传统的C 语言中, 这是比较困难的工作,VC+ + 中提供了容器类, 可以方便地实现动态数组的功能。本文采用了: : std: : deque 容器模板类生成的对象来管理动态数组。Deque 不要求内存分配是连续的, 特别适合于经常性的在数组的头和尾插入元素的操作, 比: : std: : vector 能够更有效地利用内存, 并提供了pushback, insert , erase_有实用价值, 就必须使其能不断充实和完善。( 1) 实时性。数据库能及时更新和增补, 及时反映市场信息变化情况。( 2) 通用性。对各种款式服装都适用。( 3) 应用范围。不但适用于外贸公司, 而且加工企业及客户也可通用。图 5 显示效果图自加入WTO 以后, 公开、公平、公正的价格体系的建立在市场竞争中显得尤为重要, 无论是客户还是企业, 都希望能增加报价过程的透明度以实现公平竞争。服装快速报价系统为使用者提供了简单的操作界面, 能全面考虑各种因素, 合理、准确地算出价格, 使其更具有竞争力, 做到快速、公开、公正的报价。综合以上各点, 成功实现了ST L 三角网格文件的读取及0penGL 下的再显示, 最后生成的界面及显示效果如图 5所示。应用本文的方法可以开发出不依赖于三维人体扫描仪显示环境的三维人体, 使真实感人体能够在普通的PC 机上得以显出。Vitus 三维人体扫描仪生成的三维人体数据为进一步开发三维服装CAD系统提供了良好的数据来源, 在本文的基础上, 可以进一步进行人体与服装相关的尺寸的提取, 如轮廓化、特征点提取等, 也可以进行曲面拟合, 制作高度真实的真人人台, 其应用范围是非常广阔的。计算机图形学狭义上是一种研究基于物理定律、经验方法以及认知原理,使用各种数学算法处理二维或三维图形数据,生成可视数据表现的科学。它是计算机科学的一个分支领域与应用方向,主要关注数字合成与操作视觉的图形内容。广义上来看,计算机图形学不仅包含了从三维图形建模、绘制到动画的过程,同时也包括了对二维矢量图形以及图像视频融合处理的研究。 计算机图形学经过将近40年的发展,已进入了较为成熟的发展期。目前,其主要应用领域包括计算机辅助设计与加工,影视动漫,军事仿真,医学图像处理,气象、地质、财经和电磁等的科学可视化等。由于计算机图形学在这些领域的成功运用,特别是在迅猛发展的动漫产业中,带来了可观的经济效益。动漫产业是目前各国优先发展的绿色产业,具有高科技、高投入与高产出等特点。据统计,截至2009年
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电饭煲使用规定
- 心理调适方案
- 2025重庆市万州区大周镇人民政府招聘非全日制公益性岗位1人笔试备考题库及答案解析
- 2025中国工商银行山西省分行社会招聘120人考试含答案
- 农业机械设备维修与保养
- 2025浙江宁波江北区劳动和社会保障事务代理服务有限公司招聘编外工作人员录用人员笔试历年参考题库附带答案详解
- 煤矛石矿山地质环境公示规定
- 时尚配饰搭配技巧分享手册
- 心理辅导与情绪调节探索
- 2025锡林浩特招聘5名基层医疗卫生机构专业技术人员笔试含答案
- 2025医用眼科器械消毒处理标准流程
- 胸部穿刺教学课件
- 白酒经销合同协议书模板
- 2025年公务员遴选备考冲刺
- 2024年河源市市级机关公开遴选考试真题
- 2025-2026学年苏教版(2024)小学科学三年级上册(全册)课时练习及答案(附目录P102)
- 食材配送培训计划
- 2025-2026学年人教版小学数学六年级上册教学计划及进度表
- 《网络工程导论》全套教学课件
- 2025年公共卫生检验员考试试卷及答案
- 2025-2026学年苏教版(2024)小学数学一年级上册教学计划及进度表
评论
0/150
提交评论