diff --git a/README.md b/README.md index 1dbb85c0..9ccc053b 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ console output: ┳┳┓┏┓┏┓┏┓ ┏┓┳┓ ┏┳┓┳┓ ┏┓┳┓ ┃┃┃┣┫┃┓┃┃ ┫┃┃ ┃ ┃┃ ┣ ┣┫ ┛ ┗┛┗┗┛┗┛ ┗┛┻┛ ┻ ┻┗┛┗┛┛┗ -3d-tiler(dev-version) by Gaia3D, Inc. +3d-tiler(dev) by Gaia3D, Inc. ---------------------------------------- usage: Gaia3D Tiler -aa,--absoluteAltitude Absolute altitude value for extrusion @@ -47,7 +47,8 @@ usage: Gaia3D Tiler model, Specify a length unit for Diameter in millimeters(mm) (Default Column: diameter) - -fc,--flipCoordinate Flip x, y Coordinate (Default: false) + -fc,--flipCoordinate Flip x, y coordinate for 2D Original + Data. (Default: false) -glb,--glb Create glb file with B3DM. -h,--help Print Gelp -hc,--heightColumn Height column setting for extrusion model @@ -67,8 +68,8 @@ usage: Gaia3D Tiler max value) -mh,--minimumHeight Minimum height value for extrusion model (Default: 1.0) - -mp,--maxPoints Limiting the maximum number of points in - point cloud data. (Default: 65536) + -mp,--maxPoints Maximum number of points per a tile + (Default: 100000) -mx,--maxCount Maximum number of triangles per node. -nc,--nameColumn Name column setting for extrusion model (Default Column: name) @@ -78,24 +79,32 @@ usage: Gaia3D Tiler -ot,--outputType Output 3DTiles Type (b3dm, i3dm, pnts)(Default : b3dm) -p,--proj Proj4 parameters (ex: +proj=tmerc +la...) - -pk,--pointSkip Number of pointcloud omissions (ex: - 1/4)(Default: 4) - -ps,--pointScale Pointscloud geometryError scale setting - (Default: 2) + -pr,--photorealistic [Experimental] Photorealistic mode for + b3dm (Default: false) -q,--quiet Quiet mode/Silent mode -r,--recursive Tree directory deep navigation. -ra,--refineAdd Set 3D Tiles Refine 'ADD' mode -ru,--flipUpAxis Rotate the matrix 180 degrees about the X-axis. (Default: false) + -rx,--rotateXAxis Rotate the X-Axis in degrees (Unit: + degrees)(Default: 0.0) -sh,--skirtHeight Building Skirt height setting for extrusion model (Default: 4.0) + -sp,--sourcePrecision Create pointscloud tile with original + precision. (Slow) -su,--swapUpAxis Rotate the matrix -90 degrees about the X-axis. (Default: false) -te,--terrain GeoTiff Terrain file path, 3D Object applied as clampToGround (Supports geotiff format) -v,--version Print Version Info + -vl,--voxelLod [Experimental] Voxel Level Of Detail + setting for i3dm (Default: false) -xl,--maxLod Max Level of detail (Default: 3) + -xo,--xOffset X Offset value for coordinate + transformation + -yo,--yOffset Y Offset value for coordinate + transformation -zo,--zeroOrigin [Experimental] fix 3d root transformed matrix origin to zero point. ``` @@ -179,7 +188,7 @@ java -jar mago-3d-tiler-x.x.x-natives-windows.jar -h ┳┳┓┏┓┏┓┏┓ ┏┓┳┓ ┏┳┓┳┓ ┏┓┳┓ ┃┃┃┣┫┃┓┃┃ ┫┃┃ ┃ ┃┃ ┣ ┣┫ ┛ ┗┛┗┗┛┗┛ ┗┛┻┛ ┻ ┻┗┛┗┛┛┗ -3d-tiler(dev-version) by Gaia3D, Inc. +3d-tiler(dev) by Gaia3D, Inc. ---------------------------------------- usage: Gaia3D Tiler -aa,--absoluteAltitude Absolute altitude value for extrusion @@ -194,7 +203,8 @@ usage: Gaia3D Tiler model, Specify a length unit for Diameter in millimeters(mm) (Default Column: diameter) - -fc,--flipCoordinate Flip x, y Coordinate (Default: false) + -fc,--flipCoordinate Flip x, y coordinate for 2D Original + Data. (Default: false) -glb,--glb Create glb file with B3DM. -h,--help Print Gelp -hc,--heightColumn Height column setting for extrusion model @@ -214,8 +224,8 @@ usage: Gaia3D Tiler max value) -mh,--minimumHeight Minimum height value for extrusion model (Default: 1.0) - -mp,--maxPoints Limiting the maximum number of points in - point cloud data. (Default: 65536) + -mp,--maxPoints Maximum number of points per a tile + (Default: 100000) -mx,--maxCount Maximum number of triangles per node. -nc,--nameColumn Name column setting for extrusion model (Default Column: name) @@ -225,24 +235,32 @@ usage: Gaia3D Tiler -ot,--outputType Output 3DTiles Type (b3dm, i3dm, pnts)(Default : b3dm) -p,--proj Proj4 parameters (ex: +proj=tmerc +la...) - -pk,--pointSkip Number of pointcloud omissions (ex: - 1/4)(Default: 4) - -ps,--pointScale Pointscloud geometryError scale setting - (Default: 2) + -pr,--photorealistic [Experimental] Photorealistic mode for + b3dm (Default: false) -q,--quiet Quiet mode/Silent mode -r,--recursive Tree directory deep navigation. -ra,--refineAdd Set 3D Tiles Refine 'ADD' mode -ru,--flipUpAxis Rotate the matrix 180 degrees about the X-axis. (Default: false) + -rx,--rotateXAxis Rotate the X-Axis in degrees (Unit: + degrees)(Default: 0.0) -sh,--skirtHeight Building Skirt height setting for extrusion model (Default: 4.0) + -sp,--sourcePrecision Create pointscloud tile with original + precision. (Slow) -su,--swapUpAxis Rotate the matrix -90 degrees about the X-axis. (Default: false) -te,--terrain GeoTiff Terrain file path, 3D Object applied as clampToGround (Supports geotiff format) -v,--version Print Version Info + -vl,--voxelLod [Experimental] Voxel Level Of Detail + setting for i3dm (Default: false) -xl,--maxLod Max Level of detail (Default: 3) + -xo,--xOffset X Offset value for coordinate + transformation + -yo,--yOffset Y Offset value for coordinate + transformation -zo,--zeroOrigin [Experimental] fix 3d root transformed matrix origin to zero point. ``` diff --git a/manual.md b/manual.md index 29221100..258cbf05 100644 --- a/manual.md +++ b/manual.md @@ -13,7 +13,7 @@ java -jar mago-3d-tiler.jar -input "/input_path" -output "/output_path" Same case : ``` -java -jar mago-3d-tiler.jar -input "/input_path" -output "/output_path" -crs 3857 -outputType b3dm +java -jar mago-3d-tiler.jar -input "/input_path" -output "/output_path" -crs 3857 ``` ### Batched 3D Model (b3dm) @@ -27,7 +27,7 @@ java -jar mago-3d-tiler.jar -input "/input_path/kml_with_collada" -output "/outp Same case : ``` -java -jar mago-3d-tiler.jar -input "/input_path/kml_with_collada" -output "/output_path/kml_with_collada" -outputType b3dm +java -jar mago-3d-tiler.jar -input "/input_path/kml_with_collada" -output "/output_path/kml_with_collada" ``` ### DEM elevation application case @@ -78,7 +78,7 @@ java -jar mago-3d-tiler.jar -input "/input_path/shp" -inputType "shp" -output "/ ### Instanced 3D Model (i3dm) -When creating instance model data, the following options are available for conversion. +When converting instance model data, the following options are available for conversion. (kml with collada) data, and the `outputType` option is required in the current version. ``` @@ -87,7 +87,7 @@ java -jar mago-3d-tiler.jar -input "/input_path/i3dm" -output "/output_path/i3dm ### Converting i3dm data to Shape -To generate i3dm as a Shape file with Point geometry type, you can convert it with the following options. +To converting i3dm as a Shape file with Point geometry type, you can convert it with the following options. You need to specify `inputType` as shp and specify the path to the instance file through the 'instance' option. ``` @@ -100,6 +100,7 @@ java -jar mago-3d-tiler.jar -input "/input_path/i3dm" -output "/output_path/i3dm ### Converting Point-Clouds data (Point Clouds) When converting point-clouds data, the following default options are available for conversion. +If the input data is "las", the "-outputType" will automatically be "pnts". ``` java -jar mago-3d-tiler.jar -input "/input_path/las" -inputType "las" -output "/output_path/las" @@ -115,16 +116,22 @@ java -jar mago-3d-tiler.jar -input "/input_path/las" -inputType "las" -output "/ # Other examples ### Up-Axis Swap Example -mago3dTiler converts mesh z-up axis data to y-up axis. If your original data is y-up axis, you will need to add the `-swapUpAxis` option to avoid converting it. +mago3dTiler converts mesh z-up axis data to y-up axis. If your original data is y-up axis, you will need to add the `-rotateX ` option to avoid converting it. ``` -java -jar mago-3d-tiler.jar -input "/input_path/y-up-fbx" -inputType "fbx" -output "/output_path/y-up-fbx" -swapUpAxis +java -jar mago-3d-tiler.jar -input "/input_path/y-up-fbx" -inputType "fbx" -output "/output_path/y-up-fbx" -rotateX "90" ``` ### Data flipped upside down -If the converted data is flipped upside down, add the `-flipUpAxis` option to convert it. -Can be used with the -swapUpAxis option. +If the converted data is flipped upside down, add the `-rotateX ` option to convert it. +``` +java -jar mago-3d-tiler.jar -input "/input_path/flip-y-up-fbx" -inputType "fbx" -output "/output_path/flip-y-up-fbx" -rotateX "180" +``` + +### Converting CityGML +When converting to CityGML, it is recommended to give the InputType as ‘citygml’. +This is because Citygml data can have different extensions: ‘.xml’, ‘.gml’, etc. ``` -java -jar mago-3d-tiler.jar -input "/input_path/flip-y-up-fbx" -inputType "fbx" -output "/output_path/flip-y-up-fbx" -swapUpAxis -flipUpAxis +java -jar mago-3d-tiler.jar -input "/input_path/citygml" -inputType "citygml" -output "/output_path/citygml" -crs "5186" ``` ### Converting Large 3D Mesh Data @@ -137,10 +144,10 @@ java -jar mago-3d-tiler.jar -input "/input_path/ifc_large_mesh" -inputType "ifc" ``` ### Converting Large Point-Clouds Data -When converting large point-clouds, you can use the `-pointSkip` option to adjust the conversion speed and data size as follows. +When converting large point-clouds, you can use the `-pointRatio` option to adjust the percentage of conversion points from the source data as follows. ``` -java -jar mago-3d-tiler.jar -input "/input_path/las" -inputType "las" -output "/output_path/las" -pointSkip 4 +java -jar mago-3d-tiler.jar -input "/input_path/las" -inputType "las" -output "/output_path/las" -pointRatio "100" ``` ### How to run with Docker diff --git a/tiler/build.gradle b/tiler/build.gradle index 4a652c57..3d8c8740 100644 --- a/tiler/build.gradle +++ b/tiler/build.gradle @@ -18,6 +18,7 @@ switch (OperatingSystem.current()) { project.ext.lwjglNatives = "natives-macos" break } +project.ext.lwjglNatives = "natives-linux" repositories { maven { url "https://repo.osgeo.org/repository/release/" } diff --git a/tiler/build/tmp/compileJava/previous-compilation-data.bin b/tiler/build/tmp/compileJava/previous-compilation-data.bin index e4d8cabf..0ed22a67 100644 Binary files a/tiler/build/tmp/compileJava/previous-compilation-data.bin and b/tiler/build/tmp/compileJava/previous-compilation-data.bin differ diff --git a/tiler/dist/mago-3d-tiler-1.9.0-natives-linux.jar b/tiler/dist/mago-3d-tiler-1.10.0-natives-linux.jar similarity index 96% rename from tiler/dist/mago-3d-tiler-1.9.0-natives-linux.jar rename to tiler/dist/mago-3d-tiler-1.10.0-natives-linux.jar index 98ebbc32..3743bd2f 100644 Binary files a/tiler/dist/mago-3d-tiler-1.9.0-natives-linux.jar and b/tiler/dist/mago-3d-tiler-1.10.0-natives-linux.jar differ diff --git a/tiler/dist/mago-3d-tiler-1.9.0-natives-macos.jar b/tiler/dist/mago-3d-tiler-1.10.0-natives-macos.jar similarity index 96% rename from tiler/dist/mago-3d-tiler-1.9.0-natives-macos.jar rename to tiler/dist/mago-3d-tiler-1.10.0-natives-macos.jar index c4386c3d..742b124d 100644 Binary files a/tiler/dist/mago-3d-tiler-1.9.0-natives-macos.jar and b/tiler/dist/mago-3d-tiler-1.10.0-natives-macos.jar differ diff --git a/tiler/dist/mago-3d-tiler-1.9.0-natives-windows.jar b/tiler/dist/mago-3d-tiler-1.10.0-natives-windows.jar similarity index 96% rename from tiler/dist/mago-3d-tiler-1.9.0-natives-windows.jar rename to tiler/dist/mago-3d-tiler-1.10.0-natives-windows.jar index fa44ac8e..2d06562b 100644 Binary files a/tiler/dist/mago-3d-tiler-1.9.0-natives-windows.jar and b/tiler/dist/mago-3d-tiler-1.10.0-natives-windows.jar differ diff --git a/tiler/src/main/java/com/gaia3d/process/postprocess/batch/GaiaTextureCoordinator.java b/tiler/src/main/java/com/gaia3d/process/postprocess/batch/GaiaTextureCoordinator.java index 3c72f665..448b2af9 100644 --- a/tiler/src/main/java/com/gaia3d/process/postprocess/batch/GaiaTextureCoordinator.java +++ b/tiler/src/main/java/com/gaia3d/process/postprocess/batch/GaiaTextureCoordinator.java @@ -219,8 +219,7 @@ public void batchTextures(LevelOfDetail lod) { // check if the texture is photorealistic and the lod level is greater than 2 int lodLevel = lod.getLevel(); - if(isPhotorealistic) - { + if (isPhotorealistic) { scaleFactor = 1.0f; } bufferedImage = texture.getBufferedImage(scaleFactor); @@ -237,8 +236,7 @@ public void batchTextures(LevelOfDetail lod) { splittedImages.add(splittedImage); } - if(splittedImages.size() < 2) - { + if (splittedImages.size() < 2) { return; } @@ -416,8 +414,7 @@ public void batchTextures(LevelOfDetail lod) { imageHeight = 1024; sizeChanged = true; } - } - else if (lodLevel == 1) { + } else if (lodLevel == 1) { if (imageWidth > lod2size) { imageWidth = lod2size; sizeChanged = true; @@ -426,8 +423,7 @@ else if (lodLevel == 1) { imageHeight = lod2size; sizeChanged = true; } - } - else if (lodLevel == 2) { + } else if (lodLevel == 2) { if (imageWidth > lod2size) { imageWidth = lod2size; sizeChanged = true; @@ -436,8 +432,7 @@ else if (lodLevel == 2) { imageHeight = lod2size; sizeChanged = true; } - } - else if (lodLevel > 2) { + } else if (lodLevel > 2) { if (imageWidth > lod2size) { imageWidth = lod2size; sizeChanged = true;