gaia3d / mago-3d-tiler Goto Github PK
View Code? Open in Web Editor NEWThis is the official repository of mago-3d-tiler.
Home Page: https://seoul.gaia3d.com:10903/
License: Mozilla Public License 2.0
This is the official repository of mago-3d-tiler.
Home Page: https://seoul.gaia3d.com:10903/
License: Mozilla Public License 2.0
Hi,
I have laz files with no RGB, only Intensity and Classification attribute. When I try to process the files I get this error:
Exception in thread "main" java.lang.NullPointerException: Cannot read field "R" because "rgbRecord" is null
Command that I am using is:
java -jar mago-3d-tiler-1.3.0-natives-linux.jar --input /in/RH_W15_fixed -it laz -c 3765 --output /out/RH_W15_fixed/mago_test
Thank you.
Hello,
I am trying to generate b3dm 3d tiles for las data using mago-3d-tiler for that I am using following command: -
root@NTPL-PC-083:/home/rajnish/Desktop/Sanskardham/mago_3d# java -jar mago-3d-tiler-1.6.4-natives-linux.jar -i las/pcmc_building.las -it las -o las/output/ -ot b3dm
It is not generating 3d tiles in b3dm format, along with json.
What modifications can be done in above command or is there any dependency issue, if there is any dependency issue then how to solve the issue.
Thanks in advance.
우선 흥미로운 프로젝트를 공개해 주셔서 감사합니다.
테스트 과정중에서 생성되는 타일의 용량이 400Mb 가까이 생성되고 있어서 실행 옵션등의 설정이 따로 있나 문의 드립니다.
source : OBJ 273Mb
실행 옵션
-aa
-mt
-nl 0
-xl 6
--crs 5186
--inputType OBJ
┌┬┐┌─┐┌─┐┌─┐ ┌┬┐┬┬ ┌─┐┬─┐
│││├─┤│ ┬│ │───│ ││ ├┤ ├┬┘
┴ ┴┴ ┴└─┘└─┘ ┴ ┴┴─┘└─┘┴└─
3d-tiler(1.3.0) by Gaia3d, Inc.
JAVA Version : 17 (Oracle Corporation)
Hello,
i saw the lines bellow in LevelOfDetial.java
public enum LevelOfDetail {
NONE(-1,0, 0, 1.0f, new float[]{1.0f, 1.0f, 1.0f}),
LOD0(0,0,0, 1.0f, new float[]{1.0f, 0.4f, 0.4f}),
LOD1(1, 2, 8, 0.5f, new float[]{0.4f, 1.0f, 0.4f}),
LOD2(2, 4, 50, 0.25f, new float[]{0.4f, 0.4f, 1.0f}),
LOD3(3, 8, 120, 0.125f, new float[]{1.0f, 1.0f, 0.4f}),
LOD4(4, 16, 180, 0.0625f, new float[]{0.4f, 1.0f, 1.0f}),
LOD5(5, 32, 240, 0.03125f, new float[]{1.0f, 0.4f, 1.0f}),
LOD6(6, 64, 300, 0.01625f, new float[]{1.0f, 1.0f, 1.0f});
for example, LOD6(6, 64, 300, 0.01625f, new float[]{1.0f, 1.0f, 1.0f})
would you tell me about the meaning of each parameter?
and more, if I add the value above LOD6 , is it meaningful doing?
thank you.
Hello,
I am trying to use latest released version v1.7.0 to generate 3d tiles for underground pipe utilities, I have shapefile data for pipelines, and I am using following command to generate b3dm 3d tiles from shapefile: -
root@NTPL-PC-083:/home/rajnish/Desktop/Sanskardham/mago_3d_new_pieline# java -jar mago-3d-tiler-1.7.0-natives-linux.jar -i gas_pipeLines.shp -o output/ -ot b3dm -c 32643
However it is not generating tiles, what modifications can be done in above command or are there any other modifications on system side that can be done to generate 3d tiles.
Hello, znkim
i heard that when creating 3D tiling, the draco or ktx2 compression algorithm can reduce the file size and network loading.
so, i tested it with another 3D tiling creation program with ktx2 + draco compression options, the result of the file size was reduced by 3/1.
is there a process for texture image compressions while creating a 3d tileing b3dm files in mago-3d-tiler?
If do compressing images in Mago-3D-tiler, what method are using?
If there is no compression function currently, do you plan to support this function in the future?
thank you.
Currently working on Underground Utilities for creation of 3D pipes. For that shapefile, height and diameter attribute is required. Your tool has height attribute but not diameter attribute. What would be the possible solution for this?
Bug Description:
When generating 3D tiles (b3dm) using the following command:
java -jar mago-3d-tiler-1.4.4-natives-linux.jar --input /home/santosh/Downloads/pcmc_ward13/pcmc_ward13_4326.shp --inputType shp -c 4326 -aa -ac B_Height_m --output /home/santosh/Downloads/pcmc_ward13/tiles/
The 3D tiles are successfully generated; however, upon closer inspection, it appears that out of the six faces, three front faces are missing in most of the features. This issue is affecting the visual representation of the generated 3D tiles.
Steps to Reproduce:
Execute the provided command to generate 3D tiles.
Inspect the generated tiles, focusing on the front faces of the features.
Expected Result:
All six faces of the generated 3D tiles should be present, providing a complete and accurate representation of the features.
Actual Result:
In most cases, three front faces are missing, leading to an incomplete rendering of the features.
Additional Information:
mago-3d-tiler version: 1.4.4
Operating System: Ubuntu 20.4
Please find attached images for your reference and zip file containing sample shapefile to be used with above command
sample_data.zip
테리언 파일에 따라 건물의 해발고를 설정할 수 있습니까?
Hello,
I am trying to generate the 3d tiles from shapefile data, for that I am using following command,
root@admin1-B250M-DS3H:/home/akshay/Desktop/mago_3d_tiler# java -jar mago-3d-tiler-1.7.0-natives-linux.jar -i road_centerline/road_centerline/road_centerline.shp -it shp -o road_3d -ot b3dm -rc radius -c 32643 -d
I have radius column which I have mentioned in -rc argument and I want to generate 3d pipeline with respect to radius value for each pipe. Although this command is running and is generating tileset.json in the output directory, but it is not generating b3dm tiles.
what changes should I do in the above command in order to generate the complete output that I can render using cesium. Or is there any dependency issue that I need to check for.
Please guide.
Thanks in advance.
Hello,
I tried to convert an ifc file using mago-3d-tiler, but the tiles were not outputting, so I used the debug option.
However, when I run the program, I get the following exception error.
ExecutionException: java.util.concurrent.ExecutionException: java.lang.NullPointerException: Cannot invoke
“org.lwjgl.assimp.AIScene.mRootNode()” because “ aiScene” is null
The error seems to be about aiScene, but the error did not occur in the glb file conversion.
Ifc,fbx,shp will result in an exception error.
Test data can be downloaded from the following URL:
https://drive.google.com/file/d/1IzBTdZlaJs7V3U8JVXjBpEBOdklOKgVy/view?usp=sharing
PS C:\work\3ddb\mago3dtiler> docker run --rm -v "${PWD}/workspace:/workspace" gaia3d/mago-3d-tiler --debug -it ifc -i /workspace/ifc -o /workspace/output -l /workspace/log.log
>>
[INFO][09:49:28][mago.Mago3DTilerMain(printStart:73)]::
┳┳┓┏┓┏┓┏┓ ┏┓┳┓ ┏┳┓┳┓ ┏┓┳┓
┃┃┃┣┫┃┓┃┃ ┫┃┃ ┃ ┃┃ ┣ ┣┫
┛ ┗┛┗┗┛┗┛ ┗┛┻┛ ┻ ┻┗┛┗┛┛┗
3d-tiler(dev-version) by Gaia3D, Inc.
----------------------------------------
[DEBUG][09:49:28][mago.GlobalOptions(printDebugOptions:319)]::========================================
[DEBUG][09:49:28][mago.GlobalOptions(printDebugOptions:320)]::inputPath: /workspace/ifc
[DEBUG][09:49:28][mago.GlobalOptions(printDebugOptions:321)]::outputPath: /workspace/output
[DEBUG][09:49:28][mago.GlobalOptions(printDebugOptions:322)]::inputFormat: IFC
[DEBUG][09:49:28][mago.GlobalOptions(printDebugOptions:323)]::outputFormat: B3DM
[DEBUG][09:49:28][mago.GlobalOptions(printDebugOptions:324)]::terrainPath: null
[DEBUG][09:49:28][mago.GlobalOptions(printDebugOptions:325)]::instancePath: /workspace/ifc/instance.dae
[DEBUG][09:49:28][mago.GlobalOptions(printDebugOptions:326)]::logPath: /workspace/log.log
[DEBUG][09:49:28][mago.GlobalOptions(printDebugOptions:327)]::crs: null
[DEBUG][09:49:28][mago.GlobalOptions(printDebugOptions:328)]::proj: null
[DEBUG][09:49:28][mago.GlobalOptions(printDebugOptions:329)]::tileCount: 0
[DEBUG][09:49:28][mago.GlobalOptions(printDebugOptions:330)]::fileCount: 0
[DEBUG][09:49:28][mago.GlobalOptions(printDebugOptions:331)]::pointLimit: 65536
[DEBUG][09:49:28][mago.GlobalOptions(printDebugOptions:332)]::pointScale: 2
[DEBUG][09:49:28][mago.GlobalOptions(printDebugOptions:333)]::pointSkip: 4
[DEBUG][09:49:28][mago.GlobalOptions(printDebugOptions:334)]::nodeLimit: -1
[DEBUG][09:49:28][mago.GlobalOptions(printDebugOptions:335)]::minLod: 0
[DEBUG][09:49:28][mago.GlobalOptions(printDebugOptions:336)]::maxLod: 3
[DEBUG][09:49:28][mago.GlobalOptions(printDebugOptions:337)]::debug: true
[DEBUG][09:49:28][mago.GlobalOptions(printDebugOptions:338)]::debugLod: false
[DEBUG][09:49:28][mago.GlobalOptions(printDebugOptions:339)]::glb: false
[DEBUG][09:49:28][mago.GlobalOptions(printDebugOptions:340)]::classicTransformMatrix: false
[DEBUG][09:49:28][mago.GlobalOptions(printDebugOptions:341)]::multiThreadCount: 7
[DEBUG][09:49:28][mago.GlobalOptions(printDebugOptions:342)]::recursive: false
[DEBUG][09:49:28][mago.GlobalOptions(printDebugOptions:343)]::yUpAxis: false
[DEBUG][09:49:28][mago.GlobalOptions(printDebugOptions:344)]::refineAdd: false
[DEBUG][09:49:28][mago.GlobalOptions(printDebugOptions:345)]::flipCoordinate: false
[DEBUG][09:49:28][mago.GlobalOptions(printDebugOptions:346)]::zeroOrigin: false
[DEBUG][09:49:28][mago.GlobalOptions(printDebugOptions:347)]::autoUpAxis: false
[DEBUG][09:49:28][mago.GlobalOptions(printDebugOptions:348)]::ignoreTextures: false
[DEBUG][09:49:28][mago.GlobalOptions(printDebugOptions:349)]::nameColumn: name
[DEBUG][09:49:28][mago.GlobalOptions(printDebugOptions:350)]::heightColumn: height
[DEBUG][09:49:28][mago.GlobalOptions(printDebugOptions:351)]::altitudeColumn: altitude
[DEBUG][09:49:28][mago.GlobalOptions(printDebugOptions:352)]::absoluteAltitude: 0.0
[DEBUG][09:49:28][mago.GlobalOptions(printDebugOptions:353)]::minimumHeight: 1.0
[DEBUG][09:49:28][mago.GlobalOptions(printDebugOptions:354)]::skirtHeight: 4.0
[DEBUG][09:49:28][mago.GlobalOptions(printDebugOptions:355)]::========================================
[INFO][09:49:28][mago.Mago3DTiler(execute:23)]::Starting process flow: BatchedProcessModel
[INFO][09:49:28][process.TilingPipeline(startPreProcesses:64)]::[Pre] Start the pre-processing.
[INFO][09:49:28][process.TilingPipeline(startPreProcesses:68)]::[Pre] Loading all files.
[INFO][09:49:28][process.TilingPipeline(startPreProcesses:70)]::[Pre] Finished loading all files
[ERROR][09:49:28][process.TilingPipeline(executeThread:197)]::Failed to execute thread.
java.util.concurrent.ExecutionException: java.lang.NullPointerException: Cannot invoke "org.lwjgl.assimp.AIScene.mRootNode()" because "aiScene" is null
at java.util.concurrent.FutureTask.report(Unknown Source) ~[?:?]
at java.util.concurrent.FutureTask.get(Unknown Source) ~[?:?]
at com.gaia3d.process.TilingPipeline.executeThread(TilingPipeline.java:193) [classes/:?]
at com.gaia3d.process.TilingPipeline.startPreProcesses(TilingPipeline.java:102) [classes/:?]
at com.gaia3d.process.TilingPipeline.process(TilingPipeline.java:50) [classes/:?]
at com.gaia3d.command.BatchedProcessModel.run(BatchedProcessModel.java:64) [classes/:?]
at com.gaia3d.command.mago.Mago3DTiler.execute(Mago3DTiler.java:24) [classes/:?]
at com.gaia3d.command.mago.Mago3DTilerMain.main(Mago3DTilerMain.java:55) [classes/:?]
Caused by: java.lang.NullPointerException: Cannot invoke "org.lwjgl.assimp.AIScene.mRootNode()" because "aiScene" is null
at com.gaia3d.converter.assimp.AssimpConverter.convertScene(AssimpConverter.java:171) ~[classes/:?]
at com.gaia3d.converter.assimp.AssimpConverter.load(AssimpConverter.java:65) ~[classes/:?]
at com.gaia3d.converter.BatchedFileLoader.loadScene(BatchedFileLoader.java:35) ~[classes/:?]
at com.gaia3d.converter.BatchedFileLoader.loadTileInfo(BatchedFileLoader.java:111) ~[classes/:?]
at com.gaia3d.process.TilingPipeline.lambda$startPreProcesses$0(TilingPipeline.java:80) ~[classes/:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[?:?]
at java.util.concurrent.FutureTask.run(Unknown Source) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[?:?]
at java.lang.Thread.run(Unknown Source) ~[?:?]
Exception in thread "main" java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.NullPointerException: Cannot invoke "org.lwjgl.assimp.AIScene.mRootNode()" because "aiScene" is null
at com.gaia3d.process.TilingPipeline.executeThread(TilingPipeline.java:198)
at com.gaia3d.process.TilingPipeline.startPreProcesses(TilingPipeline.java:102)
at com.gaia3d.process.TilingPipeline.process(TilingPipeline.java:50)
at com.gaia3d.command.BatchedProcessModel.run(BatchedProcessModel.java:64)
at com.gaia3d.command.mago.Mago3DTiler.execute(Mago3DTiler.java:24)
at com.gaia3d.command.mago.Mago3DTilerMain.main(Mago3DTilerMain.java:55)
Caused by: java.util.concurrent.ExecutionException: java.lang.NullPointerException: Cannot invoke "org.lwjgl.assimp.AIScene.mRootNode()" because "aiScene" is null
at java.base/java.util.concurrent.FutureTask.report(Unknown Source)
at java.base/java.util.concurrent.FutureTask.get(Unknown Source)
at com.gaia3d.process.TilingPipeline.executeThread(TilingPipeline.java:193)
... 5 more
Caused by: java.lang.NullPointerException: Cannot invoke "org.lwjgl.assimp.AIScene.mRootNode()" because "aiScene" is null
at com.gaia3d.converter.assimp.AssimpConverter.convertScene(AssimpConverter.java:171)
at com.gaia3d.converter.assimp.AssimpConverter.load(AssimpConverter.java:65)
at com.gaia3d.converter.BatchedFileLoader.loadScene(BatchedFileLoader.java:35)
at com.gaia3d.converter.BatchedFileLoader.loadTileInfo(BatchedFileLoader.java:111)
at com.gaia3d.process.TilingPipeline.lambda$startPreProcesses$0(TilingPipeline.java:80)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Hello
i ran windows jar file with bellow options.
it worked correctly and showed to cesiumjs nicely.
with new added largemesh option add, ran jar with bellow options,
--input C:\data\3ds --output C:\data\3ds_output --inputType 3ds --crs 5186 -lm true
log like this,
and it dodn't show anything on cesiumjs.
i think largeMesh option is suitable for large area, such as city area.
would you explain largeMesh option and how can i use correctly?
thanks in advance.
I was just going through the documentation and found out that we can change the output type format by using --outputType
and using the formula below i generated the 3D tiles but it was generated in .b3dm format only. below is the code which was used in terminal for generating output.
java -jar mago-3d-tiler-1.4.4-natives-windows.jar --input "C:\Users\GIS\Desktop\mago 3d\data\Pcmc building\pcmc_building_32643.shp" --inputType shp --outputType .obj --output "C:\Users\GIS\Desktop\mago 3d\3D tiles\pcpc_i3dm format"
Issue Description:
We are exploring the potential of utilizing Mago3D Tiler for generating 3D tiles to represent underground utilities. Our specific use case involves incorporating depth as a parameter to organize lines under groups and using diameter to create lines of various sizes. However, upon exploring Mago3D Tiler, we haven't discovered a workflow that directly supports this use case.
Proposed Solution:
We propose initiating a discussion within the Mago3D Tiler community to explore potential solutions or workflows that could accommodate the representation of underground utilities in 3D tiles. This could involve incorporating depth and diameter parameters into the tiling process or exploring alternative methods to achieve the desired representation.
Points for Discussion:
Additional Context:
We believe that addressing the representation of underground utilities in 3D tiles within Mago3D Tiler could greatly enhance its utility for urban planning, infrastructure management, and other related applications. Your insights and contributions to this discussion would be greatly appreciated.
Note: At https://www.nascentinfo.com/ we have team of good java developers who can get involved in this discussions and hopefully will work on some great feature enhancement for Mago3D Tiler together so feel free to provide any additional information or insights related to this topic. Let's collaborate to find an effective solution within the Mago3D Tiler ecosystem.
Looking forward to your feedback and contributions to this discussion
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.