3D应用程序开发的强大动力--——可视化组件HOOPS

在CAD/CAM/CAE/PLM/EDA/AEC、科学数据的可视化显示以及娱乐等领域,3D图形技术有着广泛的应用。强大的3D图形功能可以为软件使 用者提供直观、逼真的3D可视化效果以及便捷的人机交互。在3D应用程序开发早期,虽然直接使用OpenGL或Direct3D等图形编程接口就可以满足 一般的可视化需要,但如果3D应用程序需要更加高级的图形功能(如隐藏线消除,高级渲染和贴图、动画、文字处理、2D矢量图输出、高级动画等)或需要对图 形性能进行优化时,开发人员还需要做大量的工作,如建立自己的图形数据库以及对包括OpenGL、Direct3D在内的多种硬件驱动提供支持等,而这些 图形功能的实现需要很多专业图形开发人员通过多年的努力才可能完成。



图1 HOOPS在CAD方面的应用

    为了使用户能够快速开发出高品质的3D应用程序,Spatial公司不仅提供了ACIS造型组件、InterOp数据接口组件,还和著名的可视化组件开发 商美国TSA公司进行紧密合作,提供HOOPS可视化组件的授权和技术服务,使用户可以在更高层次的图形平台上开发3D软件,从而提升软件产品的竞争力, 降低开发成本并加快产品上市。


一、可视化组件HOOPS简介

    HOOPS组件是建立在OpenGL、Direct3D等图形编程接口之上的更高级别的应用程序框架,由美国TSA公司开发并由TSA和Spatial公司负责发布和提供技术支持。

    HOOPS不仅为软件开发人员提供了强大的图形功能,如高质量的模型显示、便捷的人机交互、包括OpenGL和Direct3D在内的多种渲染管道的支 持、高级渲染、2D图形的矢量化输出、动画、动态干涉检查以及图形数据流化处理等,此外HOOPS中还内嵌了多边形优化和大模型处理等技术,能够大大提高 3D可视化的性能。另外HOOPS开发包中提供的大量应用程序级的实例源码,可以帮助用户在很短的时间内搭建出商业级的3D图形应用程序。目前有170多 个商业应用程序是基于HOOPS组件开发出来的。

    HOOPS组件按功能可进一步分为HOOPS/3dAF、HOOPS/Stream以及H O O P S / N E T三个子组件,其中HOOPS/3dAF组件是一个3D图形应用程序框架,采用了保留模式的图形数据库和多种渲染管道来管理和绘制图形对象; HOOPS/Stream组件可以用来对场景图数据进行流化处理;而HOOPS/NET组件则可以用于网络协同。这三个子组件既可以单独授权,也可以结合 在一起使用。




图2 HOOPS在CAE方面的应用

二、HOOPS组件技术优势

    1.更高级别的3D应用程序框架

    HOOPS是一个建立在OpenGL、Direct3D等图形编程接口之上的更高级别的开发平台,提供了很多应用层的功能以及相应的实现源码,如文档视图 管理、打印、事件处理、视图浏览(包括3D虚拟行走)、检取和动态高亮、动画、材质贴图、测量和批注、动态干涉检查以及和造型引擎接口等,如果开发人员直 接利用OpenGL和Direct3D等图形编程接口来开发专业级别的3D应用程序,则需要大量的时间、精力以及资源来实现这些高层次的功能。

    2.保留模式图形数据库

    H O O P S采用保留模式的图形数据库用于记录图形对象之间的位置和层次关系信息,具有更快的选择、查询和渲染功能,而且使用起来更加灵活方便,而采用OpenGL 和Direct3D等立即模式图形编程接口则需要用户进行实时管理。HOOPS采用保留模式图形数据库的优势包括:1)图形数据库中记录了图形对象之间的 层次关系和修改标记,因此可以快速判断出哪些对象需要被发送到绘制管线中进行绘制,基于修改标记的增量更新模式可以大大减少需要绘制的三角片数目,提高图 形性能;2)由于采用了图形数据库技术,HOOPS中封装了一系列用于对图形数据中的对象进行排序的算法,排序的结果可以用于隐藏面快速消除、隐藏线的精 确绘制以及透明效果的实现等;3)大模型处理——对于静态场景,HOOPS中的快速移动技术可以使用户以很小的代价实现在大场景中重新绘制小的对象;对于 动态场景,HOOPS中集成了背面剔除、视锥体剔除、遮挡剔除以及多种细节层次(LOD)绘制等算法,大大减少了需要发送到绘制管线的对象的数目,有效提 高了大模型处理的能力。另外,HOOPS中内嵌的多边形优化算法可以用于生成长的三角条带或三
角扇形。另外,删除冗余的顶点也会大大加快图形的绘制。



图3 HOOPS在AEC方面的应用

    3.高级可视化能力

    HOOPS对于光照、阴影、反走样、环境纹理映射、alpha贴图、凹凸贴图和雾化效果等也提供了很好的支持,可以帮助用户实现非常逼真的渲染效果。另外,HOOPS中提供的全局和局部剖切平面的功能可以使用户查看模型内部信息。

    4.灵活的设备驱动

    交互式的图形应用程序需要为每个底层的2D/3D API准备一个单独的映射层,或者是软件设备驱动。如目前很多商业3D程序是直接使用OpenGL来用于可视化的,但随着Windows Vista发布的期限越来越近,这些软件开发商也需要考虑尽快对Direct3D接口提供支持;如果用户需要进行2D信息的矢量化输出,那么很可能会用到 WindowsGDI和Postscript等设备驱动。因此一个商业3D应用程序往往需要处理多种设备驱动,使最终用户可以根据需要选择最适合的设备驱 动。

    不过,创建一个最简单的设备驱动也许会需要1个月的时间,并且根据应用程序的执行需求不同,所需的时间还有可能成倍地增加,另外还需要解决由于图形编程接 口版本升级和硬件接口规范变化等因素所带来的问题。通过多年的努力,HOOPS几乎对所有主流设备驱动(包括OpenGL、Direct3D、 Windows GDI、Postscript等)都提供了很好的支持。



图4 HOOPS在CMM方面的应用

    5.全面的图形卡测试



图5 HOOPS渲染示例

    每个H O O P S版本都会进行全面的图形卡测试,以保证对于不同的渲染管道,图形卡都可以达到最佳的效果。HOOPS对OpenGL和Direct3D驱动的支持在很多 图形卡上都测试通过了,而很少有公司愿意将资源投入在这种级别的显卡认证上。另外,相关的测试结果一方面可以供用户参考,另一方面也是图形卡供应商改善显 卡性能的重要依据。

    6.专业的3D/2D文字处理

    立即模式的3D API对文字的支持非常有限,而HOOPS具有非常专业的3D/2D文字处理能力,比如:

    (1)健壮和便携的TrueType字体支持——HOOPS通过一个嵌入的字体引擎,提供了对TrueType等字体便携的支持,这些字体可以像位图一样在场景空间进行绘制或像在场景中的其他3D几何对象一样进行操作,如对文字进行选择、编辑和属性设置等操作;

    (2)对Unicode字符串的支持——国内用户可以用来插入中文字体;

    (3)大量的文字扩展属性的支持,其中包括多行文字一次性绘制,字符间距调整、倾斜和跟随路径的能力,文字简化处理,下划线、页眉和删除线文字,用户可控的文字自动缩放与回调,在字串中修改部分文字的属性等,这些功能的实现需要数个编程人员多年的努力。

    7.HOOPS/Stream高度压缩和流化处理能力



图6 3D模型和2D文字共存处理

    HOOPS/Stream组件可以让开发人员创建高度压缩和经过流化处理的自定义HOOPS流文件,这样不仅可以在加载文件时快速显示场景,还可以将轻量 化信息直接提取出来用于下游应用程序中,如浏览和批注等。如果用户自己在原有的格式中嵌入轻量化信息或重新定义一个压缩的3D格式并提供导入/导出功能, 那么至少需要几个月的努力,而采用HOOPS/Stream技术则可以帮助他们快速实现这点。经过高度压缩和流化处理的HSF文件不仅便于下游的浏览器进 行浏览、查询和批注,而且也非常适合在网络上发布和操作。目前为止已经有很多公司提供对HSF文件格式的支持,如CATIA、SolidWorks等软件 都可以直接输出HSF格式的轻量化文件,HOOPS中也提供对Autodesk公司DWF轻量化文件格式3D信息的读写接口。


三、HOOPS的组件商业价值

    采用Spatial的HOOPS组件不但可以在技术方面领先一步,而且具有以下商业价值。

    1.性能和可靠性

    H O O P S组件是被证明了的具有高性能和高可靠性的商业开发平台,目前有包括Autodesk、SolidWorks、IronCAD、Fluent、LK等著名公司在内的170多家商业用户在使用HOOPS组件。

    2.专业的技术支持和服务

    Spatial的商业模式是建立在用户成功的基础上的,因此Spatial的专业技术支持和服务团队将会竭力协助用户尽快取得成功,Spatial的本地化支持也会帮助国内用户快速开发出高性能的软件产品。

    3.降低开发成本和缩短产品上市时间

    大大减少用户自己开发的投入或风险,用户通过授权HOOPS产品即可使用已被业界证明了的功能强大且稳定的3D可视化组件,使用户无需花费大量的人力物力 和时间去自行开发和维护自己的图形内核,而是将精力集中到具有更大附加值的专业功能的开发上,从而可以更早地发布产品,使效益最大化。

    4.保持持续竞争力

    HOOPS每个新的版本或补丁都会有功能增强和性能提升,用户通过将自己的产品发布和HOOPS产品发布紧密结合起来,就可以尽早使用到这些新功能并提高产品性能,从而保持持续的竞争力。

    5.降低用户风险

    HOOPS的与客户分享成功的合作方式和有竞争力的价格定位使用户在使用HOOPS组件进行软件开发和维护的过程中可以更好地管理成本,降低用户的风险。


四、HOOPS和ACIS、InterOp之间的关系

    HOOPS组件不但可以单独用于3D模型的可视化,而且可以和其他造型内核(如ACIS)和数据接口组件(如InterOP)结合使用。图7所示非常直观 地说明了HOOPS和ACIS、InterOp之间的关系以及如何使用这三个组件来构建3D应用程序的基本框架。

    3D应用程序通过HOOPS/GUI和ACIS、HOOPS组件建立连接,从而实现利用ACIS内核进行造型,并利用HOOPS组件进行可视化和人机交 互。ACIS和HOOPS之间通过HOOPS/ACIS bridge来进行通信,从而实现文档和视图分开;InterOp组件用于读写实现ACIS模型和其他格式3D模型之间的相互转换; HOOPS/Stream组件则可用于读写3D场景图数据。



图7 利用HOOPS、ACIS和InterOp开发3D应用程序的框架


五、结束语

    经过HOOPS图形专家多年的开发努力,HOOPS组件提供了商业级别的CAD/CAM/CAE/AEC等领域3D应用程序所需要的图形功能,和一些 HOOPS用户合作的经验告诉我们,没有其他与场景图相关的组件可以在深度、广度、灵活性和可靠性方面与HOOPS所具有的特征相媲美,而HOOPS在图 形显示效果、速度和易用性等方面的不断进步也将会给用户带来更大的价值。数百家3D软件开发商和Spatial合作的实例表明,通过授权Spatial所 提供的ACIS造型组件、InterOp数据接口组件和HOOPS可视化组件大大减轻了他们自行开发和维护的负担,缩短了开发时间,从而使他们可以更加专 著于具有更高附加值的专业功能的开发,创造出更大的价值。

 

你可能感兴趣的:(数据库,图形,程序开发,Direct3D,postscript,Interop)