Title: CS461561 Virtual Environments: Principles
1CS461/561Virtual Environments Principles
ApplicationsBasic Concepts in Virtools
- 1-22-2007
- Prof. Searleman
- SC375
- jets_at_clarkson.edu
2Overview
- Exercise 1 discuss VR application
- Basic concepts in Virtools
- File types cmo, nmo, vmo, etc.
- Object, Mesh Material
- Cameras Lights
- Translation
- Interaction response to keys
- Virtools Exercises 2 3
3Overview
- Recap
- object, mesh, material
- building blocks
- Trace mode
- Virtual Cameras
- surveillance Cam
- Path (curves)
- object following a path
- virtual Cameras, revisited
- 3rd Person Cam
- Exercise3 due in class today
- Virtools Tutorial complete by this Friday
- Exercise4 due Monday, 11/13/06
4Assignments
- Virtools Exercise 1 due today
- Explore the internet for interesting articles,
papers, projects, etc. on Virtual Reality (bring
a list of URLs to class today) - Complete Virtools Exercise 2 today
- Virtools Exercise 3 - due Wednesday
5Virtools Compositions
- add comment box containing name, date exercise
- schematics should be neat easy to read
- make sure all pIns are labelled
- print the scripts (landscape mode)
- turn in printouts also copy your composition to
the following directory (in the subdirectory with
your name) - S\Atlas\Classes\Computer Science \CS461\Projects
6Getting Help
- Virtools documentation is provided in
- c\Program Files\Virtools\Virtools Dev
4.0\documentation - Reference Guide documentation.chm
- Tutorials
- MiniSite
- CMOS
- VirtoolsResources.rsc
- Internet Based Resources
- www.virtools.com
- www.theswapmeet.com
7Virtools Packs
- In addition to the basic functionality provided
by Dev 4.0, there are a number of add-ons. These
include - VR pack
- Physics pack
- AI pack
- CAD pack
- Server
- XBox pack
available in CEC, ITL, etc.
8Creating a Virtual Environment in Virtools
9Basic Concepts in Virtools
- Level Manager organizes the composition
- use to set up objects, lights and cameras
- THEN SET INITIAL CONDITIONS
- Schematic creates edits scripts
- a script describes how an object behaves
- Building Blocks (BBs)
- a library of behaviors, organized by the type of
behavior and/or by the type of object to which
the behavior can be applied - Media objects created in other apps (e.g. Maya)
- e.g. model, sound or image
- Data Resources ResourcesOpen Data Resource
- used to import media objects into the VE
10Object Mesh - Material
- 3D mesh is the wireframe shape for an object
- A mesh is often shared by several different
objects to save space - A material is wrapped around the mesh
- materials can be shared
- color parameters
- ambient multiplies the scenes ambient color
- diffuse default surface color, depends on
lights - specular shiny highlights
- emmisive self-illumination
11Shared Mesh and/or Material
Dependency if you delete Kens mug, you will be
asked about dependencies. If you select full,
Andys mug no longer has a shape!
12Recap Object, Mesh Material
Objects can share a mesh. A mesh can share a
material. If you delete an object that is sharing
a mesh or material, specify no dependencies
(meaning that it will not delete the shared mesh
or material).
13Mesh
- Geometry (wireframe)
- triangular faces vertices
- cannot create a mesh in Virtools
- List of materials
- Channels gt 1 layer of material
- Lit mode
- lighting done by Virtools
- prelit static object (done in 3DS or Maya)
- Texture Wrap
- Sharing
- gt1 object can share a mesh
- gt1 meshes can share a material
143D Coordinate System
- defaults to metric (1 unit 1 meter)
- X horizontal Y vertical Z depth
(Left-handed coordinate system) - Local coordinate system set when a 3D entity is
created typically this is 1 corner of the
bounding box or is the barycenter (geometric
center) of the entity - World coordinate system (absolute coordinates)
shared by all elements in a composition
15Getting Started
- Save your composition often (say every 15 mins or
so, or when you make a change in the objects) - Set initial conditions whenever you change any
setting about an object, before you run the
composition - Hot Keys
- F1, Ctrl-double click
- Shortcuts
- Trace mode
16Steps to create a composition
- Import an object (ResourcesImport)
- Use the Level Manager to set up the object (right
click on the object and select setup). You
can rename it, adjust its coordinates, rotate it
as desired, change the color or material, add a
texture, and so on. - Add lighting
- Add a camera adjust it to view the object
- SET INITIAL CONDITIONS
- Create scripts that control its behavior.
17Lights
- There are 3 types of lights in Virtools
- directional light point light spot
light
directional lt point lt spot (in terms of
complexity)
18Add Lighting
- Add a spot light
- use the level manager to rename it
- use Setup to position it
- Add directional lighting
- use the level manager to rename it
- use Setup, select Directional
- Position it, say at (0,10,0)
- Change its orientation to (90,0,0)
19Cameras
- There are 2 types of cameras in Virtools
- Target camera
- - always looking at a target defined by a
frame - - cannot specify orientation
- Free camera
- - useful since you can change the
orientation - Create Camera button creates both a camera a
target to get a free camera, delete the target
using the level manager
20Camera
21Rendering
- View Frustrum (view volume)
- defined by the current camera its near far
clipping planes
22Add a Camera
- Add the camera
- Use the Level Manager to rename it
- Use Setup to change its coordinates (or position
it using the toolbar to the left of the 3D Layout
window)
23Building Block
- blue Behavior Inputs (bIn)
- green Behavior Outputs (bOut)
- red Parameter Inputs (pIn)
- violet Parameter Outputs (pOut)
24Rendering a Frame
- Process Loop
- repeat
-
- forever
Process Behaviors Render
1 frame
25BB Operating Cycle
- BB is inactive
- At least 1 input is activated gt BB is activated
- BB reads the input parameters performs its
function - At least 1 output is activated
- Some BBs stop here (go back to 1) and others
reactivate themselves even if no input is active
(go back to 3)
26Example Delayer BB
one Behavior In (BIn) / one Behavior Out (BOut)
27BIn/BOut Building Blocks
Some building blocks have one In and one Out.
The BB starts out as inactive. When you activate
the In, the BB performs its operation, activates
the Out, and becomes inactive. To repeat a
behavior, you must explicitly have a link back to
the behavior In in order to reactivate the
BB. Examples Delayer BB (above), Rotate BB,
Translate BB.
28Example Timer
one Behavior In (BIn) / one Behavior Out
(BOut) one Loop In / one Loop Out
29Loop In/Loop Out Building Blocks
Some building blocks have an In, a Loop In, an
Out, and a Loop Out. The BB starts out as
inactive. When you activate the In, the BB
performs its operation and then activates the
Loop Out. To repeat a script, connect from Loop
Out to the looping scripts In, and have a link
from the looping scripts Out back to the BBs
Loop In. When the loop is finished, the BBs Out
is activated. Example Timer BB.
30Loop In/ Loop Outdetails
- BB is inactive
- In is activated the BB activates Loop Out
following the pink link BB is still inactive - We link Loop Out to the script we want to execute
during 3s. To have the timer active again, My
Looping Script needs to reactivate Loop In.
Then, during 3s, the timer will work following
the violet link - Inactive -gt Loop In -gt Active -gt Loop Out -gt
Inactive - Finally, when Loop In is activated but the time
elapsed gt 3s, the timer will work according to
the orange link and activates Out. The BB is
inactive. Back to 1.
31Example Chrono
On / Exit On Off / Exit Off
- also note can use trace mode to display a
parameter value (such as elapsed time)
32Activate/Deactivate Building Blocks
Some building blocks, once you activate their On,
the BB stays active until they are explicitly
turned off by activated their Off Examples
Switch On Key BB Chrono BB (above).
33On/Off Details
- BB is inactive.
- The user presses the 1 key. On is activated, the
BB performs an action and activates the Out On
output (violet link). The BB is now active and
will call itself every frame and perform an
action until the Off input is activated. - The user presses the 2 key. Off is activated, the
BB performs an action and activates the Out Off
output (pink link). The BB is now inactive. Go
back to 1.