浏览代码

Detect antialias on multiview.isAvailable()

Fernando Serrano 6 年之前
父节点
当前提交
66b671b2e3
共有 3 个文件被更改,包括 24 次插入21 次删除
  1. 21 16
      examples/webvr_multiview.html
  2. 1 1
      src/renderers/WebGLRenderer.js
  3. 2 4
      src/renderers/webgl/WebGLMultiview.js

+ 21 - 16
examples/webvr_multiview.html

@@ -23,16 +23,17 @@
 		<script src="js/vr/WebVR.js"></script>
 
 		<script src="js/geometries/BoxLineGeometry.js"></script>
-
+		<script src="js/libs/stats.min.js"></script>
 		<script>
 
 			var container;
 			var camera, scene, renderer;
 
 			var room;
+			var stats;
 
 			var count = 0;
-			var radius = 0.08;
+			var radius = 0.02;
 			var normal = new THREE.Vector3();
 			var relativeVelocity = new THREE.Vector3();
 
@@ -46,6 +47,18 @@
 				container = document.createElement( 'div' );
 				document.body.appendChild( container );
 
+				//
+
+				var canvas = document.createElement( 'canvas' );
+				var context = canvas.getContext( 'webgl2', { antialias: false } );
+
+				renderer = new THREE.WebGLRenderer( { canvas: canvas, context: context } );
+
+				renderer.setPixelRatio( window.devicePixelRatio );
+				renderer.setSize( window.innerWidth, window.innerHeight );
+				renderer.vr.enabled = true;
+				container.appendChild( renderer.domElement );
+
 				var info = document.createElement( 'div' );
 				info.style.position = 'absolute';
 				info.style.top = '10px';
@@ -61,7 +74,7 @@
 
 				room = new THREE.LineSegments(
 					new THREE.BoxLineGeometry( 6, 6, 6, 10, 10, 10 ),
-					new THREE.LineBasicMaterial( { color: 0x808080 } )
+					new THREE.LineBasicMaterial( { color: renderer.multiview.isAvailable() ? 0x99ff99 : 0xff3333 } )
 				);
 				room.geometry.translate( 0, 3, 0 );
 				scene.add( room );
@@ -72,7 +85,7 @@
 
 				var geometry = new THREE.IcosahedronBufferGeometry( radius );
 
-				for ( var i = 0; i < 2000; i ++ ) {
+				for ( var i = 0; i < 5000; i ++ ) {
 
 					var object = new THREE.Mesh( geometry, new THREE.MeshLambertMaterial( { color: Math.random() * 0xffffff } ) );
 
@@ -91,22 +104,13 @@
 
 				//
 
-				var canvas = document.createElement( 'canvas' );
-				var context = canvas.getContext( 'webgl2', { antialias: false } );
-
-				renderer = new THREE.WebGLRenderer( { canvas: canvas, context: context } );
-
-				renderer.setPixelRatio( window.devicePixelRatio );
-				renderer.setSize( window.innerWidth, window.innerHeight );
-				renderer.vr.enabled = true;
-				container.appendChild( renderer.domElement );
-
-				//
-
 				document.body.appendChild( WEBVR.createButton( renderer ) );
 
 				//
 
+				stats = new Stats();
+				container.appendChild( stats.dom );
+
 				window.addEventListener( 'resize', onWindowResize, false );
 
 			}
@@ -131,6 +135,7 @@
 			function render() {
 
 				//
+				stats.update();
 
 				var delta = clock.getDelta();
 

+ 1 - 1
src/renderers/WebGLRenderer.js

@@ -314,7 +314,7 @@ function WebGLRenderer( parameters ) {
 
 	// Multiview
 
-	var multiview = new WebGLMultiview( _this, _gl );
+	var multiview = new WebGLMultiview( _this, _gl, _gl.getContextAttributes() );
 
 	this.multiview = multiview;
 

+ 2 - 4
src/renderers/webgl/WebGLMultiview.js

@@ -8,7 +8,7 @@ import { Matrix3 } from '../../math/Matrix3.js';
 import { Matrix4 } from '../../math/Matrix4.js';
 import { Vector2 } from '../../math/Vector2.js';
 
-function WebGLMultiview( renderer, gl ) {
+function WebGLMultiview( renderer, gl, contextAttributes ) {
 
 	var DEFAULT_NUMVIEWS = 2;
 
@@ -52,7 +52,7 @@ function WebGLMultiview( renderer, gl ) {
 
 	function isAvailable() {
 
-		return capabilities.multiview;
+		return capabilities.multiview && !contextAttributes.antialias;
 
 	}
 
@@ -205,8 +205,6 @@ function WebGLMultiview( renderer, gl ) {
 
 	if ( isAvailable() ) {
 
-		console.log('multiivew enabled!');
-
 		renderTarget = new WebGLMultiviewRenderTarget( 0, 0, DEFAULT_NUMVIEWS );
 
 		renderSize = new Vector2();