瀏覽代碼

WebXR: caches depthNear and depthFar at engine level

P. Douglas Reeder 5 年之前
父節點
當前提交
56ee283336
共有 1 個文件被更改,包括 14 次插入4 次删除
  1. 14 4
      src/renderers/webxr/WebXRManager.js

+ 14 - 4
src/renderers/webxr/WebXRManager.js

@@ -40,6 +40,9 @@ function WebXRManager( renderer, gl ) {
 	cameraVR.layers.enable( 1 );
 	cameraVR.layers.enable( 2 );
 
+	var _currentDepthNear = null;
+	var _currentDepthFar = null;
+
 	//
 
 	this.enabled = false;
@@ -303,10 +306,17 @@ function WebXRManager( renderer, gl ) {
 
 		cameraVR.near = cameraR.near = cameraL.near = camera.near;
 		cameraVR.far = cameraR.far = cameraL.far = camera.far;
-		session.updateRenderState( {
-			depthNear: cameraVR.near,
-			depthFar: cameraVR.far
-		} );
+		if ( _currentDepthNear !== cameraVR.near || _currentDepthFar !== cameraVR.far ) {
+
+			session.updateRenderState( {
+				depthNear: cameraVR.near,
+				depthFar: cameraVR.far
+			} );
+
+			_currentDepthNear = cameraVR.near;
+			_currentDepthFar = cameraVR.far;
+
+		}
 
 		var parent = camera.parent;
 		var cameras = cameraVR.cameras;