资源描述
虚拟现实开发文档
罗维 03091350
1. 功能概述
运用vrml语言构造了一个虚拟现实世界。运动物体包括气球,火车,汽车,交通灯等,静止物体包括山脉,树林,房屋,人物,花草,电话亭,国旗,座椅,广告牌,雨伞等,另外还包含背景和声音。
2. 使用说明
2.1广告牌
截图:
程序:
#VRML V2.0 utf8
Transform {
translation 0.0 0.0 0.0 #背景颜色
children [
Transform {
translation 0.0 0.0 0
children [
#创建广告牌造型
Shape {
appearance Appearance{
material Material {
diffuseColor 0.2 0.3 0.3
}
}
geometry Box { #广告牌
size 12 6.5 0.2
}
}
]
}
Transform {
translation 0.0 0.0 -0.02
children [
Shape {
appearance Appearance{
texture ImageTexture {
url "advertisement.png"
}
material Material {
diffuseColor 0.0 0.0 0.0
}
}
geometry Box {
size 11 5.6 0.4 #广告屏幕
}
}
]
}
]
}
DEF leg Transform{ #广告柱子
translation 5 -4 0.1
scale 0.04 0.04 0.04
children[
Shape { # Shape 模型节点
appearance Appearance{
material Material { #空间物体造型外观
diffuseColor 0.2 0.3 0.3 #一种材料的漫反射颜色
}
}
geometry Cylinder { #柱体节点
radius 2.0 #圆柱体半径
height 100.0 #圆柱体高
top TRUE #圆柱体有顶
#bottom TRUE #圆柱体有底
bottom FALSE
side TRUE #圆柱体有曲面
}
}
]
}
Transform{ #椅子腿
translation -10 0 0
children USE leg
}
2.2热气球
截图:
程序:
#VRML V2.0 utf8
Group {
children [
Background{
skyColor[
0.2 0.5 0.6
]
}
#创建月球造型
Transform{
translation 0 0 0.0
scale 1 1 1
children[
Shape { #银白颜色
appearance Appearance{
texture ImageTexture {
url "balloon.png"
}
material Material { #空间物体造型外观
diffuseColor 0.5 0.5 0.7 #一种材料的漫反射颜色
ambientIntensity 0.4 #多少环境光被该表面反射
specularColor 0.8 0.8 0.9 #物体镜面反射光线的颜色
shininess 0.20 #造型外观材料的亮度
}
}
geometry Sphere { #球体
radius 4
}
}
]
}
]
}
Transform{
translation 0 -4 0.0
scale 1 0.6 0.6
children[
Shape {
appearance Appearance{
texture ImageTexture {
url "color.png"
}
material Material { #空间物体造型外观
diffuseColor 0.3 0.2 0.0 #一种材料的漫反射颜色
ambientIntensity 0.4 #多少环境光被该表面反射
specularColor 0.7 0.7 0.6 #物体镜面反射光线的颜色
shininess 0.2 #造型外观材料的亮度
}
}
geometry Cylinder { #潜艇舰桥(嘹望塔)
radius 1.0
height 3.0
side TRUE
top TRUE
bottom TRUE
}
}
]
}
热气球运动程序:
#VRML V2.0 utf8
DEF fly1 Transform { #引入月球造型
children Inline {url "balloon.wrl"}
}
DEF Time1 TimeSensor { #时间传感器
cycleInterval 32
loop TRUE
}
DEF flyinter1 PositionInterpolator { #移动位置节点
key [ #相对时间的逻辑值
0.0,0.083,0.166,0.252,0.332,0.412,0.496,0.581,0.664,0.747,0.83,0.913,1.0
]
keyValue [ #空间坐标的位置值与相对时间的逻辑值
0 0 -20,
6.6 0 -15,
13.2 0 -9,
20 0 0,
13.2 0 9,
6.6 0 15
0 0 20
-6.6 0 15
-13.2 0 9
-20 0 0
-13.2 0 -9
-6.6 0 -15
0 0 -20
]
}
ROUTE Time1.fraction_changed TO flyinter1.set_fraction
ROUTE flyinter1.value_changed TO fly1.set_translation
2.3国旗
截图:
程序:
#VRML V2.0 utf8
Group {
children [
Transform {
translation -22 -3 22
scale 0.1 0.1 0.1
children [
Transform{
children [
Shape {
appearance Appearance {
texture ImageTexture {
url "flag.gif"}}
geometry Box {
size 27 0.1 27 }
}
]
}
Transform {
translation 0 15 0
children [
Shape {
appearance Appearance {
texture ImageTexture {
url "flagbase.gif"
}}
geometry Cylinder {
radius 0.2
bottom TRUE
top TRUE
height 30
side TRUE}
}
]
}
Transform {
children [
Shape {
appearance Appearance {
texture ImageTexture {
url "flagbase.gif"
}}
geometry Cylinder {
radius 2.0
bottom TRUE
top TRUE
height 1.0
side TRUE}
}
]
}
Transform {
translation 4 28 0
scale 2 2 2
children [
Shape {
appearance Appearance {
texture ImageTexture {
url "china.gif"}}
geometry Box {
size 4.0 2.0 0.01}
}
]
}
]
}
]
}
Viewpoint {
orientation 0 1 0 1.2
position -15 -2 25
}
2.4公共汽车
截图:
程序:
#VRML V2.0 utf8
DEF Bus Transform {
children [
DEF body Shape {
appearance Appearance {
material DEF LtGray_Color Material {
ambientIntensity 0.25
diffuseColor 0.70213 0.70213 0.70213
}
texture ImageTexture {
url "bus_side.jpg"
}
}
geometry IndexedFaceSet {
coord Coordinate {
point [ 1.7909 0 -7.67,
1.7909 0 7.6904,
1.7909 1.982 7.6904,
1.7909 3.964 7.1949,
1.7909 3.964 -7.1745,
1.7909 3.4685 -7.67,
-1.8015 0 -7.67,
-1.8015 0 7.6904,
-1.8015 1.982 7.6904,
-1.8015 3.964 7.1949,
-1.8015 3.964 -7.1745,
-1.8015 3.4685 -7.67 ]
}
coordIndex [ 0, 5, 4, 2, -1, 0, 2, 1,
-1, 4, 3, 2, -1, 11, 6, 7,
8, -1, 9, 10, 11, 8, -1 ]
texCoord TextureCoordinate {
point [ 0.0077066 0.017324,
0.99741 0.017324,
0.99741 0.49809,
0.96549 0.97886,
0.039633 0.97886,
0.0077066 0.85867,
0.0077066 0.017324,
0.99741 0.017324,
0.99741 0.49809,
0.96549 0.97886,
0.039633 0.97886,
0.0077066 0.85867 ]
}
}
}
DEF front01 Shape {
appearance Appearance {
material USE LtGray_Color
texture ImageTexture {
url "bus_front.jpg"
}
}
geometry IndexedFaceSet {
coord Coordinate {
point [ 1.7909 0 7.6904,
1.7909 1.982 7.6904,
1.7909 3.964 7.1949,
-1.8015 0 7.6904,
-1.8015 1.982 7.6904,
-1.8015 3.964 7.1949 ]
}
coordIndex [ 3, 0, 1, 4, -1, 4, 1, 2,
5, -1 ]
texCoord TextureCoordinate {
point [ 0.93614 0.018577,
0.93614 0.48085,
0.93614 0.97202,
0.072481 0.018577,
0.072481 0.48085,
0.072481 0.97202 ]
}
}
}
DEF top01 Shape {
appearance Appearance {
material USE LtGray_Color
}
geometry IndexedFaceSet {
coord Coordinate {
point [ 1.7909 3.964 7.1949,
1.7909 3.964 -7.1745,
-1.8015 3.964 7.1949,
-1.8015 3.964 -7.1745 ]
}
coordIndex [ 2, 0, 1, 3, -1 ]
}
}
DEF back01 Shape {
appearance Appearance {
material USE LtGray_Color
}
geometry IndexedFaceSet {
coord Coordinate {
point [ 1.7909 0 -7.67,
1.7909 3.964 -7.1745,
1.7909 3.4685 -7.67,
-1.8015 0 -7.67,
-1.8015 3.964 -7.1745,
-1.8015 3.4685 -7.67 ]
}
coordIndex [ 4, 1, 2, 5, -1, 5, 2, 0,
3, -1 ]
}
}
]
translation 0.00532 0 -0.01021
}
2.5汽车
截图:
程序:
#VRML V2.0 utf8
Background{ #空间背景中,空中无颜色,即黑色。
topUrl "cloud.jpg" #顶部
frontUrl "cloud.jpg" #前面
backUrl "cloud.jpg" #后面
leftUrl "cloud.jpg" #左面
rightUrl "cloud.jpg" #右面
bottomUrl "water.jpg" #底部
}
DEF car Transform{
rotation 0 1 0 1.57
children[
Transform{
translation 0 0 3
rotation 1 0 0 1.57
children Shape{
appearance Appearance{
texture ImageTexture {
url "tire.png"
}
material Material{
diffuseColor .1 .1 .1
}
}
geometry Cylinder{
radius 1
height .5}
}
}
Transform{
translation 0 0 -3
rotation 1 0 0 1.57
children Shape{
appearance Appearance{
texture ImageTexture {
url "tire.png"
}
material Material{
diffuseColor .1 .1 .1}
}
geometry Cylinder{radius 1 height .5}
}
}
Transform{
translation 10 0 3
rotation 1 0 0 1.57
children Shape{
appearance Appearance{
texture ImageTexture {
url "tire.png"
}
material Material{
diffuseColor .1 .1 .1}
}
geometry Cylinder{
radius 1
height .5}
}
}
Transform{
translation 10 0 -3
rotation 1 0 0 -1.57
children Shape{
appearance Appearance{
texture ImageTexture {
url "tire.png"
}
material Material{
diffuseColor .1 .1 .1}
}
geometry Cylinder{
radius 1
height .5}
}
}
#车轮
Transform{
translation 6 2 0
children Shape{
appearance Appearance{
texture ImageTexture {
url "car_side.png"
}
material Material{
}
}
geometry Box{
size 16 3 8
}
}
}
Transform{
translation 6.8 4 0
children Shape{
appearance Appearance{
texture ImageTexture {
url "black.png"
}
material Material{
}
}
geometry Box{
size 14 3 7
}
}
}
#车身
Transform{
translation -2 3 -3
children Shape{
appearance Appearance{
material Material{
diffuseColor 1 1 1}
}
geometry Sphere{radius .5}
}
}
Transform{
translation -2 3 3
children Shape{
appearance Appearance{
material Material{
diffuseColor 1 1 1
}
}
geometry Sphere{radius .5}
}
}
]
}
#车灯
Transform{
translation 0 2 2
rotation 0 1 0 1.571
children Shape{
appearance Appearance{
texture ImageTexture {
url "car_front.png"
}
material Material{
}
}
geometry Box{
size 0.01 3 8
}
} #车正面
}
Transform{
translation 0 4.5 0.2
rotation 0 1 0 1.571
children Shape{
appearance Appearance{
texture ImageTexture {
url "glass.png"
}
material Material{
}
}
geometry Box{
size 0.01 1.5 6.5
}
} #车窗户
}
Transform{
translation 0 4.5 -13.8
rotation 0 1 0 1.571
children Shape{
appearance Appearance{
texture ImageTexture {
url "glass.png"
}
material Material{
}
}
geometry Box{
size 0.01 1.5 6.5
}
} #车窗户 后面
}
Transform{
translation 3.55 4.5 -7
rotation 0 0 1 1.571
children Shape{
appearance Appearance{
texture ImageTexture {
url "glass.png"
}
material Material{
}
}
geometry Box{
size 1.5 0.01 13
}
} #车窗户 侧面
}
Transform{
translation -3.5 4.5 -7
rotation 0 0 1 1.571
children Shape{
appearance Appearance{
texture ImageTexture {
url "glass.png"
}
material Material{
}
}
geometry Box{
size 1.5 0.01 13
}
} #车窗户 侧面
}
2.6椅子
截图:
程序:
#VRML V2.0 utf8
Transform {
translation 0.0 0.0 -0.02
children [
Shape {
appearance Appearance{
texture ImageTexture {
url "chair_wood.jpg"
}
material Material {
diffuseColor 0.2 0.3 0.4
}
}
geometry Box {
size 11 5.6 0.3 #椅子背
}
}
]
}
Transform {
translation 0 -2.8 2.8
rotation 1 0 0 1.571
children [
Shape {
appearance Appearance{
texture ImageTexture {
url "chair_wood.jpg"
}
material Material {
diffuseColor 0.6 0.5 0.2
}
}
geometry Box {
size 11 5.6 0.3 #椅子坐
}
}
]
}
DEF leg Transform {
translation 5.3 -5.5 0.3 #椅子腿
rotation 0 0 0 1.571
children [
Shape {
appearance Appearance{
texture ImageTexture {
url "chair_wood.jpg"
}
material Material {
diffuseColor 0.6 0.5 0.2
}
}
geometry Cylinder {
radius 0.2 #圆柱体半径
height 5.0 #圆柱体高
top TRUE #圆柱体有顶
#bottom TRUE #圆柱体有底
bottom FALSE
side TRUE #圆柱体有曲面
}
}
]
}
Transform{ #椅子腿
translation -10.5 0 0
children USE leg
}
Transform{ #椅子腿
translation 0 0 5
children USE leg
}
Transform{ #椅子腿
translation -10.5 0 5
children USE leg
}
2.7广告牌
截图:
程序:
#VRML V2.0 utf8
Transform {
translation 0.0 0.0 0
scale 5 5 5
children [
DEF side1 Shape {
appearance Appearance {
texture ImageTexture {
url "flag_top.png"
}
material DEF Blue_Color Material {
ambientIntensity 0.197097
diffuseColor 0.1 0.2 0.3
}
}
geometry Extrusion {
creaseAngle 0.541052
crossSection [ 1.00346 0.254188,
1.11821 0.209842,
1.19964 0.115829,
1.22904 -0.006242,
1.19964 -0.128314,
1.11821 -0.222327,
1.00346 -0.266673,
1.00346 0.254188 ]
orientation 0 0 1 0
scale 1 1
solid FALSE
spine [ -0.197562 0 0,
-0.253993 0 0 ]
}
}
]
}
Transform {
translation -1.1 3.3 0
rotation 0 1 0 1.571
children [
Shape {
appearance Appearance{
texture ImageTexture {
url "flag_middle.png"
}
material Material {
diffuseColor 0.1 0.2 0.3
}
}
geometry Box {
size 2.5 3.5 0.1 #广告屏幕
}
}
]
}
Transform{ #广告柱子
translation -1.1 0.1 0
scale 0.1 0.1 0.1
children[
Shape { # Shape 模型节点
appearance Appearance{
material Material { #空间物体造型外观
diffuseColor 0.1 0.2 0.3 #一种材料的漫反射颜色
}
}
geometry Cylinder { #柱体节点
radius 1 #圆柱体半径
height 30.0 #圆柱体高
top TRUE #圆柱体有顶
#bottom TRUE #圆柱体有底
bottom FALSE
side TRUE #圆柱体有曲面
}
}
]
}
2.8房屋
截图:
程序:
#VRML V2.0 utf8
Group {
children[
DEF house1 Transform {
translation -22 12 -24
children [
Shape {
appearance Appearance {
texture ImageTexture {
url "house1.gif"
repeatS TRUE
repeatT TRUE
}
}
geometry Box {
size 20 30 20
}
}
]
}
]
}
2.9山脉
截图:
展开阅读全文