Comments (6)
@yufeng1103 I'm not sure if you're still interested, but I just released a version that supports loading multiple splats simultaneously via the Viewer.loadFiles()
function: v0.1.3
from gaussiansplats3d.
@yufeng1103 I'm not sure if you're still interested, but I just released a version that supports loading multiple splats simultaneously via the
Viewer.loadFiles()
function: v0.1.3
Great job, I just saw your reply, it's a big improvement
from gaussiansplats3d.
I have never tried to load more than one .splat
scene at a time, and my immediate guess is that it won't work correctly simply because it is not currently designed to work that way. Ultimately I plan on adding support for loading &viewing multiple .splat
files simultaneously. Can you share your code and maybe I can see if there's a quick work-around in the mean-time?
from gaussiansplats3d.
Yeah,Due to the urgent need to implement the rendering effects of two splats, I have only made simple modifications to your code as follows
const group = new THREE.Group();
const viewer = new GaussianSplats3D.Viewer({
'cameraUp': [0, -1, -0.54],
'initialCameraPosition': [-3.15634, -0.16946, -0.51552],
'initialCameraLookAt': [1.52976, 2.27776, 1.65898],
'group': group
});
viewer.init();
let path = 'assets/data/garden/garden';
path += isMobile() ? '.splat' : '_high.splat';
viewer.loadFile(path, {
'halfPrecisionCovariancesOnGPU': true
})
.then(() => {
path = 'assets/data/garden/pingzi_high.splat';
viewer.loadFile(path, {
'halfPrecisionCovariancesOnGPU': false
}).then(() => {
group.children[1].position.set(0,1.3,-0.5);
group.children[1].scale.set(0.3,0.3,0.3);
viewer.start();
});
});
;
this.splatMesh = SplatMesh.buildMesh(splatBuffer, splatAlphaRemovalThreshold, halfPrecisionCovariancesOnGPU);
this.splatMesh.position.copy(position);
this.splatMesh.quaternion.copy(quaternion);
this.splatMesh.frustumCulled = false;
this.splatMesh.renderOrder = 10;
this.group.add(this.splatMesh);
this.updateSplatMeshUniforms();
this.renderer.render(this.group, this.camera);
It seems that I just loaded it in and didn't do any other work,
from gaussiansplats3d.
Right now when you load a splat mesh into the viewer via loadFile()
, it stores that mesh internally using a single member variable (above it is this.splatMesh
). So when you load a second splat file, the first one gets overwritten. That's why in the above screen shots you're only seeing the second splat mesh render correctly. There really isn't a great way to force the viewer to support multiple simultaneous splat meshes right now. You might try creating two instances of Viewer
and passing in your own three.js renderer with autoClear
set to false because Viewer.render()
clears the screen before rendering. It still won't look quite right because the splats for each scene would be sorted separately.
from gaussiansplats3d.
Thank you for your suggestion. I will continue to try
from gaussiansplats3d.
Related Issues (20)
- Issue using the import npm package HOT 5
- Render SplatScenes separate HOT 2
- Spherical harmonics get corrupted farther from the origin HOT 6
- Loading Issues with Cached Splats? HOT 3
- Clipping Planes with Gaussian Splats HOT 4
- How to add Raycaster support for THREE.js objects? HOT 6
- Model rendering does not work in browsers on iOS versions below 16.4 HOT 9
- Adding 3DGS model(s) on demand HOT 6
- Camera positions HOT 4
- Certain 3DGS models cause crashes on iOS browsers HOT 4
- my splat is rotating in vertical plane of my screen HOT 8
- NextJS Issue HOT 2
- Object Detection HOT 1
- The CPU memory usage reaches approximately 800MB after running a 320MB PLY file. HOT 6
- pick up intersection points using ray HOT 3
- Load a splat model stored on remote server? HOT 11
- RemoveSplatScene is never done if there is only one scene. HOT 5
- Are there currently any APIs provided to obtain this signal when artifacts disappear? HOT 1
- how to roam around in a room unable to zoom upto the mark HOT 2
- Problem with semi-transparent mesh geometry HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gaussiansplats3d.