WorldViz User Forum

WorldViz User Forum (https://forum.worldviz.com/index.php)
-   Vizard (https://forum.worldviz.com/forumdisplay.php?f=17)
-   -   Displaying a Subwindow in Oculus Rift (https://forum.worldviz.com/showthread.php?t=5801)

DoeVenture 07-29-2016 06:15 AM

Displaying a Subwindow in Oculus Rift
 
Hi everybody,
I'm trying to display a subwindow in the Oculus Rift DK2, and at my old setup it worked ok (I updated vizard and the oculus runtime) but now I can't display it any longer and I'm not sure how to fix it.
Since I want to display a different viewPoint, which will also be updated during the experiment using a gui and displaying a screenshot is not really a solution for me. Any suggestions?

Thanks a lot!

Jeff 07-30-2016 04:30 AM

It's not possible to render sub-windows on the Oculus with recent versions of Vizard. The following is from the Vizard docs:

Quote:

The Oculus SDK is provided the rendered image of the world and automatically performs the distortion correction before displaying the image in the HMD. All other rendering performed after the world (i.e. screen objects and sub windows) will not appear in the HMD. You can use GUI canvas nodes to display UI to the user with proper distortion correction applied. See the Oculus example script for sample code.
You could try using a render node to display a different view on a quad rendered in the world. The renderNodeSimple.py example script (File > Quick Open: type 'renderNodeSimple') shows how to use a render node. The node.setReferenceFrame method with the viz.RF_VIEW flag can be used to fix the quad to the screen.

DoeVenture 08-01-2016 01:11 AM

Hi Jeff, thanks! I will give it a go.
Cheers

Jeff 08-01-2016 09:44 PM

Take a look at the following example. This is a modified version of renderNodeSimple.py with a render node texture on a quad fixed to the screen:

Code:

"""
This script demonstrates how to use render nodes to create a virtual video camera.
Press spacebar to toggle the camera between panning and following the avatar.
Use the mouse and WASD keys to navigate around the room.
"""
import viz
import vizact
import vizcam

viz.fov(60)
viz.go()

import vizinfo
vizinfo.InfoPanel(align=viz.ALIGN_LEFT_BOTTOM)

# Use keyboard/mouse camera
cam = vizcam.WalkNavigate()
viz.cam.setHandler(cam)

# Add environment
model = viz.add('pit.osgb')

# Create render texture for camera video feed
video = viz.addRenderTexture()

# Create render node for camera
cam = viz.addRenderNode(size=(1280,720))

# Do not inherit view/projection settings from main window
cam.setInheritView(False)

# Set FOV for video camera
cam.setFov(60.0,1280/720.0,0.1,1000.0)

# Render to video feed texture
cam.setRenderTexture(video)

# Only render once per frame, in case stereo is enabled
cam.setRenderLimit(viz.RENDER_LIMIT_FRAME)

quad = viz.addTexQuad(pos=[1,0.6,2])
quad.setReferenceFrame(viz.RF_VIEW)
quad.texture(video)
quad.drawOrder(100)
quad.disable(viz.DEPTH_TEST)
quad.renderToAllRenderNodesExcept([cam])

# Don't render to texture if screen isn't visible (optimization)
cam.renderOnlyIfNodeVisible([quad])

# Add avatar walking around in circles
avatar = viz.addAvatar('vcc_male2.cfg')
WalkSequence = vizact.sequence(
        vizact.walkTo((0,0,5))
        ,vizact.walkTo((5,0,0))
        ,vizact.walkTo((0,0,-5))
        ,vizact.walkTo((-5,0,0))
        ,viz.FOREVER
)
avatar.runAction(WalkSequence)

# Create attachment point for panning camera
pan_camera = viz.addGroup()
PanEulers = (100,45,0), (170,45,0)
pan_camera.setPosition([-10.94835, 11.09378, 13.61334])
pan_camera.setEuler(PanEulers[0])
PanAction = vizact.sequence(
        vizact.spinTo(euler=PanEulers[1],speed=5)
        ,vizact.spinTo(euler=PanEulers[0],speed=5)
        ,viz.FOREVER
)
pan_camera.runAction(PanAction)

# Create attachment point for following avatar
avatar_camera = viz.link(avatar,viz.NullLinkable)
avatar_camera.preTrans([0,2,-2])
avatar_camera.preEuler([0,10,0])

# Toggle between attachment points with spacebar
camera_link = viz.link(pan_camera,cam)
vizact.onkeydown(' ',camera_link.setSrc,vizact.choice([avatar_camera,pan_camera]))


DoeVenture 08-02-2016 05:57 AM

Thanks! That solved all my problems!
cheers!


All times are GMT -7. The time now is 12:18 AM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2021, vBulletin Solutions, Inc.
Copyright 2002-2018 WorldViz LLC