12
12
THREE . VREffect = function ( renderer , onError ) {
13
13
14
14
var vrHMD ;
15
- var eyeTranslationL , eyeFOVL ;
16
- var eyeTranslationR , eyeFOVR ;
15
+ var eyeTranslationL , eyeFOVL , renderRectL ;
16
+ var eyeTranslationR , eyeFOVR , renderRectR ;
17
17
18
18
function gotVRDevices ( devices ) {
19
19
@@ -102,6 +102,8 @@ THREE.VREffect = function ( renderer, onError ) {
102
102
eyeTranslationR = eyeParamsR . eyeTranslation ;
103
103
eyeFOVL = eyeParamsL . recommendedFieldOfView ;
104
104
eyeFOVR = eyeParamsR . recommendedFieldOfView ;
105
+ renderRectL = eyeParamsL . renderRect ;
106
+ renderRectR = eyeParamsR . renderRect ;
105
107
106
108
if ( Array . isArray ( scene ) ) {
107
109
@@ -127,13 +129,24 @@ THREE.VREffect = function ( renderer, onError ) {
127
129
cameraR . translateX ( eyeTranslationR . x * this . scale ) ;
128
130
129
131
// render left eye
130
- renderer . setViewport ( 0 , 0 , size . width / 2 , size . height ) ;
131
- renderer . setScissor ( 0 , 0 , size . width / 2 , size . height ) ;
132
+ if ( renderRectL === undefined ) {
133
+
134
+ renderRectL = { x : 0 , y : 0 , width : size . width / 2 , height : size . height } ;
135
+
136
+ }
137
+ renderer . setViewport ( renderRectL . x , renderRectL . y , renderRectL . width , renderRectL . height ) ;
138
+ renderer . setScissor ( renderRectL . x , renderRectL . y , renderRectL . width , renderRectL . height ) ;
132
139
renderer . render ( scene , cameraL ) ;
133
140
134
141
// render right eye
135
- renderer . setViewport ( size . width / 2 , 0 , size . width / 2 , size . height ) ;
136
- renderer . setScissor ( size . width / 2 , 0 , size . width / 2 , size . height ) ;
142
+ if ( renderRectR === undefined ) {
143
+
144
+ renderRectR = { x : size . width / 2 , y : 0 , width : size . width / 2 , height : size . height } ;
145
+
146
+ }
147
+
148
+ renderer . setViewport ( renderRectR . x , renderRectR . y , renderRectR . width , renderRectR . height ) ;
149
+ renderer . setScissor ( renderRectR . x , renderRectR . y , renderRectR . width , renderRectR . height ) ;
137
150
renderer . render ( scene , cameraR ) ;
138
151
139
152
renderer . setScissorTest ( false ) ;
0 commit comments