首页 理论教育物流可视化:Creator三维建模为生产过程加持

物流可视化:Creator三维建模为生产过程加持

【摘要】:生产过程可视化模型数据库的建立是在Creator软件中完成的,该软件最大的优点在于它能够充分考虑实时性的需要,用最简单的信息表达复杂的结构,而且它能够有效地借助光源、材质、纹理等加强场景的逼真度而不影响实时的渲染速度。Creator中默认的坐标方向是x轴向右,y轴向里,z轴向上。Creator中提供了很多建模方法,先画出一个长方形,然后通过拉伸生成出长方体。

生产过程可视化模型数据库的建立是在Creator软件中完成的,该软件最大的优点在于它能够充分考虑实时性的需要,用最简单的信息表达复杂的结构,而且它能够有效地借助光源、材质、纹理等加强场景的逼真度而不影响实时的渲染速度。

(1)总体布局

场景数据库的总体布局是首要的任务,主要是要确定场景数据库的原点以及三个坐标的方向。单独的十个模型文件(一个静态模型的整合文件和九个动态模型文件)有自己的局部坐标,当最后集成在一起时,就要通过应用系统的绝对坐标来统一。

Creator中默认的坐标方向是x轴向右,y轴向里,z轴向上。在六个集装箱模型文件中,以集装箱的左下角作为原点(图9-4)。因此,为了方向上的统一,也约定沿集装箱的长度方向作为整个静态模型文件的y轴,根据右手准则也就确定出了x轴(图9-5)。

图9-4 集装箱局部坐标

图9-5 静态场区局部坐标

最终,应用程序的绝对坐标原点可以取在任何位置,只要调整好局部坐标与绝对坐标的相对位置就可以保证场景准确的渲染,为了今后编程算法上的简便,这里就把应用程序的绝对坐标原点取在静态场区局部坐标的原点上。

(2)静止场景建模

静止模型是指在场景中无增、减变化的三维模型,能够集中有效地反映一个港口建筑特色,主要起到增加模型真实感的功能,如桥吊、集装箱船、海平面、岸上的楼房等。

①楼房建模。

岸上的楼房主要包括集装箱作业部的办公楼、变电站以及集装箱进离堆场时的必经关口——检查桥。Creator中采用的方法是多边形建模,因此即使是一个实体的外形,它实际上也是由若干个面组成的,这样做的好处是占用内存较少,利于应用程序高速渲染的要求,这也是实时虚拟与三维动画的主要不同之一。所以,对于一个外形简单的房屋,如类似于一个长方体,那么只要建立6个面即可,甚至可以把底面删除,保留可见的5个面,而真实感是通过添加纹理来实现的。Creator中提供了很多建模方法,先画出一个长方形,然后通过拉伸生成出长方体(见图9-6)。

图9-6 多边形建模

生成的长方体现在是不具有实际意义的,所以最后模型需要加上纹理,以显示模型的真实感。Creator中提供很多纹理粘贴技术,利用三点放置法来放置各面的纹理,使长方体看上去是房子的外观(见图9-7)。

图9-7 真实感房屋模型

用Creator建模要遵循几条基本的原则:其一应建立凸多边形,因为凹多边形会影响实时显示的效果,出现凹多边形时应把它分解成若干个凸多边形;其二不要使两个面产生覆盖现象,因为当两个面的深度值一样,场景渲染时就会无法确定覆盖部分的显示,会出现扭曲现象,当两个面确实需要重叠时,应该采用一定的处理手段,可以用子面的方法,也就是说把一个面作为另一个面的子面,即两个面在数据库中不是同级关系,而是上下关系,或者就把相互覆盖的两个面作为几个面来建模以消除覆盖现象。例如图9-7中第一个房屋,它的某个面的纹理不是用一张图片来获取的,墙壁、门、窗有各自的纹理,这里采用的是生成子面的技术,先构造整个墙壁面,贴上墙壁的纹理,然后以墙壁为基面,画出与门、窗等大小的面,贴上门窗的纹理。

对于检查桥,它的建模也比较简单。利用Creator的层次结构视图,可以建立新的组节点(group)和对象物节点(object),然后重新组合各个面,以便归属于相应的节点。最后的结果是把检查桥的模型分成顶、立柱、房屋三部分,检查时都采用拉伸建模的方法,要注意的就是在建立基础多边形的时候,防止出现凹多边形。因为房屋形式的单一性,所以这里采用复制再移动的方法,建立多个结构相同的房屋,Creator提供许多修改几何体的工具,可以方便地移动、旋转和缩放几何体。为了节省内存资源,还提供了转换矩阵的方法,这是实例化技术的具体应用。图9-8是检查桥的模型以及与之对应的数据库结构。

②桥吊建模。

桥吊的建模是项很复杂的工作,虽然它所涉及的建模技术并不难,但是建模的工作量很大,最后产生的面很多。

图9-8 检查桥模型和数据库结构

建模之前必须收集桥吊的尺寸参数,通过三视图得到各种部件的尺寸和依托关系,并且考虑清楚大致的建模流程和步骤。如把整个桥吊分成梁、拉杆、小车行走机构、大车行走机构、主体框架结构等来建模。模型可以适当地简化,因为它不是最终应用系统主要观察的对象,所以它的建模不强调逼真性,只要形似即可,图9-9为桥吊的模型。

图9-9 桥吊模型

③集装箱船建模。

集装箱船建模的主要工作虽没有桥吊那么繁琐,但是很讲求技巧的应用,这些技巧分别是:船身建模时用到的放样技术以及船上的集装箱生成时用到的纹理粘贴技术和实例化技术,它们都很好地反映了Creator建模的特点。

船身建模采取的方法与集卡司机室的建模方法一样,采用的是放样(loft)技术。放样技术主要用于有特征面但特征面之间的过渡相对复杂的情况,这时就要画出几个特征面,然后通过放样生成最后的模型,模型之间的过渡完全由计算机来完成。因此,决定模型逼真度的主要因素是特征面的选取要有代表性。图9-10是为了构建船身而生成的4个特征面,图9-11是通过放样后生成的船身模型,基本反映了船身的外形,这样的一个船身包括了200多个面,是无法用手工一一画出的。

图9-10 船身的特征面

图9-11 船身模型

在集装箱船的建模中,还涉及纹理粘贴技术,主要用在船上集装箱的建模上,按照通常的思路,一个箱子对应一个纹理,直接存在的问题就是所生成的面过多,最终还是要通过合并面的技术来使得多个面合并成一个面,因此可考虑直接构造一个长方体,但是各个面的纹理已经包含了若干个集装箱。如图9-12所示就是将贴于一个长方体的上、正、侧面的纹理图;这样,一个长方体可以按照比例画出多个集装箱。这就体现出构造纹理的技术,如何使建模简单,如何使模型最节省内存资源成为构造纹理的主要依据。

图9-12 集装箱群的上、正、侧面纹理图

一个这样的长方体建模完成后,就可以利用实例化技术生成若干个长方体,具体地说,就是利用Creator中“插入转换矩阵”的方法构造出一样的长方体,这种处理方法不仅方便了建模,而且也大大节省了内存资源。

最后生成的集装箱船模型如图9-13所示。

④自然环境建模。

上述这些模型都反映了港口的人文景观,再加入一些自然景观将会使模型更加逼真。出于必要性的考虑,这里对地面、海面、公路的建模都采用面上粘贴纹理的方法,而没有采用软件中的地形生成工具,原因是地形数据不易获得,而且有高低的地面也将增加整个模型的多边形数目。除此之外,还增加堆场的场区标志以及场区的画线,大大增加了整个堆场的逼真度。

图9-13 集装箱船模型

这部分建模,建模技术本身的应用比较简单,重点在纹理图片的处理上。通常所拍的照片不能直接使用,必须进行一定的处理,图片的长宽必须是二维的,即应该是2的幂次,纹理的颜色和亮度有时也要做适当的处理,更为重要的是要制作透明纹理,尤其在背景图片以及花草树木的图片处理上,要让树完全的置于自然景观中,就必须消除主体(如树木本身)周围(如天空)的颜色。

上述所有的建模完成后,把它们组织到一个文件中,就构成静态模型文件(见图9-14),它将直接加到LynX的对象物面板中。

图9-14 堆场整体模型

(3)运动场景建模

运动场景是指在堆场上有增减变化的模型,主要包括集装箱、场地轮胎吊、码头内部集卡、外部集卡等。

①集装箱建模。

根据前面的讨论,集装箱的模型需要按照纹理和种类的不同分别建模。建全所有纹理式样的模型不仅浪费内存资源且不合实际,只建立一个又会使堆场看上去不够逼真,所以最终采用的方法是:建立3个拥有不同纹理的集装箱模型,并分别对应20尺和40尺(如图9-15),一共对应了6个模型文件。这样,在后面的模型驱动中,通过随机抽取的方式来添加集装箱,使得场景看上去具有真实感且比较美观。

图9-15 三个不同纹理的集装箱模型(20尺)

②集卡建模。

为了使集卡的结构能够清晰呈现出来,将各个部件复制再移动到不同的地方,以显示出部件与整体的效果(见图9-16)。集卡的建模分四步进行,即集卡头部(司机室)、车架、底盘和轮子。就建模而言,多数是长方体建模,所以主要涉及的是多边形拉伸技术。在集卡司机室的建模过程中,拉伸技术会使模型显得比较呆板,因为司机室是有些棱角的,所以可以通过找特征面,然后用放样技术加适当的纹理来实现。

图9-16 集卡的整体视图与部件视图

建模时各个部件的归属关系不一定很清楚,但可以方便地利用层次结构视图进行修改。建模过程中,任何部件的建立都应该基于一个特定的节点,如果建模时忽略了这一点,在建模之后也应该调整数据库的结构,使有相同特征的面尽量在一起,Creator提供了方便的数据库修改功能,这也为数据库的进一步优化提供了手段。

此外,对于集装箱码头而言,集卡分为归属码头的内部集卡和社会的外部集卡,生产过程可视化的过程中,为了区分具体装卸作业的种类,即通过集卡的外观和携带箱子的情况直观了解装卸作业的情况,需要分别建立内集卡和外集卡的模型,在系统的可视化过程中,以车头颜色的不同对集卡加以区分。一般约定内集卡是白色车头、外集卡是蓝色车头。

③场地轮胎吊建模。

场地轮胎吊是整个场景中运动最为复杂的对象物,如图9-17所示,它不仅包括吊车整体的运动,还包括部件的相对运动,它要实现的运动包括:整个大车移动带动所有部件运动,以到达指定的地点装卸货物;小车、吊具和司机室一起移动,以到达指定的位置取放货物;吊具上下移动;钢丝绳的伸缩运动,实际情况中钢丝绳从卷筒中不断伸出或卷入,但在虚拟系统中是依靠钢丝绳的伸缩来达到这种效果;吊具头部的水平伸缩,以适应不同大小的集装箱。这几种运动之间并非是独立的,而是有着相互制约的关系。从运动实现的角度讲,它主要是通过改变对象物的位置和大小来实现运动的。

图9-17 轮胎吊三维模型

Creator建模软件采用OpenFlight分层数据结构,在分层结构中,可以方便地建立和管理模型实体及其数据,并准确地建立父子对象的依赖关系。在建模过程中运用Creator中的自由度(DOF)建模技术,通过建立DOF节点,使该节点拥有的对象可以继承DOF父节点对象的一切运动,因此通过DOF节点的嵌套就可以实现物体各运动部件之间的相对运动。根据轮胎吊车的运动特点,建模时采用的树状数据结构及各部件的运动方式如图9-18所示。