mago-3d-tiler icon indicating copy to clipboard operation
mago-3d-tiler copied to clipboard

Facing issue in generating 3Dtiles (b3dm) from GLB and glTF

Open yash-154 opened this issue 11 months ago • 3 comments

While generating 3D tiles From GLB and gltf format there is only Tileset.json file Data folder which contains .b3Dm is missing. where as when i change input to .shp (shapefile) its generating that folder as well as tileset.json files.

Am i missing something here?

Screenshot 2024-03-15 102547

yash-154 avatar Mar 15 '24 04:03 yash-154

Missing files are usually caused by errors in the files during generation or incorrect CRS options, so I think you'll need more details to answer. I would appreciate it if you could point me to the input files, commands and logs.

znkim avatar Mar 16 '24 14:03 znkim

Below is the screenshot of my input files i have taken gltf and these are commands and logs for the same

C:\Users\GIS\Desktop\mago 3d\mago-3d-tiler-main\tiler\dist>java -jar mago-3d-tiler-1.4.4-natives-windows.jar --input "C:\Users\GIS\Desktop\mago 3d\data\PCMC_GLB\PCMC_GLB.gltf" --inputType gltf -c 4326 -aa --o utput "C:\Users\GIS\Desktop\mago 3d\3D tiles\glb_tiles" WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance.

ΓöîΓö¼ΓöÉΓöîΓöÇΓöÉΓöîΓöÇΓöÉΓöîΓöÇΓöÉ -ΓöÉΓöîΓö¼ΓöÉ ΓöîΓö¼ΓöÉΓö¼Γö¼ ΓöîΓöÇΓöÉΓö¼ΓöÇΓöÉ ΓöéΓöéΓöéΓö£ΓöÇΓöñΓöé Γö¼Γöé Γöé -Γöñ ΓöéΓöé Γöé ΓöéΓöé Γö£Γöñ Γö£Γö¼Γöÿ Γö┤ Γö┤Γö┤ Γö┤ΓööΓöÇΓöÿΓööΓöÇΓöÿ -Γöÿ-Γö┤Γöÿ Γö┤ Γö┤Γö┤ΓöÇΓöÿΓööΓöÇΓöÿΓö┤ΓööΓöÇ 3d-tiler(1.4.4) by Gaia3d, Inc.

Starting process flow: BatchedProcessModel [Pre] Created temp directory in C:\Users\GIS\Desktop\mago 3d\3D tiles\glb_tiles\temp [Pre] Start the pre-processing. [Pre] Loading all files. [Pre] Finished loading all files [Pre] Total file count : 1 Embedded Texture: PCMC_GLB_extracted_0.png [Pre][1/1] Loading file : PCMC_GLB.gltf [Pre][1/1][1/1] Loading tiles from file. source java.lang.NullPointerException: source at java.base/java.util.Objects.requireNonNull(Objects.java:259) at org.apache.commons.io.FileUtils.requireExistsChecked(FileUtils.java:2717) at org.apache.commons.io.FileUtils.requireFileCopy(FileUtils.java:2751) at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:840) at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:756) at com.gaia3d.basic.exchangable.GaiaSet.writeFile(GaiaSet.java:114) at com.gaia3d.process.preprocess.GaiaMinimizer.run(GaiaMinimizer.java:22) at com.gaia3d.process.TilingPipeline.lambda$startPreProcesses$0(TilingPipeline.java:94) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:577) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) at java.base/java.lang.Thread.run(Thread.java:1589) [Pre] Total Node Count 1, Auto Node limit : 1024 [Pre] End the pre-processing. [Tiling] Start the tiling process. [Tiling] Writing tileset file. [Tiling][ContentNode][RC0][LOD3][OBJECT1] [Tiling][ContentNode][RC00][LOD2][OBJECT1] [Tiling][ContentNode][RC000][LOD1][OBJECT1] [Tiling][ContentNode][RC0000][LOD0][OBJECT1] [Tiling][Tileset] write 'tileset.json' file. [Tiling] End the tiling process. [Post] Start the post-processing. [Post][3/4] post-process in progress. : RC000 [Post][2/4] post-process in progress. : RC00 [Post][4/4] post-process in progress. : RC0000 [Post][1/4] post-process in progress. : RC0 java.io.EOFException at java.base/java.io.DataInputStream.readInt(DataInputStream.java:398) at com.gaia3d.basic.structure.GaiaMaterial.read(GaiaMaterial.java:152) at com.gaia3d.basic.exchangable.GaiaSet.readFile(GaiaSet.java:143) at com.gaia3d.basic.exchangable.GaiaSet.(GaiaSet.java:59) at com.gaia3d.process.tileprocess.tile.TileInfo.maximize(TileInfo.java:89) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at com.gaia3d.process.postprocess.GaiaMaximizer.run(GaiaMaximizer.java:17) at com.gaia3d.process.TilingPipeline.lambda$startPostProcesses$2(TilingPipeline.java:179) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:577) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) at java.base/java.lang.Thread.run(Thread.java:1589) java.io.EOFException null at java.base/java.io.DataInputStream.readInt(DataInputStream.java:398) at com.gaia3d.basic.structure.GaiaMaterial.read(GaiaMaterial.java:152) at com.gaia3d.basic.exchangable.GaiaSet.readFile(GaiaSet.java:143) at com.gaia3d.basic.exchangable.GaiaSet.(GaiaSet.java:59) at com.gaia3d.process.tileprocess.tile.TileInfo.maximize(TileInfo.java:89) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at com.gaia3d.process.postprocess.GaiaMaximizer.run(GaiaMaximizer.java:17) at com.gaia3d.process.TilingPipeline.lambda$startPostProcesses$2(TilingPipeline.java:179) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:577) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) at java.base/java.lang.Thread.run(Thread.java:1589) java.io.EOFException null at java.base/java.io.DataInputStream.readInt(DataInputStream.java:398) at com.gaia3d.basic.structure.GaiaMaterial.read(GaiaMaterial.java:152) at com.gaia3d.basic.exchangable.GaiaSet.readFile(GaiaSet.java:143) at com.gaia3d.basic.exchangable.GaiaSet.(GaiaSet.java:59) at com.gaia3d.process.tileprocess.tile.TileInfo.maximize(TileInfo.java:89) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at com.gaia3d.process.postprocess.GaiaMaximizer.run(GaiaMaximizer.java:17) at com.gaia3d.process.TilingPipeline.lambda$startPostProcesses$2(TilingPipeline.java:179) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:577) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) at java.base/java.lang.Thread.run(Thread.java:1589) java.io.EOFException null at java.base/java.io.DataInputStream.readInt(DataInputStream.java:398) at com.gaia3d.basic.structure.GaiaMaterial.read(GaiaMaterial.java:152) at com.gaia3d.basic.exchangable.GaiaSet.readFile(GaiaSet.java:143) at com.gaia3d.basic.exchangable.GaiaSet.(GaiaSet.java:59) at com.gaia3d.process.tileprocess.tile.TileInfo.maximize(TileInfo.java:89) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at com.gaia3d.process.postprocess.GaiaMaximizer.run(GaiaMaximizer.java:17) at com.gaia3d.process.TilingPipeline.lambda$startPostProcesses$2(TilingPipeline.java:179) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:577) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) at java.base/java.lang.Thread.run(Thread.java:1589) null [Post] End the post-processing.

End Process Time : 1s 87ms Total tile contents count : 4 Total 'tileset.json' File Size : 1KB

image

yash-154 avatar Mar 26 '24 06:03 yash-154

Hello, @yash-154 After checking the logs and the content, it seems to be a path error when reading textures from gltf file. This hotfix fixed this and similar cases, so it might be resolved in the new version. However, it could also be an issue with the file itself, so I need to check the data itself. If it doesn't work after patching, can you provide a sample file?

znkim avatar Apr 01 '24 04:04 znkim