Renamed "forge" to "spark". Updated meta-references and future domain. (#40)
@@ -1,102 +1,102 @@
|
||||
{
|
||||
"robot-head.spz": {
|
||||
"url": "https://forge.dev/assets/splats/robot-head.spz",
|
||||
"url": "https://sparkjs.dev/assets/splats/robot-head.spz",
|
||||
"directory": "splats"
|
||||
},
|
||||
"forge.spz": {
|
||||
"url": "https://forge.dev/assets/splats/forge.spz",
|
||||
"url": "https://sparkjs.dev/assets/splats/forge.spz",
|
||||
"directory": "splats"
|
||||
},
|
||||
"butterfly-wings-closed.spz": {
|
||||
"url": "https://forge.dev/assets/splats/butterfly-wings-closed.spz",
|
||||
"url": "https://sparkjs.dev/assets/splats/butterfly-wings-closed.spz",
|
||||
"directory": "splats"
|
||||
},
|
||||
"butterfly.spz": {
|
||||
"url": "https://forge.dev/assets/splats/butterfly.spz",
|
||||
"url": "https://sparkjs.dev/assets/splats/butterfly.spz",
|
||||
"directory": "splats"
|
||||
},
|
||||
"butterfly-ai.spz": {
|
||||
"url": "https://forge.dev/assets/splats/butterfly-ai.spz",
|
||||
"url": "https://sparkjs.dev/assets/splats/butterfly-ai.spz",
|
||||
"directory": "splats"
|
||||
},
|
||||
"fireplace.spz": {
|
||||
"url": "https://forge.dev/assets/splats/fireplace.spz",
|
||||
"url": "https://sparkjs.dev/assets/splats/fireplace.spz",
|
||||
"directory": "splats"
|
||||
},
|
||||
"snow-street.spz": {
|
||||
"url": "https://forge.dev/assets/splats/snow-street.spz",
|
||||
"url": "https://sparkjs.dev/assets/splats/snow-street.spz",
|
||||
"directory": "splats"
|
||||
},
|
||||
"branzino-amarin.spz": {
|
||||
"url": "https://forge.dev/assets/splats/food/branzino-amarin.spz",
|
||||
"url": "https://sparkjs.dev/assets/splats/food/branzino-amarin.spz",
|
||||
"directory": "splats/food"
|
||||
},
|
||||
"burger-from-amboy.spz": {
|
||||
"url": "https://forge.dev/assets/splats/food/burger-from-amboy.spz",
|
||||
"url": "https://sparkjs.dev/assets/splats/food/burger-from-amboy.spz",
|
||||
"directory": "splats/food"
|
||||
},
|
||||
"clams-and-caviar-by-ikoyi.spz": {
|
||||
"url": "https://forge.dev/assets/splats/food/clams-and-caviar-by-ikoyi.spz",
|
||||
"url": "https://sparkjs.dev/assets/splats/food/clams-and-caviar-by-ikoyi.spz",
|
||||
"directory": "splats/food"
|
||||
},
|
||||
"coral-caviar.spz": {
|
||||
"url": "https://forge.dev/assets/splats/food/coral-caviar.spz",
|
||||
"url": "https://sparkjs.dev/assets/splats/food/coral-caviar.spz",
|
||||
"directory": "splats/food"
|
||||
},
|
||||
"double-double-from-InNOut.spz": {
|
||||
"url": "https://forge.dev/assets/splats/food/double-Double-from-InNOut.spz",
|
||||
"url": "https://sparkjs.dev/assets/splats/food/double-Double-from-InNOut.spz",
|
||||
"directory": "splats/food"
|
||||
},
|
||||
"gyro.spz": {
|
||||
"url": "https://forge.dev/assets/splats/food/gyro.spz",
|
||||
"url": "https://sparkjs.dev/assets/splats/food/gyro.spz",
|
||||
"directory": "splats/food"
|
||||
},
|
||||
"iberico-sandwich-by-reserve.spz": {
|
||||
"url": "https://forge.dev/assets/splats/food/iberico-sandwich-by-reserve.spz",
|
||||
"url": "https://sparkjs.dev/assets/splats/food/iberico-sandwich-by-reserve.spz",
|
||||
"directory": "splats/food"
|
||||
},
|
||||
"primerib-tamos.spz": {
|
||||
"url": "https://forge.dev/assets/splats/food/primerib-tamos.spz",
|
||||
"url": "https://sparkjs.dev/assets/splats/food/primerib-tamos.spz",
|
||||
"directory": "splats/food"
|
||||
},
|
||||
"steaksandwich-mels.spz": {
|
||||
"url": "https://forge.dev/assets/splats/food/steaksandwich-mels.spz",
|
||||
"url": "https://sparkjs.dev/assets/splats/food/steaksandwich-mels.spz",
|
||||
"directory": "splats/food"
|
||||
},
|
||||
"pad-thai.spz": {
|
||||
"url": "https://forge.dev/assets/splats/food/pad-thai.spz",
|
||||
"url": "https://sparkjs.dev/assets/splats/food/pad-thai.spz",
|
||||
"directory": "splats/food"
|
||||
},
|
||||
"tomahawk-niku.spz": {
|
||||
"url": "https://forge.dev/assets/splats/food/tomahawk-niku.spz",
|
||||
"url": "https://sparkjs.dev/assets/splats/food/tomahawk-niku.spz",
|
||||
"directory": "splats/food"
|
||||
},
|
||||
"rubberduck.glb": {
|
||||
"url": "https://forge.dev/assets/models/rubberduck.glb",
|
||||
"url": "https://sparkjs.dev/assets/models/rubberduck.glb",
|
||||
"directory": "models"
|
||||
},
|
||||
"table.glb": {
|
||||
"url": "https://forge.dev/assets/models/table.glb",
|
||||
"url": "https://sparkjs.dev/assets/models/table.glb",
|
||||
"directory": "models"
|
||||
},
|
||||
"butterfly.png": {
|
||||
"url": "https://forge.dev/assets/images/butterfly.png",
|
||||
"url": "https://sparkjs.dev/assets/images/butterfly.png",
|
||||
"directory": "images"
|
||||
},
|
||||
"sky.jpeg": {
|
||||
"url": "https://forge.dev/assets/images/sky.jpeg",
|
||||
"url": "https://sparkjs.dev/assets/images/sky.jpeg",
|
||||
"directory": "images"
|
||||
},
|
||||
"furry-logo-pedestal.spz": {
|
||||
"url": "https://forge.dev/assets/splats/furry-logo-pedestal.spz",
|
||||
"url": "https://sparkjs.dev/assets/splats/furry-logo-pedestal.spz",
|
||||
"directory": "splats"
|
||||
},
|
||||
"cat.spz": {
|
||||
"url": "https://forge.dev/assets/splats/cat.spz",
|
||||
"url": "https://sparkjs.dev/assets/splats/cat.spz",
|
||||
"directory": "splats"
|
||||
},
|
||||
"arrow.glb": {
|
||||
"url": "https://forge.dev/assets/models/arrow.glb",
|
||||
"url": "https://sparkjs.dev/assets/models/arrow.glb",
|
||||
"directory": "models"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Forge • VFX Dynamic Lighting</title>
|
||||
<title>Spark • VFX Dynamic Lighting</title>
|
||||
<style>
|
||||
html,
|
||||
body {
|
||||
@@ -68,7 +68,7 @@
|
||||
{
|
||||
"imports": {
|
||||
"three": "/examples/js/vendor/three/build/three.module.js",
|
||||
"@forge-gfx/forge": "/dist/forge.module.js"
|
||||
"@sparkjs-dev/spark": "/dist/spark.module.js"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -77,13 +77,13 @@
|
||||
import {
|
||||
SplatMesh,
|
||||
SplatEdit,
|
||||
ForgeRenderer,
|
||||
SparkRenderer,
|
||||
SplatEditSdf,
|
||||
SplatEditSdfType,
|
||||
SplatEditRgbaBlendMode,
|
||||
FpsMovement,
|
||||
PointerControls,
|
||||
} from "@forge-gfx/forge";
|
||||
} from "@sparkjs-dev/spark";
|
||||
import { getAssetFileURL } from "/examples/js/get-asset-url.js";
|
||||
|
||||
const canvas = document.getElementById("canvas");
|
||||
@@ -96,9 +96,9 @@
|
||||
renderer.setSize(window.innerWidth, window.innerHeight);
|
||||
document.body.appendChild(renderer.domElement)
|
||||
|
||||
// Create a ForgeRenderer and add it to the scene to render all the Gsplats.
|
||||
const forge = new ForgeRenderer({ renderer });
|
||||
scene.add(forge);
|
||||
// Create a SparkRenderer and add it to the scene to render all the Gsplats.
|
||||
const spark = new SparkRenderer({ renderer });
|
||||
scene.add(spark);
|
||||
|
||||
const splatURL = await getAssetFileURL("fireplace.spz");
|
||||
const fireplace = new SplatMesh({ url: splatURL });
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Forge • Editor</title>
|
||||
<title>Spark • Editor</title>
|
||||
<style>
|
||||
body {
|
||||
margin: 0;
|
||||
@@ -53,7 +53,7 @@
|
||||
"imports": {
|
||||
"three": "/examples/js/vendor/three/build/three.module.js",
|
||||
"three/addons/": "/examples/js/vendor/three/examples/jsm/",
|
||||
"@forge-gfx/forge": "/dist/forge.module.js",
|
||||
"@sparkjs-dev/spark": "/dist/spark.module.js",
|
||||
"lil-gui": "../node_modules/lil-gui/dist/lil-gui.esm.js",
|
||||
"stats.js": "../node_modules/stats.js/build/stats.min.js"
|
||||
}
|
||||
@@ -68,7 +68,7 @@
|
||||
import { OrbitControls } from "three/addons/controls/OrbitControls.js";
|
||||
import { GUI } from "lil-gui";
|
||||
import Stats from "stats.js";
|
||||
import { constructGrid, ForgeControls, ForgeRenderer, SplatMesh, textSplats, dyno, transcodeSpz } from "@forge-gfx/forge";
|
||||
import { constructGrid, SparkControls, SparkRenderer, SplatMesh, textSplats, dyno, transcodeSpz } from "@sparkjs-dev/spark";
|
||||
import { getAssetFileURL } from "/examples/js/get-asset-url.js";
|
||||
|
||||
const scene = new THREE.Scene();
|
||||
@@ -77,7 +77,7 @@
|
||||
|
||||
const canvas = document.getElementById("canvas");
|
||||
const renderer = new THREE.WebGLRenderer({ canvas });
|
||||
const forge = new ForgeRenderer({ renderer });
|
||||
const spark = new SparkRenderer({ renderer });
|
||||
|
||||
function handleResize() {
|
||||
const width = canvas.clientWidth;
|
||||
@@ -119,7 +119,7 @@
|
||||
container: document.getElementById("second-gui")
|
||||
}).close();
|
||||
|
||||
const controls = new ForgeControls({ canvas });
|
||||
const controls = new SparkControls({ canvas });
|
||||
|
||||
// Setup mouse controls to orbit the camera around
|
||||
const orbitControls = new OrbitControls(camera, renderer.domElement);
|
||||
@@ -463,7 +463,7 @@
|
||||
gui.add(guiOptions, "stats").name("Show frame stats").onChange((value) => {
|
||||
stats.dom.style.display = value ? "block" : "none";
|
||||
});
|
||||
gui.add(forge.defaultView, "sortRadial").name("Radial sort").listen();
|
||||
gui.add(spark.defaultView, "sortRadial").name("Radial sort").listen();
|
||||
gui.add(grid, "opacity", 0, 1, 0.01).name("Grid opacity").listen();
|
||||
|
||||
const normalColor = dyno.dynoBool(false);
|
||||
@@ -472,8 +472,8 @@
|
||||
const splatsFolder = secondGui.addFolder("Files");
|
||||
|
||||
const editFolder = gui.addFolder("Edit Splats").close();
|
||||
editFolder.add(forge, "maxStdDev", 0.1, 3.0, 0.01).name("Max Gsplat stddev").listen();
|
||||
editFolder.add(forge, "falloff", 0, 1, 0.01).name("Gaussian falloff").listen();
|
||||
editFolder.add(spark, "maxStdDev", 0.1, 3.0, 0.01).name("Max Gsplat stddev").listen();
|
||||
editFolder.add(spark, "falloff", 0, 1, 0.01).name("Gaussian falloff").listen();
|
||||
|
||||
function updateFrameSplats() {
|
||||
frame.children.forEach((child) => {
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Forge • Environment Mapping</title>
|
||||
<title>Spark • Environment Mapping</title>
|
||||
<style>
|
||||
body {
|
||||
margin: 0;
|
||||
@@ -33,13 +33,13 @@
|
||||
"imports": {
|
||||
"three": "/examples/js/vendor/three/build/three.module.js",
|
||||
"three/addons/": "/examples/js/vendor/three/examples/jsm/",
|
||||
"@forge-gfx/forge": "/dist/forge.module.js"
|
||||
"@sparkjs-dev/spark": "/dist/spark.module.js"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<script type="module">
|
||||
import * as THREE from "three";
|
||||
import { SplatMesh, ForgeControls, ForgeRenderer } from "@forge-gfx/forge";
|
||||
import { SplatMesh, SparkControls, SparkRenderer } from "@sparkjs-dev/spark";
|
||||
import { GLTFLoader } from "three/addons/loaders/GLTFLoader.js";
|
||||
import { getAssetFileURL } from "/examples/js/get-asset-url.js";
|
||||
|
||||
@@ -51,8 +51,8 @@
|
||||
renderer.setSize(window.innerWidth, window.innerHeight);
|
||||
document.body.appendChild(renderer.domElement)
|
||||
|
||||
// Explicitly create a ForgeRenderer to render environment maps
|
||||
const forge = new ForgeRenderer({ renderer });
|
||||
// Explicitly create a SparkRenderer to render environment maps
|
||||
const spark = new SparkRenderer({ renderer });
|
||||
|
||||
const splatURL = await getAssetFileURL("fireplace.spz");
|
||||
const background = new SplatMesh({ url: splatURL });
|
||||
@@ -88,7 +88,7 @@
|
||||
// Make sure we only launch async renderEnvMap once
|
||||
if (!renderedEnvMap) {
|
||||
renderedEnvMap = true;
|
||||
forge.renderEnvMap({
|
||||
spark.renderEnvMap({
|
||||
scene,
|
||||
// World center to render from
|
||||
worldCenter: duck.position,
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Forge • Carousel</title>
|
||||
<title>Spark • Carousel</title>
|
||||
<style>
|
||||
body {
|
||||
margin: 0;
|
||||
@@ -16,13 +16,13 @@
|
||||
"imports": {
|
||||
"three": "/examples/js/vendor/three/build/three.module.js",
|
||||
"three/addons/": "/examples/js/vendor/three/examples/jsm/",
|
||||
"@forge-gfx/forge": "/dist/forge.module.js"
|
||||
"@sparkjs-dev/spark": "/dist/spark.module.js"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<script type="module">
|
||||
import * as THREE from "three";
|
||||
import { SplatMesh } from "@forge-gfx/forge";
|
||||
import { SplatMesh } from "@sparkjs-dev/spark";
|
||||
import { getAssetFileURL } from "/examples/js/get-asset-url.js";
|
||||
import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Forge • Hello World</title>
|
||||
<title>Spark • Hello World</title>
|
||||
<style>
|
||||
body {
|
||||
margin: 0;
|
||||
@@ -16,13 +16,13 @@
|
||||
{
|
||||
"imports": {
|
||||
"three": "/examples/js/vendor/three/build/three.module.js",
|
||||
"@forge-gfx/forge": "/dist/forge.module.js"
|
||||
"@sparkjs-dev/spark": "/dist/spark.module.js"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<script type="module">
|
||||
import * as THREE from "three";
|
||||
import { SplatMesh } from "@forge-gfx/forge";
|
||||
import { SplatMesh } from "@sparkjs-dev/spark";
|
||||
import { getAssetFileURL } from "/examples/js/get-asset-url.js";
|
||||
|
||||
const scene = new THREE.Scene();
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Forge • Multiple Splats</title>
|
||||
<title>Spark • Multiple Splats</title>
|
||||
<link rel="stylesheet" href="style.css">
|
||||
</head>
|
||||
|
||||
@@ -25,13 +25,13 @@
|
||||
"imports": {
|
||||
"three": "/examples/js/vendor/three/build/three.module.js",
|
||||
"three/addons/": "/examples/js/vendor/three/examples/jsm/",
|
||||
"@forge-gfx/forge": "/dist/forge.module.js"
|
||||
"@sparkjs-dev/spark": "/dist/spark.module.js"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<script type="module">
|
||||
import * as THREE from "three";
|
||||
import { SplatMesh } from "@forge-gfx/forge";
|
||||
import { SplatMesh } from "@sparkjs-dev/spark";
|
||||
import { GLTFLoader } from "three/addons/loaders/GLTFLoader.js";
|
||||
import { EXRLoader } from "three/addons/loaders/EXRLoader.js";
|
||||
import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
|
||||
|
||||
@@ -4,7 +4,7 @@ export async function getAssetFileURL(assetFile) {
|
||||
const assetsDirectory = "/examples/assets/";
|
||||
const assetsInfo = await response.json();
|
||||
let url = assetsInfo[assetFile].url;
|
||||
if (window.forgeLocalAssets) {
|
||||
if (window.sparkLocalAssets) {
|
||||
url = `${assetsDirectory}${assetsInfo[assetFile].directory}/${assetFile}`;
|
||||
}
|
||||
return url;
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import { SplatMesh } from "@forge-gfx/forge";
|
||||
import { SplatMesh } from "@sparkjs-dev/spark";
|
||||
import { getAssetFileURL } from "/examples/js/get-asset-url.js";
|
||||
|
||||
// Add loading icon in the center of the screen
|
||||
function addLoader(loading_icon_color) {
|
||||
const loaderIcon = new Image();
|
||||
loaderIcon.src = `/examples/js/forge_loading_${loading_icon_color}.gif`;
|
||||
loaderIcon.id = "_forge_loader";
|
||||
loaderIcon.src = `/examples/js/spark_loading_${loading_icon_color}.gif`;
|
||||
loaderIcon.id = "_spark_loader";
|
||||
loaderIcon.style.position = "absolute";
|
||||
loaderIcon.style.zIndex = 99999;
|
||||
loaderIcon.style.left = "50%";
|
||||
@@ -16,7 +16,7 @@ function addLoader(loading_icon_color) {
|
||||
}
|
||||
|
||||
function removeLoader() {
|
||||
const el = document.getElementById("_forge_loader");
|
||||
const el = document.getElementById("_spark_loader");
|
||||
el.parentNode.removeChild(el);
|
||||
}
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 9.0 KiB After Width: | Height: | Size: 9.0 KiB |
|
Before Width: | Height: | Size: 9.2 KiB After Width: | Height: | Size: 9.2 KiB |
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Forge • Multiple Splats</title>
|
||||
<title>Spark • Multiple Splats</title>
|
||||
<style>
|
||||
body {
|
||||
margin: 0;
|
||||
@@ -28,13 +28,13 @@
|
||||
"imports": {
|
||||
"three": "/examples/js/vendor/three/build/three.module.js",
|
||||
"three/addons/": "/examples/js/vendor/three/examples/jsm/",
|
||||
"@forge-gfx/forge": "/dist/forge.module.js"
|
||||
"@sparkjs-dev/spark": "/dist/spark.module.js"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<script type="module">
|
||||
import * as THREE from "three";
|
||||
import { SplatMesh } from "@forge-gfx/forge";
|
||||
import { SplatMesh } from "@sparkjs-dev/spark";
|
||||
import { EXRLoader } from "three/addons/loaders/EXRLoader.js";
|
||||
import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
|
||||
import { getAssetFileURL } from "/examples/js/get-asset-url.js";
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Forge • Multiple Viewpoints</title>
|
||||
<title>Spark • Multiple Viewpoints</title>
|
||||
<link rel="stylesheet" href="style.css">
|
||||
</head>
|
||||
|
||||
@@ -18,13 +18,13 @@
|
||||
"imports": {
|
||||
"three": "/examples/js/vendor/three/build/three.module.js",
|
||||
"three/addons/": "/examples/js/vendor/three/examples/jsm/",
|
||||
"@forge-gfx/forge": "/dist/forge.module.js"
|
||||
"@sparkjs-dev/spark": "/dist/spark.module.js"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<script type="module">
|
||||
import * as THREE from "three";
|
||||
import { ForgeRenderer, ForgeViewpoint, SplatMesh } from "@forge-gfx/forge";
|
||||
import { SparkRenderer, SparkViewpoint, SplatMesh } from "@sparkjs-dev/spark";
|
||||
|
||||
import { GLTFLoader } from "three/addons/loaders/GLTFLoader.js";
|
||||
import { getAssetFileURL } from "/examples/js/get-asset-url.js";
|
||||
@@ -37,8 +37,8 @@
|
||||
renderer.setSize(window.innerWidth, window.innerHeight - header_height);
|
||||
document.body.appendChild(renderer.domElement)
|
||||
|
||||
// Explicitly create a ForgeRenderer in the scene to spawn new viewpoints
|
||||
const forge = new ForgeRenderer({ renderer });
|
||||
// Explicitly create a SparkRenderer in the scene to spawn new viewpoints
|
||||
const spark = new SparkRenderer({ renderer });
|
||||
|
||||
const splatURL = await getAssetFileURL("butterfly.spz");
|
||||
const butterfly = new SplatMesh({ url: splatURL });
|
||||
@@ -52,7 +52,7 @@
|
||||
const height = 240;
|
||||
const screen = new THREE.Mesh(
|
||||
new THREE.PlaneGeometry(0.5 * camera.near, 0.5 * camera.near * height / width),
|
||||
new THREE.MeshBasicMaterial({ map: ForgeViewpoint.EMPTY_TEXTURE }),
|
||||
new THREE.MeshBasicMaterial({ map: SparkViewpoint.EMPTY_TEXTURE }),
|
||||
);
|
||||
screen.position.set(screenPos.x, screenPos.y, -1).multiplyScalar(camera.near);
|
||||
scene.add(screen);
|
||||
@@ -88,7 +88,7 @@
|
||||
|
||||
// Spawn a new viewpoint that auto-updates its sort order, double
|
||||
// buffered in case the texture is used recursively in the scene
|
||||
const viewpoint = forge.newViewpoint({
|
||||
const viewpoint = spark.newViewpoint({
|
||||
autoUpdate: true,
|
||||
camera: viewCamera,
|
||||
target: { width, height, doubleBuffer: true },
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Forge • Particle Animation</title>
|
||||
<title>Spark • Particle Animation</title>
|
||||
<style>
|
||||
html, body {
|
||||
margin: 0;
|
||||
@@ -26,18 +26,18 @@
|
||||
"imports": {
|
||||
"three": "/examples/js/vendor/three/build/three.module.js",
|
||||
"lil-gui": "/examples/js/vendor/lil-gui/dist/lil-gui.esm.js",
|
||||
"@forge-gfx/forge": "/dist/forge.module.js"
|
||||
"@sparkjs-dev/spark": "/dist/spark.module.js"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<script type="module">
|
||||
import * as THREE from "three";
|
||||
import {
|
||||
ForgeRenderer,
|
||||
SparkRenderer,
|
||||
PointerControls,
|
||||
SplatMesh,
|
||||
VRButton,
|
||||
} from "@forge-gfx/forge";
|
||||
} from "@sparkjs-dev/spark";
|
||||
import GUI from "lil-gui";
|
||||
import { getAssetFileURL } from "/examples/js/get-asset-url.js";
|
||||
|
||||
@@ -273,8 +273,8 @@
|
||||
renderer.setSize(window.innerWidth, window.innerHeight);
|
||||
document.body.appendChild(renderer.domElement);
|
||||
|
||||
const forge = new ForgeRenderer({ renderer });
|
||||
scene.add(forge);
|
||||
const spark = new SparkRenderer({ renderer });
|
||||
scene.add(spark);
|
||||
|
||||
function handleResize() {
|
||||
const width = window.innerWidth;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Forge • Particle Simulation</title>
|
||||
<title>Spark • Particle Simulation</title>
|
||||
<style>
|
||||
html, body {
|
||||
margin: 0;
|
||||
@@ -19,18 +19,18 @@
|
||||
"imports": {
|
||||
"three": "/examples/js/vendor/three/build/three.module.js",
|
||||
"lil-gui": "/examples/js/vendor/lil-gui/dist/lil-gui.esm.js",
|
||||
"@forge-gfx/forge": "/dist/forge.module.js"
|
||||
"@sparkjs-dev/spark": "/dist/spark.module.js"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<script type="module">
|
||||
import * as THREE from "three";
|
||||
import {
|
||||
ForgeRenderer,
|
||||
SparkRenderer,
|
||||
PointerControls,
|
||||
SplatMesh,
|
||||
generators,
|
||||
} from "@forge-gfx/forge";
|
||||
} from "@sparkjs-dev/spark";
|
||||
import GUI from "lil-gui";
|
||||
import { getAssetFileURL } from "/examples/js/get-asset-url.js";
|
||||
|
||||
@@ -54,8 +54,8 @@
|
||||
renderer.setSize(window.innerWidth, window.innerHeight);
|
||||
document.body.appendChild(renderer.domElement);
|
||||
|
||||
const forge = new ForgeRenderer({ renderer });
|
||||
scene.add(forge);
|
||||
const spark = new SparkRenderer({ renderer });
|
||||
scene.add(spark);
|
||||
|
||||
function handleResize() {
|
||||
const width = window.innerWidth;
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Forge • Procedural Splats</title>
|
||||
<title>Spark • Procedural Splats</title>
|
||||
<style>
|
||||
body {
|
||||
margin: 0;
|
||||
@@ -16,13 +16,13 @@
|
||||
{
|
||||
"imports": {
|
||||
"three": "/examples/js/vendor/three/build/three.module.js",
|
||||
"@forge-gfx/forge": "/dist/forge.module.js"
|
||||
"@sparkjs-dev/spark": "/dist/spark.module.js"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<script type="module">
|
||||
import * as THREE from "three";
|
||||
import { ForgeControls, SplatMesh, constructGrid, constructAxes, textSplats, imageSplats } from "@forge-gfx/forge";
|
||||
import { SparkControls, SplatMesh, constructGrid, constructAxes, textSplats, imageSplats } from "@sparkjs-dev/spark";
|
||||
import { getAssetFileURL } from "/examples/js/get-asset-url.js";
|
||||
|
||||
const scene = new THREE.Scene();
|
||||
@@ -114,7 +114,7 @@
|
||||
image.position.set(-0.5, -1, -2);
|
||||
scene.add(image);
|
||||
|
||||
const controls = new ForgeControls({ canvas: renderer.domElement });
|
||||
const controls = new SparkControls({ canvas: renderer.domElement });
|
||||
|
||||
renderer.setAnimationLoop(function animate(time) {
|
||||
controls.update(camera);
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Forge • Raycasting</title>
|
||||
<title>Spark • Raycasting</title>
|
||||
<style>
|
||||
body {
|
||||
margin: 0;
|
||||
@@ -26,13 +26,13 @@
|
||||
{
|
||||
"imports": {
|
||||
"three": "/examples/js/vendor/three/build/three.module.js",
|
||||
"@forge-gfx/forge": "/dist/forge.module.js"
|
||||
"@sparkjs-dev/spark": "/dist/spark.module.js"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<script type="module">
|
||||
import * as THREE from "three";
|
||||
import { SplatMesh, PackedSplats } from "@forge-gfx/forge";
|
||||
import { SplatMesh, PackedSplats } from "@sparkjs-dev/spark";
|
||||
import { getAssetFileURL } from "/examples/js/get-asset-url.js";
|
||||
|
||||
const scene = new THREE.Scene();
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Forge • Viewer</title>
|
||||
<title>Spark • Viewer</title>
|
||||
<style>
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
@@ -38,7 +38,7 @@
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.forge-canvas {
|
||||
.spark-canvas {
|
||||
display: block;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
@@ -179,22 +179,22 @@
|
||||
"imports": {
|
||||
"three": "/examples/js/vendor/three/build/three.module.js",
|
||||
"three/addons/": "/examples/js/vendor/three/examples/jsm/",
|
||||
"@forge-gfx/forge": "/dist/forge.module.js"
|
||||
"@sparkjs-dev/spark": "/dist/spark.module.js"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<script type="module">
|
||||
import * as THREE from "three";
|
||||
import { SplatMesh, transcodeSpz } from "@forge-gfx/forge";
|
||||
import { SplatMesh, transcodeSpz } from "@sparkjs-dev/spark";
|
||||
import { OrbitControls } from "three/addons/controls/OrbitControls.js";
|
||||
|
||||
const forgeCanvasEl = document.querySelector(".forge-canvas");
|
||||
const sparkCanvasEl = document.querySelector(".spark-canvas");
|
||||
const scene = new THREE.Scene();
|
||||
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
|
||||
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.01, 1000);
|
||||
camera.position.set(0, 0, 1);
|
||||
const renderer = new THREE.WebGLRenderer({canvas: forgeCanvasEl});
|
||||
const width = forgeCanvasEl.clientWidth;
|
||||
const height = forgeCanvasEl.clientHeight;
|
||||
const renderer = new THREE.WebGLRenderer({canvas: sparkCanvasEl});
|
||||
const width = sparkCanvasEl.clientWidth;
|
||||
const height = sparkCanvasEl.clientHeight;
|
||||
var fileName;
|
||||
var fileBytes;
|
||||
renderer.setSize(width, height, false);
|
||||
@@ -250,13 +250,13 @@
|
||||
};
|
||||
|
||||
dropZoneEl.addEventListener('dragover', onDragover);
|
||||
forgeCanvasEl.addEventListener('dragover', onDragover);
|
||||
sparkCanvasEl.addEventListener('dragover', onDragover);
|
||||
|
||||
dropZoneEl.addEventListener('dragleave', onDragLeave);
|
||||
forgeCanvasEl.addEventListener('dragleave', onDragLeave);
|
||||
sparkCanvasEl.addEventListener('dragleave', onDragLeave);
|
||||
|
||||
dropZoneEl.addEventListener('drop', onDrop);
|
||||
forgeCanvasEl.addEventListener('drop', onDrop);
|
||||
sparkCanvasEl.addEventListener('drop', onDrop);
|
||||
|
||||
const fileInput = document.querySelector('#file-input');
|
||||
fileInput.onchange = function(event) {
|
||||
@@ -332,7 +332,7 @@
|
||||
</script>
|
||||
<div class="canvas-container invisible">
|
||||
<div class="logo">
|
||||
<a href="/"><img src="forge-logo.svg" alt="Forge Logo" /></a>
|
||||
<a href="/"><img src="spark-logo.svg" alt="Spark Logo" /></a>
|
||||
</div>
|
||||
<button class="spz-button">
|
||||
<span class="icon" aria-hidden="true">
|
||||
@@ -341,12 +341,12 @@
|
||||
<span class="label">.spz</span>
|
||||
</button>
|
||||
</button>
|
||||
<canvas class="forge-canvas"></canvas>
|
||||
<canvas class="spark-canvas"></canvas>
|
||||
</div>
|
||||
<div class="container">
|
||||
<div class="drop-container">
|
||||
<div class="hero-logo">
|
||||
<a href="/"><img src="forge-viewer.svg" alt="Forge Viewer Logo" /></a>
|
||||
<a href="/"><img src="spark-viewer.svg" alt="Spark Viewer Logo" /></a>
|
||||
</div>
|
||||
<div class="drop-zone">Drag and drop a splat file here</div>
|
||||
<label for="file-input" class="button upload"><img class="upload-icon" src="upload-icon.svg" alt="upload" />Choose file</label>
|
||||
|
||||
|
Before Width: | Height: | Size: 689 B After Width: | Height: | Size: 689 B |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |