Skip to content

Commit 0b2946b

Browse files
authored
WebGPURenderer: Improve ArrayCamera performance and fixes (#1509)
* WebGPURenderer: Improve ArrayCamera performance and fixes * Update three.js * Add src * Update patch and delete src * Update declarations * Add examples * Update * Update patch and delete examples
1 parent 18cf1ce commit 0b2946b

File tree

13 files changed

+178
-185
lines changed

13 files changed

+178
-185
lines changed

examples-testing/changes.patch

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13336,27 +13336,33 @@ index 45619da3..97df59b3 100644
1333613336
case 79 /*O*/:
1333713337
activeCamera = cameraOrtho;
1333813338
diff --git a/examples-testing/examples/webgpu_camera_array.ts b/examples-testing/examples/webgpu_camera_array.ts
13339-
index 2e8218be..92051ebc 100644
13339+
index 919b7422..fb696689 100644
1334013340
--- a/examples-testing/examples/webgpu_camera_array.ts
1334113341
+++ b/examples-testing/examples/webgpu_camera_array.ts
13342-
@@ -1,6 +1,6 @@
13342+
@@ -1,10 +1,10 @@
1334313343
-import * as THREE from 'three';
1334413344
+import * as THREE from 'three/webgpu';
1334513345

13346+
import Stats from 'three/addons/libs/stats.module.js';
13347+
1334613348
-let camera, scene, renderer;
13349+
-let mesh;
13350+
-let stats;
1334713351
+let camera: THREE.ArrayCamera, scene: THREE.Scene, renderer: THREE.WebGPURenderer;
13348-
let mesh;
13352+
+let mesh: THREE.Mesh;
13353+
+let stats: Stats;
13354+
1334913355
const AMOUNT = 6;
1335013356

13351-
@@ -87,7 +87,7 @@ function onWindowResize() {
13352-
for (let x = 0; x < AMOUNT; x++) {
13357+
@@ -82,7 +82,7 @@ function updateCameras() {
1335313358
const subcamera = camera.cameras[AMOUNT * y + x];
13359+
subcamera.copy(camera); // copy fov, aspect ratio, near, far from the root camera
1335413360

1335513361
- subcamera.viewport.set(Math.floor(x * WIDTH), Math.floor(y * HEIGHT), Math.ceil(WIDTH), Math.ceil(HEIGHT));
1335613362
+ subcamera.viewport!.set(Math.floor(x * WIDTH), Math.floor(y * HEIGHT), Math.ceil(WIDTH), Math.ceil(HEIGHT));
13357-
13358-
subcamera.aspect = ASPECT_RATIO;
1335913363
subcamera.updateProjectionMatrix();
13364+
13365+
subcamera.position.x = x / AMOUNT - 0.5;
1336013366
diff --git a/examples-testing/examples/webgpu_camera_logarithmicdepthbuffer.ts b/examples-testing/examples/webgpu_camera_logarithmicdepthbuffer.ts
1336113367
index 15527632..58f5cc14 100644
1336213368
--- a/examples-testing/examples/webgpu_camera_logarithmicdepthbuffer.ts
@@ -16975,7 +16981,7 @@ index 45ffecc1..ce082652 100644
1697516981
});
1697616982

1697716983
diff --git a/examples-testing/examples/webgpu_postprocessing_traa.ts b/examples-testing/examples/webgpu_postprocessing_traa.ts
16978-
index 9a5558e9..05dbf9db 100644
16984+
index 6e8509d1..7540235d 100644
1697916985
--- a/examples-testing/examples/webgpu_postprocessing_traa.ts
1698016986
+++ b/examples-testing/examples/webgpu_postprocessing_traa.ts
1698116987
@@ -1,11 +1,14 @@

0 commit comments

Comments
 (0)