李国柱,马 波
(昆明市测绘研究院,云南昆明650051)
Skyline平台下真实感模型生成方法研究
李国柱,马 波
(昆明市测绘研究院,云南昆明650051)
以广泛投入实际应用的3D GIS平台Skyline为基础平台,从着色的角度研究真实感模型的程序自动生成方法。程序生成的方式除了可以增强对象的立体感之外,还可以对构成模型的面片数量加以控制,以免对系统造成运行负担。最后将程序成功地运用到管线的自动建模及数据管理中。
Skyline;三维建模;光照处理;着色模式;真实感渲染
三维GIS[1-2]是目前地理信息技术发展的主流方向之一。现已投入到实际应用中的平台包括Arc-Scene[3]、Skyline[4-5]和 MapGIS K9[6]等。此类平台提供了针对行业常规数据的支持,能够无缝地将既有的2D GIS数据集成进来,进而进行空间分析等。其中最为显著的地方是提供了对3D GIS的支持,总体来看都提供了针对三维场景的加载、显示、漫游和行业相关的分析和操作等。实际上,对局部区域进行三维场景构建时,针对目标对象的三维建模[7]是其中的重点,具体工作中常通过借助3D Studio MAX或是Maya等造型软件进行。在工作中,主要依托Skyline作为底层的三维平台,其中通过造型软件所制作出的模型在三维视觉效果上并不尽如人意。具体的问题包括:采用造型软件加工出的白模,在导入系统时由于不能控制子面片对光照的反应,会导致立体感的缺失;使用Skyline系统中内嵌的基本几何组件来构建复杂对象时也很难体现出立体感。技术上,为了能够获取到模型更优的显示效果,可通过增加模型面片的方式进行。但是随着构成模型面片数量的增长,会导致系统的加载延迟。为了能够进一步提升模型加载的效率及其较优的显示效果,本文研究Skyline平台下强立体感模型的构建方法。
在基于面片的计算机图形学中,模型通常由顶点集合和面片集合所构成。技术上常采用顶点索引列表的方式,即将构成模型的全部顶点存放在一个公有数组中,而对于构成模型的子面片的顶点序列则利用对应顶点在数组中索引予以记录。如图1所示的立方体,基本面片为三角形。该立方体对象由8个顶点和12个子三角面片构成。在内存中存放时,8个顶点的坐标单独存放于一个公有数组中,面片中涉及的顶点采用在数组中对应的索引予以记录。通过顶点索引的方式不仅能够有效地减少顶点重复存放导致的内存浪费,还可以规避因为浮点数计算的精度问题所带来的模型开裂问题。
图1 模型的存储结构
顶点索引顺序依据外法线原则进行。对于模型的真实感效果而言,并不取决于模型是否采用顶点索引的存储方式,而是取决于三维平台底层渲染引擎对待面片法线和顶点法线的方式。
面片的外法线是平台底层三维引擎进行光照计算的依据。通过计算给定面片法线与光线的夹角,能够计算出光照强度,从而获取面片本身的明暗程度。影响面片光照效果的量除了法线外还有材质,材质影响着对象表面对光线的反射和散射等的程度。明显的,构成模型的每个面片的法线能够使模型呈现出真实感。渲染引擎中考虑的光照模型包括环境光、散射光和镜面反射光等。在进行具体的真实感处理时,都归类为对顶点的处理。
在计算出面片的光照强度之后,与立体感存在直接相关的便是着色模式的选择,一般可以分为固定着色、恒定着色和光滑着色。固定着色是在不考虑光照的影响下,采用一种单一的颜色将构成对象的多边形填充为实心多边形的一种着色模式。恒定着色则是在顾及光照的条件下,根据构成物体的每个面片的法线进行着色的一种方式,这种着色模式是针对面片而言的。恒定着色运用在由平面构成的物体上具有较强的优势,而对于类似球体这样由曲面构成的物体,在面片交界处能看到明显的分界。光滑着色是为了能够解决该问题而被提出的一种着色方法,其基本原理是针对每个面片分别计算法线,然后对于多个面片公共的交点采用各面片法线的均值,实际上是一种插值计算方法。
图2和图3分别为立方体和空间球体在不同着色模式下的效果。图2(a)和图3(a)为线框绘制效果;图2(b)和图3(b)为固定着色模式下的效果;图2 (c)和图3(c)为恒定模式下的着色效果;图2(d)和图3(d)为光滑着色模式下的绘制效果。通过观察可以发现,固定着色模式下的绘制效果是没有立体感而言的。对于立方体这样由平面构成的对象恒定着色的效果要优于光滑着色,光滑着色在顶点处出现的过渡,反而导致效果变差。对于球体而言则刚好相反,光滑着色的效果在描述曲面对象时优于恒定着色。
图2 立方体在不同着色模式下的效果
技术上来讲,对于模型所采用的着色模式取决于底层渲染引擎中,即三维渲染引擎中应该提供相应的选择机制以辅助决定对模型进行渲染时是采用恒定着色模式、光滑着色模式或是其某种组合方式。
图3 空间球体在不同着色模式下的效果
关于Skyline平台中的建模,一般包括两种方式:通过内置基本几何组件构建或是借助于3D Studio MAX等造型软件进行建模,然后利用第三方插件转换为系统支持的模型格式。
就系统对模型的真实感处理而言,未有明确的文档对光照计算方式和着色模式作出说明。模型的立体感是通过对材质和光照的反应,继而通过着色模式所体现出来的。对格网模型中的面片进行着色处理后,获取的是白模,为了弥补模型的细节和提升视觉效果,需要再进行纹理贴图处理。技术上,纹理贴图不是立体感的核心。
以白模为对象,经过对内置几何体组件和程序自动生成的模型对比后发现,内置的几何组件采用固定着色的模式;对于导入的模型,在默认情况下系统底层引擎以顶点为单位。Skyline平台中对模型的存放同样遵循顶点坐标和索引的方式,对于给定的顶点,该点的法线取该点共享面片法线的均值。也就是说,一般情况下,会采用光滑着色,所以对于构建出的模型在顶点处有光滑的感觉。而为了能够在此平台中体现出明显的立体感,需要对顶点的坐标进行分裂处理,通过这样的处理,才能让系统将共点面片分别视为不同的面片,进而采用内嵌的基于面片的着色模式。
就实际情况而言,Skyline平台对面片格网是提供了恒定着色模式和光滑着色模式的,在操作接口上没有提供控制着色的选项。直观来说,模型是以图1的方式进行存储,着色效果如同图2(d)和图3 (d)。对于曲面对象而言是可以的,但是常规情况下,对于面片模型则不能满足要求。为了能解决更一般的建模问题,需要对图1中的模型进行顶点的分裂处理。对于多个面片共用的顶点,为了实现恒定着色,需要将该点分裂到其所在的各个面片中。即以面片为单位,对模型进行存储,其虽然拥有相同的坐标值,却拥有单独的索引。
图4为关于顶点分裂的说明,图中四面体ABCD由4个顶点组成,如果采用图1中的存储结构,最终建立的模型在顶点处将会被光滑化。该四面体由4个顶点组成,每个顶点被3个面片所分享,在顶点分裂处理时,每个顶点被分裂为3个新的顶点。以点A为例,可分裂为A1、A2和A3,对于公有该顶点的面片,将分别使用分裂出的3个新顶点的其中之一。数学坐标上,3个新顶点的数值是相同的。通过这样的处理后,系统的底层引擎将会将分裂出的坐标视为单独点进行法线计算,从而避免了顶点处法线的平均计算。
图4 顶点分裂
在得到系统对构成模型的面片的着色处理模式后,需要采用系统支持的模型格式,按照前述准则进行存储,才能导入系统中,最终达到预期的显示效果。
在Skyline系统中,内在支持的模型格式的文档资料未公布。技术层次上有3种方式可供选择:①使用内在基本组件的方式进行;② 计算模型的三角面片构成,然后生成模型的三角面片组;③ 生成中间格式,即微软的*.x[8]文件,然后导入。方法1的着色效果不能满足立体感的要求;方法2会导致系统中存在大量的面片模型,对系统造成负担;方法3将会提供同系统内置模型一样的效率。*.x格式存在两种版本:一种是二进制版本,另一种是文本格式。
在*.x文件中包含了一系列相关的信息,包括文件头、模型的顶点列表、面片索引、材质和纹理等,材质和纹理等信息为可选信息。默认情况下,对于顶点的存放采用图1中的结构进行,根据算法的选项对构成模型的顶点进行分裂处理,即视为不同的顶点存放。
最后实现的算法提供了对模型格网数的控制,着色模式的渲染等。在各项参数的控制下能实现相应的立体感模型。
结合地下管线,使用C语言实现了建模算法。
图5和图6为本文算法应用于实际管线建模和管理系统中的效果。圆柱体类的管线采用了光滑着色模式,立方体类型的管线则采用了恒定着色模式,同时程序在对管线建模的过程中,对构成模型的面片数量作了相应的控制,最终所生成的模型仅以KB为单位,也规避了构成模型面片数量对系统运行负担的冲击问题。虽然根据规范[9]只采用了单一的颜色进行着色,但是立体感的效果是很明显的。
图5 针对管线的建模效果1
本文以实际工作中大量使用的三维GIS平台Skyline为例,研究了带有真实感模型的自动构建方法,其中涉及了对构成模型面片的着色研究及通过算法根据选项进行着色模式的控制,并且最后应用到了针对管线的建模及管理中。对于管线而言,依据国家相应的规范,使用不同颜色对光照的着色模型进行渲染,最终所建出的白模已经能够满足应用的要求。实际工作中,还有很多更为复杂的对象需要考虑物体的材质和纹理等。为了能够进一步提升应用的范围,下一步将对材质和纹理进行参数化处理,将会获取更加实用的方法。
图6 针对管线的建模效果2
[1] 施加松,刘建忠.3D GIS技术研究发展综述[J].测绘科学,2005,30(5):117-119.
[2] 李青元,林宗坚.真三维GIS技术研究的现状与发展[J].测绘科学,2000,25(2):47-51.
[3] 汤国安,杨昕.ArcGIS地理信息系统空间分析实验教程[M].北京:科学出版社,2006.
[4] 戴洪宝.基于Skyline的数字城市三维可视化系统的研究[D].西安:西安科技大学,2010.
[5] 侯妙乐,刘忠贞,孙维先.基于Skyline的三维数字校园[J].北京建筑工程学院学报,2008(4):18-21.
[6] 吴信才.数据中心集成开发平台-新一代GIS应用开发模式[M].北京:电子工业出版社,2010.
[7] 符海芳,朱建军,崔伟宏.3D GIS数据模型的研究[J].地球信息科学,2002(2):45-49.
[8] Frank D.Luna.Introduction to 3D Game Programming with directX 9.0(WordwareGameandGraphics,Library)[M].VSA:Jones&Bartlett Publishers,2003.
[9] CJJ61—2003城市地下管线探测技术规程[S].北京:中国建筑工业出版社,2003.
A Realistic Model Generation Method Using Skyline Platform
LI Guozhu,MA Bo
0494-0911(2012)08-0039-04
P208
B
2012-05-14
李国柱(1973—),男,云南昆明人,硕士,高级工程师,主要研究方向为三维GIS及变形监测。