- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于OpenGL焊接场景特效实现
基于OpenGL焊接场景特效实现摘要:本文基于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用材料对光的红、绿、蓝三原色的反射率来近似定义材料的颜色。像光源一样,材料颜色也分成环境、漫反射和镜面反射成分,它们决定了材料对环境光、漫反射光和镜面反射光的反射程度。在进行光照计算时,材料对环境光的反射率与每个进入光源的环境光结合,对漫反射光的反射率与每个进入光源的漫反射光结合,对镜面光的反射率与每个进入光源的镜面反射光结合。对环境光与漫反射光的反射程度决定了材
原创力文档


文档评论(0)