View Single Post
  #12  
Old 05-29-2012, 09:59 AM
vrmdl vrmdl is offline
Member
 
Join Date: Mar 2012
Posts: 14
Quote:
Originally Posted by farshizzo View Post
Are you sure the dimensions of the wall you are specifying in your script match the physical dimensions of the projected image? Also, the physical coordinates of the wall must be in the same coordinate frame as the tracker you are using to track the users head position.
I am sure the dimensions of the wall is correct. I am not currently using any physical tracking system. The cave center is assumed to the origin of the coordinate system.

I suspect if the left and right eye image of the bottom screen are swapped while it is not for the front screen. How do I swap images for a particular screen. Is this possible in vizard?

The complete code is listed below.
*****************
import viz
import vizcave
import viztracker

# Declare constants defining the CAVE dimensions
W = 3.410 # 10 feet wide
H = 2.140 #7.5 feet tall
D = 2.200 # 7.5 feet deep

C0 = -W/2,H/2,-D/2 # Front Wall: C1,C2,C5,C6
C1 = -W/2,H/2,D/2 # Left Wall: C0,C1,C4,C5
C2 = W/2,H/2,D/2 # Right Wall: C2,C3,C6,C7
C3 = W/2,H/2,-D/2 # Bottom Wall: C5,C6,C4,C7
C4 = -W/2,-H/2,-D/2
C5 = -W/2,-H/2,D/2
C6 = W/2,-H/2,D/2
C7 = W/2,-H/2,-D/2

#Create front wall
FrontWall = vizcave.Wall( upperLeft=C1, # 0, 2.286, 3.048
upperRight=C2, # 3.048, 2.286, 3.048
lowerLeft=C5, # 0, 0, 3.048
lowerRight=C6, # 3.048, 0, 3.048
name='Front Wall' )

#Create left wall
LeftWall = vizcave.Wall( upperLeft=C0,
upperRight=C1,
lowerLeft=C4,
lowerRight=C5,
name='Left Wall' )

#Create right wall
RightWall = vizcave.Wall( upperLeft=C2,
upperRight=C3,
lowerLeft=C6,
lowerRight=C7,
name='Right Wall' )

#Create bottom wall
BottomWall = vizcave.Wall( upperLeft=C5,
upperRight=C6,
lowerLeft=C4,
lowerRight=C7,
name='Bottom Wall' )

#Initialize graphics window
viz.go(viz.FULLSCREEN)
#viz.go(viz.FULLSCREEN|viz.QUAD_BUFFER)

#Create cave object
cave = vizcave.Cave()

frontWindow=viz.MainWindow
frontWindow.setSize(1,.5)
frontWindow.setPosition([0,1])
cave.addWall(FrontWall, window = frontWindow)

bottomWindow = viz.addWindow()
bottomWindow.setSize(1,.5)
bottomWindow.setPosition([0,0.5])
cave.addWall(BottomWall, window = bottomWindow)

#Create tracker object using the keyboard (WASD keys control the viewpoint, the user's eye location)
#Make the starting location for the user's eye above origin
viewtracker = viztracker.KeyboardPos()
viewtracker.setPosition(0.0,0.0,0.0)

#Pass the viewpoint tracker into the cave object so it can be automatically updated
cave.setTracker(pos=viewtracker)

#Create CaveView object for manipulating the entire cave environment
#The caveorigin is a node that can be adjusted to move the entire cave around the virtual environment
caveorigin = vizcave.CaveView(viewtracker)

#Create another tracker using the keyboard and mouse (arrow keys adjust position, mouse changes orientation)
origintracker = viztracker.KeyboardMouse6DOF()
origintracker.setPosition(0,1.5,0)

#Link the keyboard/mouse so that it moves the cave and user around the virtual environment
originlink = viz.link (origintracker, caveorigin)

#Add gallery environment model
viz.add('gallery.osgb')
Reply With Quote