瀏覽代碼

WebGLRenderer: Removed multiview code.

Mr.doob 5 年之前
父節點
當前提交
72f0dceabf

+ 0 - 1
docs/manual/en/introduction/How-to-create-VR-content.html

@@ -69,7 +69,6 @@ renderer.setAnimationLoop( function () {
 		[example:webxr_vr_cubes WebXR / VR / cubes]<br />
 		[example:webxr_vr_cubes WebXR / VR / cubes]<br />
 		[example:webxr_vr_dragging WebXR / VR / dragging]<br />
 		[example:webxr_vr_dragging WebXR / VR / dragging]<br />
 		[example:webxr_vr_lorenzattractor WebXR / VR / lorenzattractor]<br />
 		[example:webxr_vr_lorenzattractor WebXR / VR / lorenzattractor]<br />
-		[example:webxr_vr_multiview WebXR / VR / multiview]<br />
 		[example:webxr_vr_paint WebXR / VR / paint]<br />
 		[example:webxr_vr_paint WebXR / VR / paint]<br />
 		[example:webxr_vr_panorama_depth WebXR / VR / panorama_depth]<br />
 		[example:webxr_vr_panorama_depth WebXR / VR / panorama_depth]<br />
 		[example:webxr_vr_panorama WebXR / VR / panorama]<br />
 		[example:webxr_vr_panorama WebXR / VR / panorama]<br />

+ 0 - 1
docs/manual/zh/introduction/How-to-create-VR-content.html

@@ -69,7 +69,6 @@ renderer.setAnimationLoop( function () {
 		[example:webxr_vr_cubes WebXR / VR / cubes]<br />
 		[example:webxr_vr_cubes WebXR / VR / cubes]<br />
 		[example:webxr_vr_dragging WebXR / VR / dragging]<br />
 		[example:webxr_vr_dragging WebXR / VR / dragging]<br />
 		[example:webxr_vr_lorenzattractor WebXR / VR / lorenzattractor]<br />
 		[example:webxr_vr_lorenzattractor WebXR / VR / lorenzattractor]<br />
-		[example:webxr_vr_multiview WebXR / VR / multiview]<br />
 		[example:webxr_vr_paint WebXR / VR / paint]<br />
 		[example:webxr_vr_paint WebXR / VR / paint]<br />
 		[example:webxr_vr_panorama_depth WebXR / VR / panorama_depth]<br />
 		[example:webxr_vr_panorama_depth WebXR / VR / panorama_depth]<br />
 		[example:webxr_vr_panorama WebXR / VR / panorama]<br />
 		[example:webxr_vr_panorama WebXR / VR / panorama]<br />

+ 0 - 1
examples/files.js

@@ -329,7 +329,6 @@ var files = {
 		"webxr_vr_cubes",
 		"webxr_vr_cubes",
 		"webxr_vr_dragging",
 		"webxr_vr_dragging",
 		"webxr_vr_lorenzattractor",
 		"webxr_vr_lorenzattractor",
-		"webxr_vr_multiview",
 		"webxr_vr_panorama",
 		"webxr_vr_panorama",
 		"webxr_vr_panorama_depth",
 		"webxr_vr_panorama_depth",
 		"webxr_vr_paint",
 		"webxr_vr_paint",

+ 0 - 18
src/renderers/WebGLMultiviewRenderTarget.d.ts

@@ -1,18 +0,0 @@
-import {
-	WebGLRenderTarget,
-	WebGLRenderTargetOptions,
-} from './WebGLRenderTarget';
-
-export class WebGLMultiviewRenderTarget extends WebGLRenderTarget {
-
-	constructor(
-		width: number,
-		height: number,
-		numViews: number,
-		options?: WebGLRenderTargetOptions
-	);
-
-	readonly isWebGLMultiviewRenderTarget: true;
-	setNumViews( numViews: number ): this;
-
-}

+ 0 - 50
src/renderers/WebGLMultiviewRenderTarget.js

@@ -1,50 +0,0 @@
-/**
- * @author fernandojsg / http://fernandojsg.com
- * @author Takahiro https://github.com/takahirox
- */
-
-import { WebGLRenderTarget } from './WebGLRenderTarget.js';
-
-function WebGLMultiviewRenderTarget( width, height, numViews, options ) {
-
-	WebGLRenderTarget.call( this, width, height, options );
-
-	this.depthBuffer = false;
-	this.stencilBuffer = false;
-
-	this.numViews = numViews;
-
-}
-
-WebGLMultiviewRenderTarget.prototype = Object.assign( Object.create( WebGLRenderTarget.prototype ), {
-
-	constructor: WebGLMultiviewRenderTarget,
-
-	isWebGLMultiviewRenderTarget: true,
-
-	copy: function ( source ) {
-
-		WebGLRenderTarget.prototype.copy.call( this, source );
-
-		this.numViews = source.numViews;
-
-		return this;
-
-	},
-
-	setNumViews: function ( numViews ) {
-
-		if ( this.numViews !== numViews ) {
-
-			this.numViews = numViews;
-			this.dispose();
-
-		}
-
-		return this;
-
-	}
-
-} );
-
-export { WebGLMultiviewRenderTarget };

+ 11 - 65
src/renderers/WebGLRenderer.js

@@ -45,7 +45,6 @@ import { WebGLState } from './webgl/WebGLState.js';
 import { WebGLTextures } from './webgl/WebGLTextures.js';
 import { WebGLTextures } from './webgl/WebGLTextures.js';
 import { WebGLUniforms } from './webgl/WebGLUniforms.js';
 import { WebGLUniforms } from './webgl/WebGLUniforms.js';
 import { WebGLUtils } from './webgl/WebGLUtils.js';
 import { WebGLUtils } from './webgl/WebGLUtils.js';
-import { WebGLMultiview } from './webgl/WebGLMultiview.js';
 import { WebXRManager } from './webxr/WebXRManager.js';
 import { WebXRManager } from './webxr/WebXRManager.js';
 
 
 function WebGLRenderer( parameters ) {
 function WebGLRenderer( parameters ) {
@@ -310,10 +309,6 @@ function WebGLRenderer( parameters ) {
 
 
 	this.xr = xr;
 	this.xr = xr;
 
 
-	// Multiview
-
-	var multiview = new WebGLMultiview( _this, _gl );
-
 	// shadow map
 	// shadow map
 
 
 	var shadowMap = new WebGLShadowMap( _this, objects, capabilities.maxTextureSize );
 	var shadowMap = new WebGLShadowMap( _this, objects, capabilities.maxTextureSize );
@@ -1211,12 +1206,6 @@ function WebGLRenderer( parameters ) {
 
 
 		}
 		}
 
 
-		if ( xr.enabled && multiview.isAvailable() ) {
-
-			multiview.attachCamera( camera );
-
-		}
-
 		//
 		//
 
 
 		background.render( currentRenderList, scene, camera, forceClear );
 		background.render( currentRenderList, scene, camera, forceClear );
@@ -1271,16 +1260,6 @@ function WebGLRenderer( parameters ) {
 
 
 		state.setPolygonOffset( false );
 		state.setPolygonOffset( false );
 
 
-		if ( xr.enabled ) {
-
-			if ( multiview.isAvailable() ) {
-
-				multiview.detachCamera( camera );
-
-			}
-
-		}
-
 		// _gl.finish();
 		// _gl.finish();
 
 
 		currentRenderList = null;
 		currentRenderList = null;
@@ -1428,27 +1407,19 @@ function WebGLRenderer( parameters ) {
 
 
 				_currentArrayCamera = camera;
 				_currentArrayCamera = camera;
 
 
-				if ( xr.enabled && multiview.isAvailable() ) {
+				var cameras = camera.cameras;
 
 
-					renderObject( object, scene, camera, geometry, material, group );
-
-				} else {
+				for ( var j = 0, jl = cameras.length; j < jl; j ++ ) {
 
 
-					var cameras = camera.cameras;
+					var camera2 = cameras[ j ];
 
 
-					for ( var j = 0, jl = cameras.length; j < jl; j ++ ) {
+					if ( object.layers.test( camera2.layers ) ) {
 
 
-						var camera2 = cameras[ j ];
+						state.viewport( _currentViewport.copy( camera2.viewport ) );
 
 
-						if ( object.layers.test( camera2.layers ) ) {
+						currentRenderState.setupLights( camera2 );
 
 
-							state.viewport( _currentViewport.copy( camera2.viewport ) );
-
-							currentRenderState.setupLights( camera2 );
-
-							renderObject( object, scene, camera2, geometry, material, group );
-
-						}
+						renderObject( object, scene, camera2, geometry, material, group );
 
 
 					}
 					}
 
 
@@ -1730,15 +1701,7 @@ function WebGLRenderer( parameters ) {
 
 
 		if ( refreshProgram || _currentCamera !== camera ) {
 		if ( refreshProgram || _currentCamera !== camera ) {
 
 
-			if ( program.numMultiviewViews > 0 ) {
-
-				multiview.updateCameraProjectionMatricesUniform( camera, p_uniforms );
-
-			} else {
-
-				p_uniforms.setValue( _gl, 'projectionMatrix', camera.projectionMatrix );
-
-			}
+			p_uniforms.setValue( _gl, 'projectionMatrix', camera.projectionMatrix );
 
 
 			if ( capabilities.logarithmicDepthBuffer ) {
 			if ( capabilities.logarithmicDepthBuffer ) {
 
 
@@ -1799,15 +1762,7 @@ function WebGLRenderer( parameters ) {
 				material.isShaderMaterial ||
 				material.isShaderMaterial ||
 				material.skinning ) {
 				material.skinning ) {
 
 
-				if ( program.numMultiviewViews > 0 ) {
-
-					multiview.updateCameraViewMatricesUniform( camera, p_uniforms );
-
-				} else {
-
-					p_uniforms.setValue( _gl, 'viewMatrix', camera.matrixWorldInverse );
-
-				}
+				p_uniforms.setValue( _gl, 'viewMatrix', camera.matrixWorldInverse );
 
 
 			}
 			}
 
 
@@ -2012,17 +1967,8 @@ function WebGLRenderer( parameters ) {
 
 
 		// common matrices
 		// common matrices
 
 
-		if ( program.numMultiviewViews > 0 ) {
-
-			multiview.updateObjectMatricesUniforms( object, camera, p_uniforms );
-
-		} else {
-
-			p_uniforms.setValue( _gl, 'modelViewMatrix', object.modelViewMatrix );
-			p_uniforms.setValue( _gl, 'normalMatrix', object.normalMatrix );
-
-		}
-
+		p_uniforms.setValue( _gl, 'modelViewMatrix', object.modelViewMatrix );
+		p_uniforms.setValue( _gl, 'normalMatrix', object.normalMatrix );
 		p_uniforms.setValue( _gl, 'modelMatrix', object.matrixWorld );
 		p_uniforms.setValue( _gl, 'modelMatrix', object.matrixWorld );
 
 
 		return program;
 		return program;

+ 0 - 17
src/renderers/webgl/WebGLMultiview.d.ts

@@ -1,17 +0,0 @@
-import { Camera } from './../../cameras/Camera';
-import { Object3D } from './../../core/Object3D';
-import { WebGLRenderer } from '../WebGLRenderer';
-import { WebGLUniforms } from './WebGLUniforms';
-
-export class WebGLMultiview {
-
-	constructor( renderer: WebGLRenderer, gl: WebGLRenderingContext );
-
-	isAvailable(): boolean;
-	attachCamera( camera: Camera ): void;
-	detachCamera( camera: Camera ): void;
-	updateCameraProjectionMatricesUniform( camera: Camera, uniforms: WebGLUniforms ): void;
-	updateCameraViewMatricesUniform( camera: Camera, uniforms: WebGLUniforms ): void;
-	updateObjectMatricesUniforms( object: Object3D, camera: Camera, uniforms: WebGLUniforms ): void;
-
-}

+ 0 - 224
src/renderers/webgl/WebGLMultiview.js

@@ -1,224 +0,0 @@
-/**
- * @author fernandojsg / http://fernandojsg.com
- * @author Takahiro https://github.com/takahirox
- */
-
-import { WebGLMultiviewRenderTarget } from '../WebGLMultiviewRenderTarget.js';
-import { Matrix3 } from '../../math/Matrix3.js';
-import { Matrix4 } from '../../math/Matrix4.js';
-import { Vector2 } from '../../math/Vector2.js';
-
-function WebGLMultiview( renderer, gl ) {
-
-	var DEFAULT_NUMVIEWS = 2;
-
-	var extensions = renderer.extensions;
-	var properties = renderer.properties;
-
-	var renderTarget, currentRenderTarget;
-	var mat3, mat4, cameraArray, renderSize;
-
-	var available;
-	var maxNumViews = 0;
-
-	//
-
-	function isAvailable() {
-
-		if ( available === undefined ) {
-
-			var extension = extensions.get( 'OVR_multiview2' );
-
-			available = extension !== null && gl.getContextAttributes().antialias === false;
-
-			if ( available ) {
-
-				maxNumViews = gl.getParameter( extension.MAX_VIEWS_OVR );
-				renderTarget = new WebGLMultiviewRenderTarget( 0, 0, DEFAULT_NUMVIEWS );
-
-				renderSize = new Vector2();
-				mat4 = [];
-				mat3 = [];
-				cameraArray = [];
-
-				for ( var i = 0; i < maxNumViews; i ++ ) {
-
-					mat4[ i ] = new Matrix4();
-					mat3[ i ] = new Matrix3();
-
-				}
-
-			}
-
-		}
-
-		return available;
-
-	}
-
-	function getCameraArray( camera ) {
-
-		if ( camera.isArrayCamera ) return camera.cameras;
-
-		cameraArray[ 0 ] = camera;
-
-		return cameraArray;
-
-	}
-
-	function updateCameraProjectionMatricesUniform( camera, uniforms ) {
-
-		var cameras = getCameraArray( camera );
-
-		for ( var i = 0; i < cameras.length; i ++ ) {
-
-			mat4[ i ].copy( cameras[ i ].projectionMatrix );
-
-		}
-
-		uniforms.setValue( gl, 'projectionMatrices', mat4 );
-
-	}
-
-	function updateCameraViewMatricesUniform( camera, uniforms ) {
-
-		var cameras = getCameraArray( camera );
-
-		for ( var i = 0; i < cameras.length; i ++ ) {
-
-			mat4[ i ].copy( cameras[ i ].matrixWorldInverse );
-
-		}
-
-		uniforms.setValue( gl, 'viewMatrices', mat4 );
-
-	}
-
-	function updateObjectMatricesUniforms( object, camera, uniforms ) {
-
-		var cameras = getCameraArray( camera );
-
-		for ( var i = 0; i < cameras.length; i ++ ) {
-
-			mat4[ i ].multiplyMatrices( cameras[ i ].matrixWorldInverse, object.matrixWorld );
-			mat3[ i ].getNormalMatrix( mat4[ i ] );
-
-		}
-
-		uniforms.setValue( gl, 'modelViewMatrices', mat4 );
-		uniforms.setValue( gl, 'normalMatrices', mat3 );
-
-	}
-
-	function isMultiviewCompatible( camera ) {
-
-		if ( camera.isArrayCamera === undefined ) return true;
-
-		var cameras = camera.cameras;
-
-		if ( cameras.length > maxNumViews ) return false;
-
-		for ( var i = 1, il = cameras.length; i < il; i ++ ) {
-
-			if ( cameras[ 0 ].viewport.z !== cameras[ i ].viewport.z ||
-				cameras[ 0 ].viewport.w !== cameras[ i ].viewport.w ) return false;
-
-		}
-
-		return true;
-
-	}
-
-	function resizeRenderTarget( camera ) {
-
-		if ( currentRenderTarget ) {
-
-			renderSize.set( currentRenderTarget.width, currentRenderTarget.height );
-
-		} else {
-
-			renderer.getDrawingBufferSize( renderSize );
-
-		}
-
-		if ( camera.isArrayCamera ) {
-
-			var viewport = camera.cameras[ 0 ].viewport;
-
-			renderTarget.setSize( viewport.z, viewport.w );
-			renderTarget.setNumViews( camera.cameras.length );
-
-		} else {
-
-			renderTarget.setSize( renderSize.x, renderSize.y );
-			renderTarget.setNumViews( DEFAULT_NUMVIEWS );
-
-		}
-
-	}
-
-	function attachCamera( camera ) {
-
-		if ( isMultiviewCompatible( camera ) === false ) return;
-
-		currentRenderTarget = renderer.getRenderTarget();
-		resizeRenderTarget( camera );
-		renderer.setRenderTarget( renderTarget );
-
-	}
-
-	function detachCamera( camera ) {
-
-		if ( renderTarget !== renderer.getRenderTarget() ) return;
-
-		renderer.setRenderTarget( currentRenderTarget );
-
-		flush( camera );
-
-	}
-
-	function flush( camera ) {
-
-		var srcRenderTarget = renderTarget;
-		var numViews = srcRenderTarget.numViews;
-
-		var srcFramebuffers = properties.get( srcRenderTarget ).__webglViewFramebuffers;
-
-		var viewWidth = srcRenderTarget.width;
-		var viewHeight = srcRenderTarget.height;
-
-		if ( camera.isArrayCamera ) {
-
-			for ( var i = 0; i < numViews; i ++ ) {
-
-				var viewport = camera.cameras[ i ].viewport;
-
-				var x1 = viewport.x;
-				var y1 = viewport.y;
-				var x2 = x1 + viewport.z;
-				var y2 = y1 + viewport.w;
-
-				gl.bindFramebuffer( gl.READ_FRAMEBUFFER, srcFramebuffers[ i ] );
-				gl.blitFramebuffer( 0, 0, viewWidth, viewHeight, x1, y1, x2, y2, gl.COLOR_BUFFER_BIT, gl.NEAREST );
-
-			}
-
-		} else {
-
-			gl.bindFramebuffer( gl.READ_FRAMEBUFFER, srcFramebuffers[ 0 ] );
-			gl.blitFramebuffer( 0, 0, viewWidth, viewHeight, 0, 0, renderSize.x, renderSize.y, gl.COLOR_BUFFER_BIT, gl.NEAREST );
-
-		}
-
-	}
-
-	this.isAvailable = isAvailable;
-	this.attachCamera = attachCamera;
-	this.detachCamera = detachCamera;
-	this.updateCameraProjectionMatricesUniform = updateCameraProjectionMatricesUniform;
-	this.updateCameraViewMatricesUniform = updateCameraViewMatricesUniform;
-	this.updateObjectMatricesUniforms = updateObjectMatricesUniforms;
-
-}
-
-export { WebGLMultiview };

+ 0 - 1
src/renderers/webgl/WebGLProgram.d.ts

@@ -17,7 +17,6 @@ export class WebGLProgram {
 	program: any;
 	program: any;
 	vertexShader: WebGLShader;
 	vertexShader: WebGLShader;
 	fragmentShader: WebGLShader;
 	fragmentShader: WebGLShader;
-	numMultiviewViews: number;
 	/**
 	/**
 	 * @deprecated Use {@link WebGLProgram#getUniforms getUniforms()} instead.
 	 * @deprecated Use {@link WebGLProgram#getUniforms getUniforms()} instead.
 	 */
 	 */

+ 0 - 56
src/renderers/webgl/WebGLProgram.js

@@ -399,8 +399,6 @@ function WebGLProgram( renderer, cacheKey, parameters ) {
 
 
 	var prefixVertex, prefixFragment;
 	var prefixVertex, prefixFragment;
 
 
-	var numMultiviewViews = parameters.numMultiviewViews;
-
 	if ( parameters.isRawShaderMaterial ) {
 	if ( parameters.isRawShaderMaterial ) {
 
 
 		prefixVertex = [
 		prefixVertex = [
@@ -698,59 +696,6 @@ function WebGLProgram( renderer, cacheKey, parameters ) {
 			'#define textureCubeGradEXT textureGrad'
 			'#define textureCubeGradEXT textureGrad'
 		].join( '\n' ) + '\n' + prefixFragment;
 		].join( '\n' ) + '\n' + prefixFragment;
 
 
-		// Multiview
-
-		if ( numMultiviewViews > 0 ) {
-
-			prefixVertex = prefixVertex.replace(
-				'#version 300 es\n',
-				[
-					'#version 300 es\n',
-					'#extension GL_OVR_multiview2 : require',
-					'layout(num_views = ' + numMultiviewViews + ') in;',
-					'#define VIEW_ID gl_ViewID_OVR'
-				].join( '\n' )
-			);
-
-			prefixVertex = prefixVertex.replace(
-				[
-					'uniform mat4 modelViewMatrix;',
-					'uniform mat4 projectionMatrix;',
-					'uniform mat4 viewMatrix;',
-					'uniform mat3 normalMatrix;'
-				].join( '\n' ),
-				[
-					'uniform mat4 modelViewMatrices[' + numMultiviewViews + '];',
-					'uniform mat4 projectionMatrices[' + numMultiviewViews + '];',
-					'uniform mat4 viewMatrices[' + numMultiviewViews + '];',
-					'uniform mat3 normalMatrices[' + numMultiviewViews + '];',
-
-					'#define modelViewMatrix modelViewMatrices[VIEW_ID]',
-					'#define projectionMatrix projectionMatrices[VIEW_ID]',
-					'#define viewMatrix viewMatrices[VIEW_ID]',
-					'#define normalMatrix normalMatrices[VIEW_ID]'
-				].join( '\n' )
-			);
-
-			prefixFragment = prefixFragment.replace(
-				'#version 300 es\n',
-				[
-					'#version 300 es\n',
-					'#extension GL_OVR_multiview2 : require',
-					'#define VIEW_ID gl_ViewID_OVR'
-				].join( '\n' )
-			);
-
-			prefixFragment = prefixFragment.replace(
-				'uniform mat4 viewMatrix;',
-				[
-					'uniform mat4 viewMatrices[' + numMultiviewViews + '];',
-					'#define viewMatrix viewMatrices[VIEW_ID]'
-				].join( '\n' )
-			);
-
-		}
-
 	}
 	}
 
 
 	var vertexGlsl = prefixVertex + vertexShader;
 	var vertexGlsl = prefixVertex + vertexShader;
@@ -895,7 +840,6 @@ function WebGLProgram( renderer, cacheKey, parameters ) {
 	this.program = program;
 	this.program = program;
 	this.vertexShader = glVertexShader;
 	this.vertexShader = glVertexShader;
 	this.fragmentShader = glFragmentShader;
 	this.fragmentShader = glFragmentShader;
-	this.numMultiviewViews = numMultiviewViews;
 
 
 	return this;
 	return this;
 
 

+ 1 - 3
src/renderers/webgl/WebGLPrograms.js

@@ -37,7 +37,7 @@ function WebGLPrograms( renderer, extensions, capabilities ) {
 	};
 	};
 
 
 	var parameterNames = [
 	var parameterNames = [
-		"precision", "isWebGL2", "supportsVertexTextures", "outputEncoding", "instancing", "numMultiviewViews",
+		"precision", "isWebGL2", "supportsVertexTextures", "outputEncoding", "instancing",
 		"map", "mapEncoding", "matcap", "matcapEncoding", "envMap", "envMapMode", "envMapEncoding", "envMapCubeUV",
 		"map", "mapEncoding", "matcap", "matcapEncoding", "envMap", "envMapMode", "envMapEncoding", "envMapCubeUV",
 		"lightMap", "lightMapEncoding", "aoMap", "emissiveMap", "emissiveMapEncoding", "bumpMap", "normalMap", "objectSpaceNormalMap", "tangentSpaceNormalMap", "clearcoatNormalMap", "displacementMap", "specularMap",
 		"lightMap", "lightMapEncoding", "aoMap", "emissiveMap", "emissiveMapEncoding", "bumpMap", "normalMap", "objectSpaceNormalMap", "tangentSpaceNormalMap", "clearcoatNormalMap", "displacementMap", "specularMap",
 		"roughnessMap", "metalnessMap", "gradientMap",
 		"roughnessMap", "metalnessMap", "gradientMap",
@@ -171,7 +171,6 @@ function WebGLPrograms( renderer, extensions, capabilities ) {
 		material.onBeforeCompile( shaderobject, renderer );
 		material.onBeforeCompile( shaderobject, renderer );
 
 
 		var currentRenderTarget = renderer.getRenderTarget();
 		var currentRenderTarget = renderer.getRenderTarget();
-		var numMultiviewViews = currentRenderTarget && currentRenderTarget.isWebGLMultiviewRenderTarget ? currentRenderTarget.numViews : 0;
 
 
 		var parameters = {
 		var parameters = {
 
 
@@ -193,7 +192,6 @@ function WebGLPrograms( renderer, extensions, capabilities ) {
 			instancing: object.isInstancedMesh === true,
 			instancing: object.isInstancedMesh === true,
 
 
 			supportsVertexTextures: vertexTextures,
 			supportsVertexTextures: vertexTextures,
-			numMultiviewViews: numMultiviewViews,
 			outputEncoding: ( currentRenderTarget !== null ) ? getTextureEncodingFromMap( currentRenderTarget.texture ) : renderer.outputEncoding,
 			outputEncoding: ( currentRenderTarget !== null ) ? getTextureEncodingFromMap( currentRenderTarget.texture ) : renderer.outputEncoding,
 			map: !! material.map,
 			map: !! material.map,
 			mapEncoding: getTextureEncodingFromMap( material.map ),
 			mapEncoding: getTextureEncodingFromMap( material.map ),

+ 1 - 59
src/renderers/webgl/WebGLTextures.js

@@ -285,21 +285,6 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
 
 
 		}
 		}
 
 
-		if ( renderTarget.isWebGLMultiviewRenderTarget ) {
-
-			_gl.deleteTexture( renderTargetProperties.__webglColorTexture );
-			_gl.deleteTexture( renderTargetProperties.__webglDepthStencilTexture );
-
-			info.memory.textures -= 2;
-
-			for ( var i = 0, il = renderTargetProperties.__webglViewFramebuffers.length; i < il; i ++ ) {
-
-				_gl.deleteFramebuffer( renderTargetProperties.__webglViewFramebuffers[ i ] );
-
-			}
-
-		}
-
 		properties.remove( renderTarget.texture );
 		properties.remove( renderTarget.texture );
 		properties.remove( renderTarget );
 		properties.remove( renderTarget );
 
 
@@ -1000,7 +985,6 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
 
 
 		var isCube = ( renderTarget.isWebGLCubeRenderTarget === true );
 		var isCube = ( renderTarget.isWebGLCubeRenderTarget === true );
 		var isMultisample = ( renderTarget.isWebGLMultisampleRenderTarget === true );
 		var isMultisample = ( renderTarget.isWebGLMultisampleRenderTarget === true );
-		var isMultiview = ( renderTarget.isWebGLMultiviewRenderTarget === true );
 		var supportsMips = isPowerOfTwo( renderTarget ) || isWebGL2;
 		var supportsMips = isPowerOfTwo( renderTarget ) || isWebGL2;
 
 
 		// Setup framebuffer
 		// Setup framebuffer
@@ -1054,48 +1038,6 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
 
 
 				}
 				}
 
 
-			} else if ( isMultiview ) {
-
-				var width = renderTarget.width;
-				var height = renderTarget.height;
-				var numViews = renderTarget.numViews;
-
-				_gl.bindFramebuffer( _gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer );
-
-				var ext = extensions.get( 'OVR_multiview2' );
-
-				info.memory.textures += 2;
-
-				var colorTexture = _gl.createTexture();
-				_gl.bindTexture( _gl.TEXTURE_2D_ARRAY, colorTexture );
-				_gl.texParameteri( _gl.TEXTURE_2D_ARRAY, _gl.TEXTURE_MAG_FILTER, _gl.NEAREST );
-				_gl.texParameteri( _gl.TEXTURE_2D_ARRAY, _gl.TEXTURE_MIN_FILTER, _gl.NEAREST );
-				_gl.texImage3D( _gl.TEXTURE_2D_ARRAY, 0, _gl.RGBA8, width, height, numViews, 0, _gl.RGBA, _gl.UNSIGNED_BYTE, null );
-				ext.framebufferTextureMultiviewOVR( _gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, colorTexture, 0, 0, numViews );
-
-				var depthStencilTexture = _gl.createTexture();
-				_gl.bindTexture( _gl.TEXTURE_2D_ARRAY, depthStencilTexture );
-				_gl.texParameteri( _gl.TEXTURE_2D_ARRAY, _gl.TEXTURE_MAG_FILTER, _gl.NEAREST );
-				_gl.texParameteri( _gl.TEXTURE_2D_ARRAY, _gl.TEXTURE_MIN_FILTER, _gl.NEAREST );
-				_gl.texImage3D( _gl.TEXTURE_2D_ARRAY, 0, _gl.DEPTH24_STENCIL8, width, height, numViews, 0, _gl.DEPTH_STENCIL, _gl.UNSIGNED_INT_24_8, null );
-				ext.framebufferTextureMultiviewOVR( _gl.FRAMEBUFFER, _gl.DEPTH_STENCIL_ATTACHMENT, depthStencilTexture, 0, 0, numViews );
-
-				var viewFramebuffers = new Array( numViews );
-				for ( var i = 0; i < numViews; ++ i ) {
-
-					viewFramebuffers[ i ] = _gl.createFramebuffer();
-					_gl.bindFramebuffer( _gl.FRAMEBUFFER, viewFramebuffers[ i ] );
-					_gl.framebufferTextureLayer( _gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, colorTexture, 0, i );
-
-				}
-
-				renderTargetProperties.__webglColorTexture = colorTexture;
-				renderTargetProperties.__webglDepthStencilTexture = depthStencilTexture;
-				renderTargetProperties.__webglViewFramebuffers = viewFramebuffers;
-
-				_gl.bindFramebuffer( _gl.FRAMEBUFFER, null );
-				_gl.bindTexture( _gl.TEXTURE_2D_ARRAY, null );
-
 			}
 			}
 
 
 		}
 		}
@@ -1121,7 +1063,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
 
 
 			state.bindTexture( _gl.TEXTURE_CUBE_MAP, null );
 			state.bindTexture( _gl.TEXTURE_CUBE_MAP, null );
 
 
-		} else if ( ! isMultiview ) {
+		} else {
 
 
 			state.bindTexture( _gl.TEXTURE_2D, textureProperties.__webglTexture );
 			state.bindTexture( _gl.TEXTURE_2D, textureProperties.__webglTexture );
 			setTextureParameters( _gl.TEXTURE_2D, renderTarget.texture, supportsMips );
 			setTextureParameters( _gl.TEXTURE_2D, renderTarget.texture, supportsMips );