Page History
This page provides information for how best to render using V-Ray RT GPU for use with VR headsets like the Oculus Rift or HTC Vive.
Overview
...
Section | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
V-Ray
...
GPU Output to Headset Setup
...
1. Confirm headset display is installed properly.
...
2. Check that the headset is working and displays its home scene correctly.
V-Ray Production Render Settings
Fancy Bullets | ||
---|---|---|
| ||
|
V-Ray
...
GPU IPR Settings
Fancy Bullets | ||
---|---|---|
| ||
|
3. Start ActiveShade V-Ray GPU IPR render. The first render will start slowly since it takes some time to load the Oculus VR library.
MAXScript Reference
...
The information in this section will help explain how to use MAXScript to navigate around the VR environment with a game controller. Below is a download link to a sample MAXScript that sets the buttons and analog sticks in a general configuration to get you up and running. For more details,please see comments in the top section of the script file.
Access to VR controllers state
Access to VR controllers state is available in ActiveShade mode. Currently, the controller state is only accessible during Oculus Rift preview sessions (Stereo mode = Oculus rift).
You can refer to the current renderer and check to see if it supports VR controller interfaces from MAXScript:
Code Block |
---|
renderers.current V_Ray_GPU_Next:V_Ray_GPU_Next ivraygpu=getinterface renderers.current "vrayrtmax_interface" <MixinInterface:vrayrtmax_interface> |
VR controller interfaces
Assuming that variables ivrayrt and rt are initialized as stated above, you can list the VR controllers related interface properties:
...
Code Block |
---|
showinterface renderers.current.vrControllerLTouch Interface: VRController_LTouch Properties: .connected : boolean : Read .timeInSeconds : double : Read .indexTriggers : float by value array : Read .gripButtons : float by value array : Read .thumbSticks : point2 by value array : Read .buttonA : boolean : Read .buttonB : boolean : Read .buttonRThumb : boolean : Read .buttonRShoulder : boolean : Read .buttonX : boolean : Read .buttonY : boolean : Read .buttonLThumb : boolean : Read .buttonLShoulder : boolean : Read .buttonUp : boolean : Read .buttonDown : boolean : Read .buttonLeft : boolean : Read .buttonRight : boolean : Read .buttonEnter : boolean : Read .buttonBack : boolean : Read .buttonVolUp : boolean : Read .buttonVolDown : boolean : Read .buttonHome : boolean : Read .touchA : boolean : Read .touchB : boolean : Read .touchRThumb : boolean : Read .touchRThumbRest : boolean : Read .touchRIndexTrigger : boolean : Read .touchX : boolean : Read .touchY : boolean : Read .touchLThumb : boolean : Read .touchLThumbRest : boolean : Read .touchLIndexTrigger : boolean : Read .touchRIndexPointing : boolean : Read .touchRThumbUp : boolean : Read .touchLIndexPointing : boolean : Read .touchLThumbUp : boolean : Read Methods: <void>setNotifyCallback <string>callback <float>threshold Actions: OK |
VR controller interface details
Property | Description |
---|---|
connected | True if the corresponding controller is connected; otherwise false. |
timeInSeconds | System time of last controller state update. |
indexTriggers[1] indexTriggers[2] | Left and right finger trigger positions, in the range of 0.0 to 1.0. |
gripButtons[1] | Left and right grip button positions, in the range of 0.0 to 1.0. |
thumbSticks[1] | Left and right thumb stick position coordinates in the range of -1.0 to 1.0, as point2 values. |
buttons, touches | Boolean properties that represent the state of various buttons and sensors on the controller. |
setNotifyCallback <callback> <threshold> | Sets notification MAXScript that will be executed whenever controller state changes. |
setNotifyCallback Sample Use
Sets notification callback which outputs left index trigger position of the XBox controller whenever its state changes:
...
Code Block |
---|
iXBox= renderers.current.vrControllerXBox iRemote= renderers.current.vrControllerRemote fn myNotifyCallbackWithParam controller_interface = ( format "controller % button UP state %\n" controller_interface controller_interface.buttonUP ) iXBox.setNotifyCallback "myNotifyCallbackWithParam iXBox" 0.1 iRemote.setNotifyCallback "myNotifyCallbackWithParam iRemote" 0.1 |
Scripting Focus
Focus method in VRay RT GPU is settable using MAXScript:
...
0 - parallel
1 - rotation
2 - shear transform
...
Notes
...
Fancy Bullets | ||
---|---|---|
| ||
|