mago-3d-tiler
mago-3d-tiler copied to clipboard
Facing issue in generating 3Dtiles (b3dm) from GLB and glTF
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?
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.
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
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?