NASA-AMMOS / 3DTilesRendererJS

Renderer for 3D Tiles in Javascript using three.js
https://nasa-ammos.github.io/3DTilesRendererJS/example/bundle/mars.html
Apache License 2.0
1.46k stars 265 forks source link

Only JSON file loaded, no 3D model file loaded,Please help me take a look #593

Closed zhu-gang closed 1 week ago

zhu-gang commented 1 week ago

image

here is my code: function load3Dtitle() { // let url = '/model/3dtitle-20240626-1/tileset.json' // let url = '/model/fbx/tileset.json' // let url = '/model/data/tileset.json' let url = '/model/fbx-title/tileset.json' const tilesRenderer = new TilesRenderer(url); tilesRenderer.setCamera(camera); tilesRenderer.setResolutionFromRenderer(camera, renderer); tilesRenderer.addEventListener( 'load-tile-set', () => { // optionally center the tile set in case it's far off center const sphere = new THREE.Sphere(); tilesRenderer.getBoundingSphere( sphere ); tilesRenderer.position.copy( sphere.center ).multiplyScalar( - 1 ); } ); tilesRenderer.onLoadModel = function ( scene ) { // create a custom material for the tile // console.log(scene) // scene.traverse( c => { // if ( c.material ) { // c.originalMaterial = c.material; // c.material = new MeshBasicMaterial(); // } // } ); }; tilesRenderer.onDisposeModel = function ( scene ) { // dispose of any manually created materials scene.traverse( c => { if ( c.material ) { c.material.dispose(); } } ); }; scene.add(tilesRenderer.group); renderLoop() function renderLoop() { requestAnimationFrame(renderLoop); // The camera matrix is expected to be up to date // before calling tilesRenderer.update camera.updateMatrixWorld(); tilesRenderer.update(); renderer.render(scene, camera); } } fbx-title.zip

Below is the error message: image image

gkjohnson commented 1 week ago

There is no tilesRenderer.position property - I see there is a mistake in the documentation. This line should be

tilesRenderer.group.position.copy( sphere.center ).multiplyScalar( - 1 );

I've updated the docs in 2e0c4e0. Thanks for the report!