基于OpenGL的焊接场景特效的实现

来源 :科技资讯 | 被引量 : 0次 | 上传用户:yh124712
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:本文基于OpenGL的实现了虚拟焊接场景中的四种特效。在OpenGL使用三个光源,实现了虚拟焊接中的光照效果,能够逼真的模拟焊接电弧位置变化及场景;在程序中通过函数glMaterial定义光照,计算虚拟焊接中用到的当前材质,实现了不同的材质效果;基于OpenGL同时还实现了双缓存动画效果及场景漫游效果。结果表明,这些场景特效比较逼真,效果良好。
  关键词:OpenGL 虚拟焊接 场景特效
  中图分类号:TP391.9 文献标识码:A 文章编号:1672-3791(2012)08(b)-0017-02
  在焊接模拟场景中增加特殊效果目的是提高模拟场景的真实感觉。真实感图形绘制是计算机图形学的一个重要组成部分,它能反映物体表面颜色和亮度的细微变化;能表现物体表面的质感;能通过光照下的物体阴影,极大地改善场景的深度感和层次感,充分体现物体间的相互遮挡关系;能模拟透明物体的透明效果和镜面物体的镜面效果。
  1 OpenGL简介
  OpenGL是个专业的3D程序接口,是个针对底层开发的3D图形[1]。OpenGL称为开放的图形程序接口,它独立于窗口系统和操作系统,可以在不同的平台如Windows95、WindowsNT、Unix、Linux、MacOS、OS/2之间进行移植。因此,支持OpenGL的软件具有很好的移植性,可以获得非常广泛的应用[2]。因为OpenGL在三维模拟方面的强大功能,使得它在许多研究领域中得到了广泛应用,在焊接仿真相关领域,涉及到模拟和三维显示的地方,也越来越多的采用了OpenGL技术。
  利用OpenGL可以方便地生成高质量的真实感图形,OpenGL提供了各种光源及材质属性的设置函数,可以方便的设置所需光照模型。OpenGL提供的图像空间消隐能力,可方便的实现消隐算法。OpenGL提供的纹理映射功能,可以将BMP文件格式的图像映射到几何模型表面,纹理映射中的值除了可以直接用于绘制面着色,还可以利用纹理映射中的值来调制和混合原像素的颜色,从而产生特殊的效果。
  2 焊接场景特效实现
  为提高虚拟焊接场景的真实感,利用OpenGL实现了焊接场景中光照效果、材质效果、双缓存动画效果、场景漫游效果等特效。
  2.1 光照效果
  虚拟焊接三维场景中,环境光照效果必不可少的。在OpenGL中,通过光源模型设置来实现场景的光照效果。在光源模型中,一共使用了三个光源,分布如图1所示。OpenGL程序本身只有一个默认的处在无穷远处的点光源0,默认的光源特性参数值都是1,即理想的白色点光源。
  在OpenGL中,光线被假定成红、绿、蓝3种原色光的组合,因此,光源的颜色就由它所发出的这3种原色光的含量决定,而物体表面的颜色则由其反射这3种光的含量决定。光源0除了定义光源的位置外,还分别定义了环境光、漫射光、镜面光,OpenGL独立计算这四种成分光线,然后再将其结果叠加到一起产生光源0的最终光照效果。在模拟场景中,光源0用于整个场景的照亮效果。
  针对虚拟焊接场景的要求,增加了两个光照模型,即跟随焊接电弧位置变化的光源1和垂直焊接工作台的光源2。光源1为移动的聚光灯,其亮度随着亮度参数改变而不断的变化,模拟电弧燃烧亮度的闪烁。光源1的移动通过在堆栈中使用平移函数来实现。
  光源2和光源1类似,只不过光源2是普通的点光源,作用于整个焊接环境,使焊接环境光照效果更接近真实。控制光源0、光源1与光源2作用的时间,就可以实现虚拟焊接场景在焊工模式与旁观模式中简单的切换。在焊工模式下训练时,光源1和2打开,光源0被屏蔽,焊工通过头盔显示器观察到的场景只有电弧照亮的熔池和焊条端部,其余的场景由于没有光照呈暗色;旁观模式光源0必须打开,光源1和2可以打开也可以关闭。在旁观模式下,因为环境光的光源打开,指导教师或其他学员可以观察到全景效果。通过两种模式的转换,可根据需要选取环境光照效果,观察焊接过程。另外,光源0的打开与否还取决于训练时的电弧燃烧状态,只有当电弧处于燃烧状态时,即焊接正在进行,光源0才能关闭;电弧未处于燃烧状态时,焊接停止,光源0打开,照亮整个场景。这与真实焊接过程中焊工在焊接时戴上面罩操作,停止焊接时拿掉面罩观察焊缝成型效果的过程是一致的。
  2.2 材质效果
  材质是指物体表面对光的反射特性。OpenGL用材料对光的红、绿、蓝三原色的反射率来近似定义材料的颜色。像光源一样,材料颜色也分成环境、漫反射和镜面反射成分,它们决定了材料对环境光、漫反射光和镜面反射光的反射程度。在进行光照计算时,材料对环境光的反射率与每个进入光源的环境光结合,对漫反射光的反射率与每个进入光源的漫反射光结合,对镜面光的反射率与每个进入光源的镜面反射光结合。对环境光与漫反射光的反射程度决定了材料的颜色,并且它们很相似。对镜面反射光的反射率通常是白色或灰色(即对镜面反射光中红、绿、蓝的反射率相同)。镜面反射高光最亮的地方将变成具有光源镜面光强度的颜色。例如一个光亮的红色塑料球,球的大部分表现为红色,光亮的高光将是白色的。
  一个光源决定了光的颜色、反射特性、强度和入射光的方向。物体的几何性质及材质决定反射光的颜色、反射特性、强度。光和物体间的相互作用远比我们能够实时模拟的情况复杂。OpenGL在逼真显示和实时绘制之间通过以下方法实现均衡:只在几何顶点进行光照计算,对在所绘制的每个像素上执行光照运算的复杂处理进行简化。
  材质的颜色与光源的颜色略有不同。对于材质,R、G、B值为材质对光的R、G、B成分的反射率。比如,一种材质的R=1.0、G=0.5、B=0.0,则材质反射全部的红色成分,一半的绿色成分,不反射蓝色成分。也就是说,若OpenGL的光源颜色为(LR、LG、LB),材质颜色为(MR、MG、MB),那么,在忽略所有其他反射效果的情况下,最终到达眼睛的光的颜色为(LR×MR、LG×MG、LB×MB)。   同样,虚拟焊接场景中的两束光,相应的值分别为(R1、G1、B1)和(R2、G2、B2),则OpenGL将各个颜色成分相加,得到(R1+R2、G1+G2、B1+B2),若任一种成分的和大于1(超出了设备所能显示的亮度)则约简到1.0。这样最终的光照效果是光线与物体表面共同作用的结果,入射光和物体对光的吸收和反射决定了所看到的颜色。
  虚拟焊接场景所包括的各种物体模型,在程序中都使用了不同的材质,这样整个场景看起来层次感更加明显。在程序中通过函数glMaterial(GLenum face,GLenum pname,TYPE param)来定义光照计算中用到的当前材质。face可以是GL_FRONT、GL_BACK、GL_FRONT_AND_BACK,它表明当前材质应该应用到物体的哪一个面上;pname说明一个特定的材质;param是材质的具体数值。
  2.3 双缓存动画效果
  动画是计算机图形学的一个重要组成部分。要实现连续的动画,不出现人眼能觉察到的闪烁跳动,一般要达到24帧/s的刷新速度。程序设计中,采用了精简程序、强制刷新函数和双缓存技术三项技术来保证场景的刷新速度。
  本程序测试中,运行时间小于0.04s,即画面刷新速度大于25帧/秒,满足连续动画的要求。强制刷新函数可以保证程序在设定时间周期对画面进行自动刷新,程序运行中设为20ms。OpenGL提供了双缓存技术支持动画制作。也就是说,在显示前台缓存内容中的一帧画面时,后台缓存正在绘制下一帧画面,当绘制完毕,则后台缓存内容便在屏幕上显示出来,而前台正好相反,又在绘制下一帧画面内容。这样循环反复,屏幕上显示的总是已经画好的图形,于是看起来所有的画面都是连续的。在焊接场景中,采用了双缓存技术,并在display()函数的结尾处,使用了前后台交换函数:void glutSwapBuffers(void)。即执行完一次display()焊接场景绘制过程,便交换前后台缓存,以便让下一帧图形在屏幕后绘制完成。
  2.4 场景漫游效果
  虚拟漫游技术是计算机仿真中重要的交互手段之一。它可以使得生成的虚拟场景更为生动。本文实现了对虚拟焊接三维场景的漫游,用户可以从不同角度、不同距离观察虚拟焊接场景。
  在焊接场景中,通过改变场景模型的位置来实现漫游,即观察者的视点不动,通过模型的平移和旋转来改变观察场景模型的视角。在程序编制时,通过键盘的按键实现对漫游的控制,首先在视图的创建函数中设置视点的初始值,然后规定w键按下时远离场景;s键按下时靠近场景;z、x键按下时围绕x轴旋转;a、d键按下时围绕y轴旋转。实现焊接虚拟场景漫游后,还设置了一个默认位置恢复键,不管漫游到什么位置,按下Esc键后,都回到默认的焊工观察操作位置,进行焊接培训操作。
  3 结语
  本文利用OpenGL实现了焊接场景中光照效果、材质效果、双缓存动画效果、场景漫游效果等特效,大大提高了虚拟焊接场景中的真实感,在焊工的培训、焊接智能化方面有较好的应用。
  参考文献
  [1] LaLonde Wilf,Pugh John.Preparing for 3D graphics: interfacing to OpenGL.Journal of Object-Oriented Programming[J].1995,8(2):77.
  [2] Faust Nickolas L,Bhaumik Dharmajyoti,Hodges Larry F.,Ribarsky William,Koller David, Lindstrom Peter.OpenGL VGIS.Proceedings of SPIE-The International Society for Optical Engineering[C].1996,2740:42-49.
其他文献
本文探讨如何利用先进成熟的计算机和信息技术,整合现有信息资源,建立完善高效的东北空管局信息化门户网站,从而更好的服务于东北空管局信息化工作。
《中国语文》从去年9月号开始连续刊载文章,揭露和批判了高名凯先生在《普通语言学》一书中所表现的资产阶级学术思想;但是,我们觉得揭露的事实还不够。最近我们重读了高先生的
文中使用图像轮廓填充图形作为手语手势的特征参数进行静态手语识别。关键是提取出图像边缘轮廓,并做出轮廓填充图形,根据这个特征参数对待测图像进行手语手势的特征匹配。该方法对图像亮度、缩放、平移、旋转具有不变性,而且该方法计算简单、快速,可以用于基于移动终端(Android手机操作系统平台下)的手语识别系统。
病例中年男性,因"间断巩膜黄染20余年,腹胀3月余"入院。患者20多年前大量饮酒后出现巩膜黄染,于当地医院治疗后好转,此后间断出现巩膜黄染,多于大量饮酒后出现,于2012年11月
摘 要:当前高等教育发展迅速,高校对于网络需求与日俱增。受到建设成本和技术发展等因素的限制,网络需求与网络带宽的矛盾日益凸显。在高校出口实施网络流量分析控制能够很好的解决这一问题。  关键词:网络带宽 网络流量分析及控制 DPI、Panabit  中图分类号:TP393.1 文献标识码:A 文章编号:1672-3791(2013)05(b)-0249-02  随着高等教育信息化的发展,高等教育对于
为更好地落实《轻工业调整和振兴规划》,增强应对国际金融危机的能力和促进家电行业的长远发展,工业和信息化部特制定家电行业转型升级的指导意见。意见指出,家电行业转型升
针对发射机位于地球同步卫星的双站SAR这种新型成像雷达体制,建立了信号的回波模型,并推导了在这一模型下的Chirp Scaling算法实现。通过大场景点阵目标的仿真证明,该算法处理速
目的探讨改良鸡尾酒疗法关节周围注射对全髋关节置换术后镇痛的疗效。方法选取2015年12月至2017年12月大连大学附属中山医院骨关节科收治的因股骨颈骨折行单侧人工全髋关节置
混业经营成为国际性趋势,金融监管体制各国不一。目前我国采取分业经营分业监管的模式,但混业经营已客观存在,三会一行的监管体制又存在诸多问题。本文将着重分析我国商业银行经