![]() |
|
#1
|
|||
|
|||
|
problem with stereo mode
Hi again,
I'm having a problem getting into stereo mode. I have two demo's. The first demo runs just fine. The second demo involves manipulating the camera's location with a game pad. However, whenever I try to use viz.QUAD_BUFFER, I don't get stereo mode. Here is my code: Code:
##Name :George D. Lecakes Jr
##Created : October 11, 2006
##Modified : October 11, 2006
##Descr : This program creates a viewport that centers around
## the translational properties of an object similar
## to that of a video game.
####################################################################
import viz
##############################################
##Game Pad Library Information
##############################################
import sid
viz.go(viz.QUAD_BUFFER)
viz.viewdist(-5)
##############################################
#Global Variables
##############################################
##Height from Interest
H = 0
##X from Interest
R = 0
##Z from Interest
I = 0
##############################################
##Reference Plane
##############################################
envio = viz.add('coords.obj')
envio.translate(0,-3,0)
##############################################
#Model of Interest
##############################################
modelOfInterest = viz.add('templateModel.obj')
##############################################
##Create a new viewpoint
##############################################
objectTracker = viz.add(viz.VIEWPOINT)
###############################################
##Get and set the main window to the viewpoint
###############################################
mainWindow = viz.get(viz.MAIN_WINDOW)
mainWindow.viewpoint(objectTracker)
###############################################
##Initialize Elements
###############################################
######################
##Object Of Interest
######################
interestx = 0
interesty = 0
interestz = 0
modelOfInterest.translate(interestx,interesty,interestz)
######################
##Viewpoint
######################
viewCoordx = 0
viewCoordy = 10
viewCoordz = 20
objectTracker.translate(viewCoordx,viewCoordy,viewCoordz)
###############################################
#Function Declarations
###############################################
def georgesTimer(timerNum):
## Get the translation information of the desired object
#interest = modelOfInterest.get(viz.POSITION)
## Get the translation information of the viewpoint
#viewCoords = objectTracker.get(viz.POSITION)
## See which gamepad button has been pressed
global H
global R
global I
global upCheck
global interestx
global interesty
global interestz
global viewCoordx
global viewCoordy
global viewCoordz
upCheck = 0
## Up
if sid.isbuttondown(7):
diff = viewCoordy - interesty
## If view is above interest
if diff > 0:
H = (H + .1)
viewCoordy = (interesty + H)
## If View is below interet
if diff < 0:
H = (H + .1)
viewCoordy = (interesty + H)
## If View is equal to interest
if diff == 0:
viewCoordy = 0
H = (H + .1)
viewCoordy = (interesty + H)
## Down
if sid.isbuttondown(8):
diff = viewCoordy - interesty
## If view is above interest
if diff > 0:
H = (H - .1)
viewCoordy = (interesty + H)
## If View is below interest
if diff < 0:
H = (H - .1)
viewCoordy = (interesty - abs(H))
## If View is equal to interest
if diff == 0:
viewCoordy = 0
H = (H - .1)
viewCoordy = (interesty + H)
##Forward
if sid.isbuttondown(3):
diff = viewCoordx - interestx
## If view is above interest
if diff > 0:
R = (R + .1)
viewCoordx = (interestx + R)
## If View is below interet
if diff < 0:
R = (R + .1)
viewCoordx = (interestx + R)
## If View is equal to interest
if diff == 0:
viewCoordx = 0
R = (R + .1)
viewCoordx = (interestx + R)
##Backward
if sid.isbuttondown(2):
diff = viewCoordx - interestx
## If view is above interest
if diff > 0:
R = (R - .1)
viewCoordx = (interestx + R)
## If View is below interest
if diff < 0:
R = (R - .1)
viewCoordx = (interestx - abs(R))
## If View is equal to interest
if diff == 0:
viewCoordx = 0
R = (R - .1)
viewCoordx = (interestx + R)
##Left
if sid.isbuttondown(1):
diff = viewCoordz - interestz
## If view is above interest
if diff > 0:
I = (I + .1)
viewCoordz = (interestz + I)
## If View is below interet
if diff < 0:
I = (I + .1)
viewCoordz = (interestz + I)
## If View is equal to interest
if diff == 0:
viewCoordz = 0
I = (I + .1)
viewCoordz = (interestz + I)
##Right
if sid.isbuttondown(4):
diff = viewCoordz - interestz
## If view is above interest
if diff > 0:
I = (I - .1)
viewCoordz = (interestz + I)
## If View is below interest
if diff < 0:
I = (I - .1)
viewCoordz = (interestz - abs(I))
## If View is equal to interest
if diff == 0:
viewCoordz = 0
I = (I - .1)
viewCoordz = (interestz + I)
objectTracker.translate(viewCoordx,viewCoordy,viewCoordz)
objectTracker.lookat(modelOfInterest.get(viz.POSITION))
print viewCoordx
###############################################
##CallBack to Functions
###############################################
viz.callback(viz.TIMER_EVENT, georgesTimer)
viz.starttimer(0,0, viz.PERPETUAL)
|
|
#2
|
|||
|
|||
|
Are you able to get QUAD_BUFFER working with other scripts? QUAD_BUFFER stereo mode only works with specific graphics cards, like the nVidia Quadro. Do you have a capable graphics card?
|
|
#3
|
|||
|
|||
|
Yes, we are able to get it working with ANY other script we have. As long as we don't start messing with the camera's coordinates directly through scripting things are fine.
But in the code I supplied as well as another camera rig I developed, it will not enter stereo mode. We are were unable to force the 'planets' demo into stereo mode and we were wondering if there might be a similar problem there as well. ~~George Rowan University VR Laboratory |
|
#4
|
|||
|
|||
|
Hi,
I tested out your script with Vizard 2.5 and experienced the same problem you described. I tried it out with Vizard 3.0 and it works fine. The problem is not caused by manipulating the viewpoint, but by adding a new viewpoint to the main window. In your script the workaround would be to replace the following code: Code:
############################################## ##Create a new viewpoint ############################################## objectTracker = viz.add(viz.VIEWPOINT) ############################################### ##Get and set the main window to the viewpoint ############################################### mainWindow = viz.get(viz.MAIN_WINDOW) mainWindow.viewpoint(objectTracker) Code:
############################################## ##Get the main viewpoint ############################################## objectTracker = viz.get(viz.MAIN_VIEWPOINT) ############################################### ##Get the main window ############################################### mainWindow = viz.get(viz.MAIN_WINDOW) |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|