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