diff --git a/docs/docs/forge-viewpoint.md b/docs/docs/forge-viewpoint.md index fce6a6e..b9c0e78 100644 --- a/docs/docs/forge-viewpoint.md +++ b/docs/docs/forge-viewpoint.md @@ -53,7 +53,7 @@ Call this when you are done with the `ForgeViewpoint` and want to free up its re Use this function to change whether this viewpoint will auto-update its sort order whenever the attached `ForgeRenderer` updates the splats. Turn this on or off depending on whether you expect to do renders from this viewpoint for most frames. -## `async prepareRenderPixels({ scene, camera?, viewToWOrld?, update?, forceOrigin? })` +## `async prepareRenderPixels({ scene, camera?, viewToWorld?, update?, forceOrigin? })` Render out a viewpoint as a Uint8Array of RGBA values for the provided scene and any `camera`/`viewToWorld` viewpoint overrides. By default `update` is `true`, which triggers its `ForgeRenderer` to check and potentially update the splats. Setting `update` to `false` disables this and sorts the splats as they are. Setting `forceOrigin` (default: `false`) to `true` forces the view update to recalculate the splats with this view origin, potentially altering any view-dependent effects. If you expect view-dependent effects to play a role in the rendering quality, enable this. diff --git a/docs/docs/loading-splats.md b/docs/docs/loading-splats.md index 8977878..964a86d 100644 --- a/docs/docs/loading-splats.md +++ b/docs/docs/loading-splats.md @@ -66,10 +66,10 @@ These formats cannot be reliably auto-detected from the file contents, so we use First, the auto-detection fails on these files, which triggers file type inference via URL/path file extension. If the URL contains the `.splat` or `.ksplat` extensions (stripping out query parameters etc.), we set the corresponding file type. ```javascript -const splats = new SplatMesh({ url: "./butterfly.splats" }); +const splats = new SplatMesh({ url: "./butterfly.splat" }); scene.add(splats); -const ksplats = new SplatMesh({ url: "./butterfly.ksplats" }); +const ksplats = new SplatMesh({ url: "./butterfly.ksplat" }); scene.add(ksplats); ``` diff --git a/docs/docs/overview.md b/docs/docs/overview.md index 18fde0e..347de17 100644 --- a/docs/docs/overview.md +++ b/docs/docs/overview.md @@ -8,9 +8,9 @@ The web's most popular 3D graphics library THREE.js, can't render 3DGS directly. ## Forge -Forge is a dynamic 3DGS renderer built for THREE.js and WebGL2 that runs in any web browser (desktop, mobile, and WebXR). With a handful of lines of code, anyone using THREE.js can easily add 3DGS to their scenes (even by vibe coding!). By creating one or more `SplatMesh` objects and adding them to your scene, Forge will render these alongside traditional triangle-based meshes during your regular `render(scene, camera)` call. `SplatMesh` derives from `THREE.Object3D` and can be translated and rotated like any other object, placed arbitrarily in the scene hierarchy, and animated by adjusting the values each frame. A `SplatMesh` can be created from most splat file formats via the `url` parameter or by directly creting the splats one by one. +Forge is a dynamic 3DGS renderer built for THREE.js and WebGL2 that runs in any web browser (desktop, mobile, and WebXR). With a handful of lines of code, anyone using THREE.js can easily add 3DGS to their scenes (even by vibe coding!). By creating one or more `SplatMesh` objects and adding them to your scene, Forge will render these alongside traditional triangle-based meshes during your regular `render(scene, camera)` call. `SplatMesh` derives from `THREE.Object3D` and can be translated and rotated like any other object, placed arbitrarily in the scene hierarchy, and animated by adjusting the values each frame. A `SplatMesh` can be created from most splat file formats via the `url` parameter or by directly creating the splats one by one. -3DGS is still in its infancy, and we expect new techniques will be developed for recoloring/relighting, animation, transitions, and other creative or interactive effects. We designed Forge to be a programmable splat engine from the ground up, giving you unprecendented control over how individual splats are generated, animated, and rendered into the scene. Similar to shader graph systems in modern 3D graphics engines, Forge allows you to compose blocks of functions (called `Dyno`s) into computation graphs that can generate splats procedurally, modify them arbirarily, or anything other computation you can imagine, and will be converted to GLSL to run on the GPU. +3DGS is still in its infancy, and we expect new techniques will be developed for recoloring/relighting, animation, transitions, and other creative or interactive effects. We designed Forge to be a programmable splat engine from the ground up, giving you unprecedented control over how individual splats are generated, animated, and rendered into the scene. Similar to shader graph systems in modern 3D graphics engines, Forge allows you to compose blocks of functions (called `Dyno`s) into computation graphs that can generate splats procedurally, modify them arbirarily, or anything other computation you can imagine, and will be converted to GLSL to run on the GPU. ## Features - Integrates with THREE.js rendering pipeline to fuse splat and mesh-based objects diff --git a/docs/docs/splat-mesh.md b/docs/docs/splat-mesh.md index 7288465..303d2a3 100644 --- a/docs/docs/splat-mesh.md +++ b/docs/docs/splat-mesh.md @@ -44,7 +44,7 @@ scene.add(splats); You can create a `new SplatMesh()` with no options, which will create a new default instance with `.numSplats=0`. Alternatively, you can provide an input `url` to fetch and decode, `fileBytes`, or `packedSplats` (an existing collection of "packed" splats). Forge supports most splat file types, including .ply (including SuperSplat compressed), .splat, .ksplat, .spz. To load filetypes .splat and .ksplat (which can't be reliably auto-detected), use the optional `fileType` argument. -Constructor argument callbacks can be used like `constructSplats` to create a collection of splats procedurally at initialization, `onLoad` when loading and initialization completes, `onFrame` to update state every frame. Splat effects can be injected into the standard splat processinng pipeline that operate in object-space and world-space via `objectModifier` and `worldModifier` respectively. +Constructor argument callbacks can be used like `constructSplats` to create a collection of splats procedurally at initialization, `onLoad` when loading and initialization completes, `onFrame` to update state every frame. Splat effects can be injected into the standard splat processing pipeline that operate in object-space and world-space via `objectModifier` and `worldModifier` respectively. | **Parameter** | Description | | ----------------- | ----------- |