diff --git a/examples/debug-color/index.html b/examples/debug-color/index.html
index 6528464..4707b38 100644
--- a/examples/debug-color/index.html
+++ b/examples/debug-color/index.html
@@ -33,7 +33,14 @@
const camera = new THREE.PerspectiveCamera(60, window.innerWidth / window.innerHeight, 0.1, 1000);
const renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
- document.body.appendChild(renderer.domElement)
+ document.body.appendChild(renderer.domElement);
+
+ window.addEventListener('resize', onWindowResize, false);
+ function onWindowResize() {
+ camera.aspect = window.innerWidth / window.innerHeight;
+ camera.updateProjectionMatrix();
+ renderer.setSize(window.innerWidth, window.innerHeight);
+ }
let splatURL = await getAssetFileURL("butterfly.spz");
const butterfly = new SplatMesh({ url: splatURL });
diff --git a/examples/depth-of-field/index.html b/examples/depth-of-field/index.html
index e155682..a3c49d7 100644
--- a/examples/depth-of-field/index.html
+++ b/examples/depth-of-field/index.html
@@ -35,7 +35,14 @@
const camera = new THREE.PerspectiveCamera(60, window.innerWidth / window.innerHeight, 0.1, 1000);
const renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
- document.body.appendChild(renderer.domElement)
+ document.body.appendChild(renderer.domElement);
+
+ window.addEventListener('resize', onWindowResize, false);
+ function onWindowResize() {
+ camera.aspect = window.innerWidth / window.innerHeight;
+ camera.updateProjectionMatrix();
+ renderer.setSize(window.innerWidth, window.innerHeight);
+ }
const spark = new SparkRenderer({
renderer,
diff --git a/examples/dynamic-lighting/index.html b/examples/dynamic-lighting/index.html
index 27f9843..38126a7 100644
--- a/examples/dynamic-lighting/index.html
+++ b/examples/dynamic-lighting/index.html
@@ -95,7 +95,14 @@
const renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
- document.body.appendChild(renderer.domElement)
+ document.body.appendChild(renderer.domElement);
+
+ window.addEventListener('resize', onWindowResize, false);
+ function onWindowResize() {
+ camera.aspect = window.innerWidth / window.innerHeight;
+ camera.updateProjectionMatrix();
+ renderer.setSize(window.innerWidth, window.innerHeight);
+ }
// Create a SparkRenderer and add it to the scene to render all the Gsplats.
const spark = new SparkRenderer({ renderer });
diff --git a/examples/envmap/index.html b/examples/envmap/index.html
index 6fea9c5..60c08a3 100644
--- a/examples/envmap/index.html
+++ b/examples/envmap/index.html
@@ -50,7 +50,14 @@
const renderer = new THREE.WebGLRenderer();
renderer.setClearColor(new THREE.Color(0x1b2037), 1.0);
renderer.setSize(window.innerWidth, window.innerHeight);
- document.body.appendChild(renderer.domElement)
+ document.body.appendChild(renderer.domElement);
+
+ window.addEventListener('resize', onWindowResize, false);
+ function onWindowResize() {
+ camera.aspect = window.innerWidth / window.innerHeight;
+ camera.updateProjectionMatrix();
+ renderer.setSize(window.innerWidth, window.innerHeight);
+ }
// Explicitly create a SparkRenderer to render environment maps
const spark = new SparkRenderer({ renderer });
diff --git a/examples/glsl/index.html b/examples/glsl/index.html
index 5cca980..49df189 100644
--- a/examples/glsl/index.html
+++ b/examples/glsl/index.html
@@ -33,7 +33,14 @@
const camera = new THREE.PerspectiveCamera(60, window.innerWidth / window.innerHeight, 0.1, 1000);
const renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
- document.body.appendChild(renderer.domElement)
+ document.body.appendChild(renderer.domElement);
+
+ window.addEventListener('resize', onWindowResize, false);
+ function onWindowResize() {
+ camera.aspect = window.innerWidth / window.innerHeight;
+ camera.updateProjectionMatrix();
+ renderer.setSize(window.innerWidth, window.innerHeight);
+ }
const splatURL = await getAssetFileURL("butterfly.spz");
const butterfly = new SplatMesh({ url: splatURL });
diff --git a/examples/hello-world/index.html b/examples/hello-world/index.html
index d06c72f..d3a1d4e 100644
--- a/examples/hello-world/index.html
+++ b/examples/hello-world/index.html
@@ -30,7 +30,14 @@
const camera = new THREE.PerspectiveCamera(60, window.innerWidth / window.innerHeight, 0.1, 1000);
const renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
- document.body.appendChild(renderer.domElement)
+ document.body.appendChild(renderer.domElement);
+
+ window.addEventListener('resize', onWindowResize, false);
+ function onWindowResize() {
+ camera.aspect = window.innerWidth / window.innerHeight;
+ camera.updateProjectionMatrix();
+ renderer.setSize(window.innerWidth, window.innerHeight);
+ }
const splatURL = await getAssetFileURL("butterfly.spz");
const butterfly = new SplatMesh({ url: splatURL });
diff --git a/examples/interactivity/index.html b/examples/interactivity/index.html
index 20a278b..4b5c53f 100644
--- a/examples/interactivity/index.html
+++ b/examples/interactivity/index.html
@@ -61,7 +61,7 @@
const renderer = new THREE.WebGLRenderer();
renderer.shadowMap.enabled = true;
renderer.setSize(window.innerWidth, window.innerHeight);
- document.body.appendChild(renderer.domElement)
+ document.body.appendChild(renderer.domElement);
// Setup camera
const camera = new THREE.PerspectiveCamera(65, window.innerWidth / window.innerHeight, 0.1, 1000);
diff --git a/examples/multiple-splats/index.html b/examples/multiple-splats/index.html
index f9509d8..60bdbcf 100644
--- a/examples/multiple-splats/index.html
+++ b/examples/multiple-splats/index.html
@@ -48,7 +48,14 @@
const renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
renderer.setClearColor(new THREE.Color(0xFFFFFF), 1);
- document.body.appendChild(renderer.domElement)
+ document.body.appendChild(renderer.domElement);
+
+ window.addEventListener('resize', onWindowResize, false);
+ function onWindowResize() {
+ camera.aspect = window.innerWidth / window.innerHeight;
+ camera.updateProjectionMatrix();
+ renderer.setSize(window.innerWidth, window.innerHeight);
+ }
let splatURL = await getAssetFileURL("butterfly-ai.spz");
const butterflySplats = new PackedSplats({ url: splatURL });
diff --git a/examples/multiple-viewpoints/index.html b/examples/multiple-viewpoints/index.html
index 2456e63..c3ff97e 100644
--- a/examples/multiple-viewpoints/index.html
+++ b/examples/multiple-viewpoints/index.html
@@ -36,7 +36,14 @@
const renderer = new THREE.WebGLRenderer();
const header_height = document.querySelector('header').getBoundingClientRect().height;
renderer.setSize(window.innerWidth, window.innerHeight - header_height);
- document.body.appendChild(renderer.domElement)
+ document.body.appendChild(renderer.domElement);
+
+ window.addEventListener('resize', onWindowResize, false);
+ function onWindowResize() {
+ camera.aspect = window.innerWidth / window.innerHeight;
+ camera.updateProjectionMatrix();
+ renderer.setSize(window.innerWidth, window.innerHeight);
+ }
// Explicitly create a SparkRenderer in the scene to spawn new viewpoints
const spark = new SparkRenderer({ renderer });
diff --git a/examples/particle-animation/index.html b/examples/particle-animation/index.html
index d2fd01c..5e42467 100644
--- a/examples/particle-animation/index.html
+++ b/examples/particle-animation/index.html
@@ -279,7 +279,7 @@
function handleResize() {
const width = window.innerWidth;
const height = window.innerHeight;
- renderer.setSize(width, height, false);
+ renderer.setSize(width, height);
camera.aspect = width / height;
camera.updateProjectionMatrix();
}
diff --git a/examples/particle-simulation/index.html b/examples/particle-simulation/index.html
index b97bf0e..dbecb1e 100644
--- a/examples/particle-simulation/index.html
+++ b/examples/particle-simulation/index.html
@@ -62,7 +62,7 @@
function handleResize() {
const width = window.innerWidth;
const height = window.innerHeight;
- renderer.setSize(width, height, false);
+ renderer.setSize(width, height);
camera.aspect = width / height;
camera.updateProjectionMatrix();
}
diff --git a/examples/procedural-splats/index.html b/examples/procedural-splats/index.html
index 7267993..2a7908c 100644
--- a/examples/procedural-splats/index.html
+++ b/examples/procedural-splats/index.html
@@ -33,7 +33,14 @@
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
const renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
- document.body.appendChild(renderer.domElement)
+ document.body.appendChild(renderer.domElement);
+
+ window.addEventListener('resize', onWindowResize, false);
+ function onWindowResize() {
+ camera.aspect = window.innerWidth / window.innerHeight;
+ camera.updateProjectionMatrix();
+ renderer.setSize(window.innerWidth, window.innerHeight);
+ }
// Generate a Sierpinski pyramid one splat at a time via iteration
const pyramid = new SplatMesh({
diff --git a/examples/raycasting/index.html b/examples/raycasting/index.html
index ffcd212..b1426c9 100644
--- a/examples/raycasting/index.html
+++ b/examples/raycasting/index.html
@@ -42,7 +42,14 @@
camera.lookAt(0, -0.15, 0);
const renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
- document.body.appendChild(renderer.domElement)
+ document.body.appendChild(renderer.domElement);
+
+ window.addEventListener('resize', onWindowResize, false);
+ function onWindowResize() {
+ camera.aspect = window.innerWidth / window.innerHeight;
+ camera.updateProjectionMatrix();
+ renderer.setSize(window.innerWidth, window.innerHeight);
+ }
// Add robots
const NUM_ROBOTS = 5;
diff --git a/examples/sogs/index.html b/examples/sogs/index.html
index 23e9d66..17305f7 100644
--- a/examples/sogs/index.html
+++ b/examples/sogs/index.html
@@ -38,6 +38,13 @@
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
+ window.addEventListener('resize', onWindowResize, false);
+ function onWindowResize() {
+ camera.aspect = window.innerWidth / window.innerHeight;
+ camera.updateProjectionMatrix();
+ renderer.setSize(window.innerWidth, window.innerHeight);
+ }
+
const splatURL = await getAssetFileURL("sutro.zip");
const sutroTower = new SplatMesh({ url: splatURL });
sutroTower.quaternion.set(1, 0, 0, 0);
diff --git a/examples/splat-reveal-effects/index.html b/examples/splat-reveal-effects/index.html
index f914596..2510974 100644
--- a/examples/splat-reveal-effects/index.html
+++ b/examples/splat-reveal-effects/index.html
@@ -40,7 +40,14 @@
const renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
- document.body.appendChild(renderer.domElement)
+ document.body.appendChild(renderer.domElement);
+
+ window.addEventListener('resize', onWindowResize, false);
+ function onWindowResize() {
+ camera.aspect = window.innerWidth / window.innerHeight;
+ camera.updateProjectionMatrix();
+ renderer.setSize(window.innerWidth, window.innerHeight);
+ }
// Animation timing variables
const animateT = dyno.dynoFloat(0);
diff --git a/examples/splat-shader-effects/index.html b/examples/splat-shader-effects/index.html
index 9eb0007..c51bef5 100644
--- a/examples/splat-shader-effects/index.html
+++ b/examples/splat-shader-effects/index.html
@@ -33,6 +33,13 @@
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
+ window.addEventListener('resize', onWindowResize, false);
+ function onWindowResize() {
+ camera.aspect = window.innerWidth / window.innerHeight;
+ camera.updateProjectionMatrix();
+ renderer.setSize(window.innerWidth, window.innerHeight);
+ }
+
// Cat model setup
const splatURL = await getAssetFileURL("cat.spz");
const cat = new SplatMesh({ url: splatURL });
diff --git a/examples/splat-texture/index.html b/examples/splat-texture/index.html
index 9eee367..6ffd632 100644
--- a/examples/splat-texture/index.html
+++ b/examples/splat-texture/index.html
@@ -35,7 +35,14 @@
const camera = new THREE.PerspectiveCamera(60, window.innerWidth / window.innerHeight, 0.01, 100);
const renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
- document.body.appendChild(renderer.domElement)
+ document.body.appendChild(renderer.domElement);
+
+ window.addEventListener('resize', onWindowResize, false);
+ function onWindowResize() {
+ camera.aspect = window.innerWidth / window.innerHeight;
+ camera.updateProjectionMatrix();
+ renderer.setSize(window.innerWidth, window.innerHeight);
+ }
function imgToRgba(img) {
const canvas = document.createElement("canvas");
diff --git a/examples/stochastic/index.html b/examples/stochastic/index.html
index 2f80ef4..537cf2f 100644
--- a/examples/stochastic/index.html
+++ b/examples/stochastic/index.html
@@ -31,7 +31,14 @@
const renderer = new THREE.WebGLRenderer();
renderer.setPixelRatio(window.devicePixelRatio);
renderer.setSize(window.innerWidth, window.innerHeight);
- document.body.appendChild(renderer.domElement)
+ document.body.appendChild(renderer.domElement);
+
+ window.addEventListener('resize', onWindowResize, false);
+ function onWindowResize() {
+ camera.aspect = window.innerWidth / window.innerHeight;
+ camera.updateProjectionMatrix();
+ renderer.setSize(window.innerWidth, window.innerHeight);
+ }
// Make a local frame of reference that we can move to control
// the camera, or as a frame of reference in WebXR mode
diff --git a/examples/webxr/index.html b/examples/webxr/index.html
index 7cf10c5..13fc613 100644
--- a/examples/webxr/index.html
+++ b/examples/webxr/index.html
@@ -30,7 +30,14 @@
const camera = new THREE.PerspectiveCamera(60, window.innerWidth / window.innerHeight, 0.1, 1000);
const renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
- document.body.appendChild(renderer.domElement)
+ document.body.appendChild(renderer.domElement);
+
+ window.addEventListener('resize', onWindowResize, false);
+ function onWindowResize() {
+ camera.aspect = window.innerWidth / window.innerHeight;
+ camera.updateProjectionMatrix();
+ renderer.setSize(window.innerWidth, window.innerHeight);
+ }
// Make a local frame of reference that we can move to control
// the camera, or as a frame of reference in WebXR mode