论文首页哲学论文经济论文法学论文教育论文文学论文历史论文理学论文工学论文医学论文管理论文艺术论文 |
局部建模也称为细致建模,具体步骤如下。
一个城市只有楼房、街道和树是不够的,因此需要我们对粗略的城市进行细化。首先,先建立一个花坛,花坛也是有简单的造型构成的,包括立方体和球体,相互嵌套而成。花坛的颜色设置为浅绿色,错落有致。有树有花坛,当然也得有草了,所以,还要做一个草坪。为了不和花坛相冲突,草坪的颜色设置为深绿色,是一个大的扁平的立方体。街道上没有车也是不行的,但车的造型是比较复杂的,但是什么复杂的东西都可以简单化,本人用两个球体和两个圆柱体做成了一个小汽车。两个球体需要变形,而且上面的球体比下面的小。两个圆柱体作为车轮子,架在大的变形球体的下面,并在上面嵌入了车的图片,具体造型效果如图3-5。
图3-5 小车
草坪建好了,也要为其进行装饰,因此在上面放了凳子和一个供观赏的造型,凳子是由黄色的立方体做成的,供观赏的造型则是在浅灰色的圆锥体上架了一个球体,并在草坪的四角各放了一个半球。为了体现国民的保护意识,在草坪的边上有放置了一个圆柱形的垃圾箱。在此基础之上,为了体现虚拟现实世界的动感,草坪四角的半球及中间圆锥体上的球的颜色是自动变化的。颜色的不断变化是通过颜色插补器CorlorInterpolator和时间传感器TimeSensor来实现的。CorlorInterpolator节点是VRML提供的附加的插补器节点,利用它可以构造色彩的变化效果。CorlorInterpolator节点在它的key和keyValue域中使用一系列关键时刻值和色彩值。CorlorInterpolator节点通过在两个色彩值中内插,来计算一个中间的色彩值,此值被它value_changed域输出。TimeSensor节点可以像时钟一样标记时间的流逝,还附加有定时发送相关时刻信息的功能。同时它可以是一个定时开关,开始及结束一些过程。通常与插补器、传感器联合使用。TimeSensor节点能够作为任何组的子节点。
效果如图3-6和图3-7。从两副图中可以明显看出,除了图中的球体的颜色是不同的之外,其他的都是一样的。
图3-6 奇异的草地甲
图3-7 奇异的草地乙
虚拟现实,也就是模拟现实,使得呈现的景象和现实世界的一样逼真。在这了,本人将要设计的城市的四个游乐场所中的一个做了一点变化。那就是将里面的球体改成了立方体,这不是主要的,值得一提的是当替身与游乐场的距离在一定范围内时,中间的立方体会自动的旋转一定的角度。这种变化是如何实现的呢?其实很简单,这里使用了临近传感器ProximitySensor。临近传感器感知观察者进入并在一个空间的长方体区域中移动的时间。当观察者接近区域时,能使用这些传感器启动一个动画,当观察者离开时停止这个动画。ProximitySensor节点能够作为任何组的子节点。并且它可以感知观察者何时进入、退出和移动鱼当前坐标系内一个长方体区域。可以检测到观察点接近的信号,利用它可控制其他操作。
一个城市只有高楼没有平房也是不切实际的,本人又在城郊建立了几个平房区。每个平房也是由简单的几何造型节点Box构成的。而且,每个平房的门是可以用鼠标拉动一个角度的。房门转动是通过圆柱传感器CylinderSensor的实现的。CylinderSensor节点可以感知一个观察者的拖动动作,并且计算旋转轴和角度,且通过它的rotaion_changed域输出。将鼠标的动作转换成适于操作造型的输出。CylinderSensor节点可以是任何组节点的子节点,它可以感知观察者在组及子节点的任何造型上的动作。通过将传感器节点的输出路由到Transform节点来引起造型物体的旋转。平房区建完了,又在天边添加了几座山。山群是几个圆锥体组成的,只是远近和大小不同,颜色也做了调整,并在上面嵌入了山的图片。具体结果如图3-8。
图3-8 山与平房
一个城市没有人是不可能的,只是多少的问题。人的造型本人是用球体和立方体组成的,胳膊,腿,身体已经脖子是几个立方体,头部是一个球体,效果如图3-9。
图3-9 人
除了以上的各个造型外,在模型中还有一些电线杆,只是起到辅助的作用,也是为了使设计更加完美。
设计的最终结果如图3-10。
图3-10 美丽的城市
以上就是虚拟现实技术的应用,是基于VRML技术的,在整个设计和建模过程中,要求设计者有很好的构想思维方式,时刻以城市规划为理念,要从全局考虑,掌握逐步细化的能力。在这里要求大家要熟练掌握虚拟现实技术和VRML技术,理解城市规划的要领,能够灵活的运用VRML,达到举一反三的程度。
四章 系统的编码实现本设计是以虚拟现实技术为基础,应用VRML语言实现的城市环境的模拟,下面是通过编码而得到的一个城市模拟视图图4-1。
图4-1 城市运行图
在这里的核心技术是VRML语言。在第二章已经对VRML语言做了简要的介绍,这里就不再赘述。
编码实现的过程实际上是如何应用VRML语言的建模过程,编码设计的核心也是VRML语言。在这里,对编码的实现过程作一下简要的介绍。在城市的模拟过程中,许多造型都是用简单的造型节点构造的,用到的简单造型节点有立方体Box,圆锥体Cone,球体Sphere和圆柱体Cylinder,尽管它们比较简单,但是它们是基础造型,不可缺少。下面,本人就从程序中取出一部分来阐述整个编码实现过程。
Background节点是用来设置天空和地面的色彩的,skyColor中包含一系列三元颜色值,用来设置变化的颜色。skyAngle中包含一系列角度值,用来设置颜色变化的角度。GroundColor和groundAngle的功能和作用同skyGround和skyAngle大同小异。如:
Background{
skyColor [0.0 0.2 0.7,0.0 0.5 1.0,1.0 1.0 1.0]
skyAngle [1.309,1.571]
groundColor [0.1 0.0 0.0,0.4 0.25 0.2,0.6 0.6 0.6]
groundAngle [1.309,1.571]
}
DirectionalLight节点是用来设置平行光的照射方向的,其中的direction指定了一个三元值来设置方向,下面的例子中所设定的方向为光线沿着Y轴负方向照射。相当于光线是从顶部照射下来的。
DirectionalLight {
direction 0 -1 0
}