当前位置:文档之家› 虚拟现实技术实验报告三

虚拟现实技术实验报告三

华北水利水电学院虚拟现实技术实验报告2014~2015学年第一学期13 级计算机科学与技术专业班级:学号:姓名:

实验三虚拟现实复杂场景建模与漫游仿真

一、实验目的:

掌握虚拟现实技术复杂三维场景建模技术。在场景中引入环境背景、动画与交互等,构建逼真的三维场景。

二、试验要求:

本次试验为综合性质试验,要求自行设计一个较为复杂的场景或者单体模型,其中包含各种造型与渲染技术,比如纹理材质、光照、环境背景、声音视频、动画与交互等。场景内容不限。

三、试验步骤:

主要代码如下:

NavigationInfo {

type [ "EXAMINE", "ANY" ]

headlight TRUE

}

DEF vp1 Viewpoint { #set the viewpoint

position 2 0 11

}

Transform {

translation 3 -2.5 -2

rotation 0 0 1 1.57

children [Transform {rotation 0 -1 0 0.33

children [

Shape {

appearance Appearance {

material Material { }

texture ImageTexture { url "wood.jpg" }

}

geometry Box {size 0.1 30 17}

}

]}]

}

Transform #weight scale

{

translation -2 0 0

children [

Transform

{ rotation 1 0 -1 1.571

children [

Shape {

appearance Appearance {

material Material {diffuseColor 0.9 0.1 0.4

specularColor .18 .25 .23

ambientIntensity .0433

shininess .06 }

} #end Appearance

geometry Cylinder {radius 0.9 height 0.3 }

} #end dial base

DEF weight TouchSensor {}

Transform { #dial face (white)

translation 0 0.21 0

children [

Shape {

appearance Appearance {

material Material { diffuseColor 1 1 1}

}

geometry Cylinder {radius 0.8 height 0.05}

}

]

}

Transform { # scale

children [

DEF scale Transform {

translation 0 0.22 -0.6

rotation 1 0 0 1.571

children

[

Shape {

appearance Appearance {

material Material {diffuseColor 0.9 0.1 0.4}

texture ImageTexture {}

}

geometry Cone {bottomRadius 0.1 height 0.1}

}

]

}

]

}

Transform {

rotation 0 1 0 0.5236

children [USE scale ]

}

Transform {

rotation 0 1 0 1.0472

children [USE scale ]

}

Transform {

rotation 0 1 0 1.5708

children [USE scale ] }

Transform {

rotation 0 1 0 2.0944

children [USE scale ] }

Transform {

rotation 0 1 0 2.6180

children [USE scale ] }

Transform {

rotation 0 1 0 3.1416

children [USE scale ] }

Transform {

rotation 0 1 0 3.6652

children [USE scale ] }

Transform {

rotation 0 1 0 4.1888

children [USE scale ] }

Transform {

rotation 0 1 0 4.7124

children [USE scale ] }

Transform {

rotation 0 1 0 5.2360

children [USE scale ] }

Transform {

rotation 0 1 0 5.7596

children [USE scale ] }

Transform #weight scale needle

{

children [

DEF index Transform {

translation -0.1 0.5 0.1

rotation 0 1 0 0.9

scale 0.85 1 0.85

children [

Shape {

appearance Appearance {

material Material {diffuseColor 1 0.1 0.1}

}

geometry IndexedFaceSet {

coord Coordinate {

point [

0.07 0 0,

#0.03 0 -1,

-0.03 0 -0.7,

-0.07 0 0,

]

}

coordIndex [0,1,2,-1]

}

}

]

}

]

}

]}

Transform {

translation 0 -1.6 0

children [Shape {

appearance Appearance {

material Material { diffuseColor 0.9 0.1 0.4}

}

geometry Cylinder {radius 0.08 height 3}

}]

}

Transform #weight scale base

{

translation 0.8 -3 0.2

rotation 1 -1 0 0.571

children [

Shape {

appearance Appearance {

material Material {diffuseColor 0.9 0.1 0.4}

}

geometry Box {size 2 0.2 1}

}

]

}

]

}

DEF doll T

DEF Timer4 TimeSensor{ #eyesight tabel-needle TimeSensor

enabled FALSE

startTime 0.0 ransform {

translation 3 -2.7 0.76

#rotation 1 0 0 1.5

#scale 1 1 1

children [

DEF movedoll PlaneSensor { minPosition -5 -2.5 #set PlaneSensor movedoll with maxPosition

maxPosition 8 -0.5

}

Shape {

appearance Appearance {

texture ImageTexture { url "pangpang.gif" }

material Material {

diffuseColor 1 .85 0

specularColor .87 .25 .25

ambientIntensity .157

shininess 1

#transparency .737

}

}

geometry Sphere {radius 0.6}

}

]

}

Transform {

translation 8 -1 0

rotation 1 1 0 0.5

children [

Shape {appearance Appearance {

material Material {diffuseColor 1 1 1 }

texture ImageTexture { url " shili.jpg" }

}

geometry Box {size 0.1 4 1}

}

DEF image TouchSensor {}

]

}

DEF Timer TimeSensor{ enabled FALSE

startTime 0.0

cycleInterval 10.0

loop TRUE

}

DEF Timer2 TimeSensor{ enabled FALSE

startTime 0.0

cycleInterval 10.0

loop TRUE

}

DEF Timer3 TimeSensor{ enabled FALSE

startTime 0.0

cycleInterval 10.0

loop TRUE

}

cycleInterval 10.0

loop TRUE

}

DEF PI PositionInterpolator {

key [ 0 ]

keyValue[-1 -2.3 0.76 ]

}

DEF OI OrientationInterpolator {

key [0 ]

keyValue[1 1 0 0.5 ]

}

DEF OI2 OrientationInterpolator { key [0 ]

keyValue[0 1 0 0.9 ]

}

DEF PI2 PositionInterpolator

{

key [0]

keyValue[6.2 -0.7 0 ]

}

ROUTE weight.isActive TO Timer.set_enabled

ROUTE Timer.fraction_changed TO PI.set_fraction

ROUTE PI.value_changed TO doll.set_translation

ROUTE weight.isActive TO Timer2.set_enabled

ROUTE Timer2.fraction_changed TO OI.set_fraction

ROUTE OI.value_changed TO index.set_rotation

ROUTE image.isActive TO Timer3.set_enabled

ROUTE Timer3.fraction_changed TO PI2.set_fraction

ROUTE PI2.value_changed TO doll.set_translation

ROUTE image.isActive TO Timer4.set_enabled

ROUTE Timer4.fraction_changed TO OI2.set_fraction

ROUTE OI2.value_changed TO index.set_rotation

ROUTE movedoll.translation_changed TO doll.set_translation

四、试验结果:

五、小结(包括收获、心得体会、存在的问题及解决问题的方法、建议等)

这次试验我做了一个简单的儿童篮球场模型。首先把篮球,计时篮球架,挡板,地板等一一做好,最终将他们组合起来,其中最难的是小球运动。空间坐标的平移是通过对Transform节点的translation域的域值的设定,建立新的坐标原点,作为children域中所有子节点创建造型的定位点,从而实现原始坐标系和新坐标系造型之间相对位置的移动和变化的,这一点我感触颇深。

相关主题
文本预览
相关文档 最新文档