@@ -115,7 +115,7 @@ THREE.VREffect = function ( renderer, onError ) {
115115
116116 var sceneL , sceneR ;
117117
118- if ( scene instanceof Array ) {
118+ if ( Array . isArray ( scene ) ) {
119119
120120 sceneL = scene [ 0 ] ;
121121 sceneR = scene [ 1 ] ;
@@ -162,7 +162,7 @@ THREE.VREffect = function ( renderer, onError ) {
162162
163163 // Regular render mode if not HMD
164164
165- if ( scene instanceof Array ) scene = scene [ 0 ] ;
165+ if ( Array . isArray ( scene ) ) scene = scene [ 0 ] ;
166166
167167 renderer . render ( scene , camera ) ;
168168
@@ -172,10 +172,10 @@ THREE.VREffect = function ( renderer, onError ) {
172172
173173 function fovToNDCScaleOffset ( fov ) {
174174
175- var pxscale = 2.0 / ( fov . leftTan + fov . rightTan ) ;
176- var pxoffset = ( fov . leftTan - fov . rightTan ) * pxscale * 0.5 ;
177- var pyscale = 2.0 / ( fov . upTan + fov . downTan ) ;
178- var pyoffset = ( fov . upTan - fov . downTan ) * pyscale * 0.5 ;
175+ var pxscale = 2.0 / ( fov . leftTan + fov . rightTan ) ;
176+ var pxoffset = ( fov . leftTan - fov . rightTan ) * pxscale * 0.5 ;
177+ var pyscale = 2.0 / ( fov . upTan + fov . downTan ) ;
178+ var pyoffset = ( fov . upTan - fov . downTan ) * pyscale * 0.5 ;
179179 return { scale : [ pxscale , pyscale ] , offset : [ pxoffset , pyoffset ] } ;
180180
181181 }
@@ -186,44 +186,45 @@ THREE.VREffect = function ( renderer, onError ) {
186186 zNear = zNear === undefined ? 0.01 : zNear ;
187187 zFar = zFar === undefined ? 10000.0 : zFar ;
188188
189- var handednessScale = rightHanded ? - 1.0 : 1.0 ;
189+ var handednessScale = rightHanded ? - 1.0 : 1.0 ;
190190
191191 // start with an identity matrix
192192 var mobj = new THREE . Matrix4 ( ) ;
193193 var m = mobj . elements ;
194194
195195 // and with scale/offset info for normalized device coords
196- var scaleAndOffset = fovToNDCScaleOffset ( fov ) ;
196+ var scaleAndOffset = fovToNDCScaleOffset ( fov ) ;
197197
198198 // X result, map clip edges to [-w,+w]
199- m [ 0 * 4 + 0 ] = scaleAndOffset . scale [ 0 ] ;
200- m [ 0 * 4 + 1 ] = 0.0 ;
201- m [ 0 * 4 + 2 ] = scaleAndOffset . offset [ 0 ] * handednessScale ;
202- m [ 0 * 4 + 3 ] = 0.0 ;
199+ m [ 0 * 4 + 0 ] = scaleAndOffset . scale [ 0 ] ;
200+ m [ 0 * 4 + 1 ] = 0.0 ;
201+ m [ 0 * 4 + 2 ] = scaleAndOffset . offset [ 0 ] * handednessScale ;
202+ m [ 0 * 4 + 3 ] = 0.0 ;
203203
204204 // Y result, map clip edges to [-w,+w]
205205 // Y offset is negated because this proj matrix transforms from world coords with Y=up,
206206 // but the NDC scaling has Y=down (thanks D3D?)
207- m [ 1 * 4 + 0 ] = 0.0 ;
208- m [ 1 * 4 + 1 ] = scaleAndOffset . scale [ 1 ] ;
209- m [ 1 * 4 + 2 ] = - scaleAndOffset . offset [ 1 ] * handednessScale ;
210- m [ 1 * 4 + 3 ] = 0.0 ;
207+ m [ 1 * 4 + 0 ] = 0.0 ;
208+ m [ 1 * 4 + 1 ] = scaleAndOffset . scale [ 1 ] ;
209+ m [ 1 * 4 + 2 ] = - scaleAndOffset . offset [ 1 ] * handednessScale ;
210+ m [ 1 * 4 + 3 ] = 0.0 ;
211211
212212 // Z result (up to the app)
213- m [ 2 * 4 + 0 ] = 0.0 ;
214- m [ 2 * 4 + 1 ] = 0.0 ;
215- m [ 2 * 4 + 2 ] = zFar / ( zNear - zFar ) * - handednessScale ;
216- m [ 2 * 4 + 3 ] = ( zFar * zNear ) / ( zNear - zFar ) ;
213+ m [ 2 * 4 + 0 ] = 0.0 ;
214+ m [ 2 * 4 + 1 ] = 0.0 ;
215+ m [ 2 * 4 + 2 ] = zFar / ( zNear - zFar ) * - handednessScale ;
216+ m [ 2 * 4 + 3 ] = ( zFar * zNear ) / ( zNear - zFar ) ;
217217
218218 // W result (= Z in)
219- m [ 3 * 4 + 0 ] = 0.0 ;
220- m [ 3 * 4 + 1 ] = 0.0 ;
221- m [ 3 * 4 + 2 ] = handednessScale ;
222- m [ 3 * 4 + 3 ] = 0.0 ;
219+ m [ 3 * 4 + 0 ] = 0.0 ;
220+ m [ 3 * 4 + 1 ] = 0.0 ;
221+ m [ 3 * 4 + 2 ] = handednessScale ;
222+ m [ 3 * 4 + 3 ] = 0.0 ;
223223
224224 mobj . transpose ( ) ;
225225
226226 return mobj ;
227+
227228 }
228229
229230 function fovToProjection ( fov , rightHanded , zNear , zFar ) {
0 commit comments