Esri / i3s-spec

This repository hosts the specification for Scene Layers which are containers for arbitrarily large amounts of geographic data. The delivery and persistence model for Scene Layers, referred to as Indexed 3d Scene Layer (I3S) and Scene Layer Package (SLPK) respectively, are specified.
Other
315 stars 84 forks source link

Failed update 3DObject Model from I3S 1.7 to 1.8 with ktx2 texture #129

Closed alunAlunnnnn closed 2 years ago

alunAlunnnnn commented 2 years ago

Hello, I meet a problem when i use "i3s_convert.exe" tools, could you help me to solve this?

I'm trying to update a 3DObject slpk file from i3s 1.7 to 1.8, with ktx2 texture container. The command i used like below

i3s_converter.exe -u D:\work\Demo_Data\slpk\jm\Texture_Compress\200M_Pro28\Building\Building.slpk -x -k -d D:\work\Demo_Data\slpk\jm\Texture_Compress\200M_Pro28\Building_ktx2_thread_12 -t 12

it stopped without error message.

run message like this

Slice: 9, alpha: 0, orig width/height: 1x1, width/height: 4x4, first_block: 21846, image_index: 0, mip_level: 9, iframe: 0
Completed: 36 / 6222Total basis file slices: 13
Slice: 0, alpha: 0, orig width/height: 4096x1024, width/height: 4096x1024, first_block: 0, image_index: 0, mip_level: 0, iframe: 0
Slice: 1, alpha: 0, orig width/height: 2048x512, width/height: 2048x512, first_block: 262144, image_index: 0, mip_level: 1, iframe: 0
Slice: 2, alpha: 0, orig width/height: 1024x256, width/height: 1024x256, first_block: 327680, image_index: 0, mip_level: 2, iframe: 0
Slice: 3, alpha: 0, orig width/height: 512x128, width/height: 512x128, first_block: 344064, image_index: 0, mip_level: 3, iframe: 0
Slice: 4, alpha: 0, orig width/height: 256x64, width/height: 256x64, first_block: 348160, image_index: 0, mip_level: 4, iframe: 0
Slice: 5, alpha: 0, orig width/height: 128x32, width/height: 128x32, first_block: 349184, image_index: 0, mip_level: 5, iframe: 0
Slice: 6, alpha: 0, orig width/height: 64x16, width/height: 64x16, first_block: 349440, image_index: 0, mip_level: 6, iframe: 0
Slice: 7, alpha: 0, orig width/height: 32x8, width/height: 32x8, first_block: 349504, image_index: 0, mip_level: 7, iframe: 0
Slice: 8, alpha: 0, orig width/height: 16x4, width/height: 16x4, first_block: 349520, image_index: 0, mip_level: 8, iframe: 0
Slice: 9, alpha: 0, orig width/height: 8x2, width/height: 8x4, first_block: 349524, image_index: 0, mip_level: 9, iframe: 0
Slice: 10, alpha: 0, orig width/height: 4x1, width/height: 4x4, first_block: 349526, image_index: 0, mip_level: 10, iframe: 0
Slice: 11, alpha: 0, orig width/height: 2x1, width/height: 4x4, first_block: 349527, image_index: 0, mip_level: 11, iframe: 0
Slice: 12, alpha: 0, orig width/height: 1x1, width/height: 4x4, first_block: 349528, image_index: 0, mip_level: 12, iframe: 0

D:\codes\esri\i3s-spec-master\i3s_converter> 

My data is imported from .obj file( 3dmax created), It is building group, with multipart Multipatch, they sharing one texture.

some node in slpk have not a "texture" folder, but texture meterial defination exists in "nodepages" without "texelCountHint".

like this

"mesh": {
                "material": {
                    "definition": 2,
                    "resource": 58
                },
                "geometry": {
                    "definition": 0,
                    "resource": 58,
                    "vertexCount": 61770,
                    "featureCount": 109
                },
                "attribute": {
                    "resource": 58
                }
            }

and if i convert multipart multipatch to singlepart, all of them will lose texture.

So, my question are:

  1. how can i update this slpk file to i3s 1.8 with ktx2 texture?
  2. how to convert it to singlepart and keep their texture?

Thank you a lot!

alunAlunnnnn commented 2 years ago

I have tried "i3s_convert.exe" tools again, it also quite stop (without any error or warning message), when i use it to update a 3D-Object slpk file (create by ArcGIS Pro 2.8, i have already modified the version tag from 1.8 to 1.7).

the run message in below ··· Slice: 11, alpha: 0, orig width/height: 2x1, width/height: 4x4, first_block: 349527, image_index: 0, mip_level: 11, iframe: 0 Slice: 12, alpha: 0, orig width/height: 1x1, width/height: 4x4, first_block: 349528, image_index: 0, mip_level: 12, iframe: 0 Total basis file slices: 11 Slice: 0, alpha: 0, orig width/height: 1024x1024, width/height: 1024x1024, first_block: 0, image_index: 0, mip_level: 0, iframe: 0 Slice: 1, alpha: 0, orig width/height: 512x512, width/height: 512x512, first_block: 65536, image_index: 0, mip_level: 1, iframe: 0 Slice: 2, alpha: 0, orig width/height: 256x256, width/height: 256x256, first_block: 81920, image_index: 0, mip_level: 2, iframe: 0 Slice: 3, alpha: 0, orig width/height: 128x128, width/height: 128x128, first_block: 86016, image_index: 0, mip_level: 3, iframe: 0 Slice: 4, alpha: 0, orig width/height: 64x64, width/height: 64x64, first_block: 87040, image_index: 0, mip_level: 4, iframe: 0 Slice: 5, alpha: 0, orig width/height: 32x32, width/height: 32x32, first_block: 87296, image_index: 0, mip_level: 5, iframe: 0 Slice: 6, alpha: 0, orig width/height: 16x16, width/height: 16x16, first_block: 87360, image_index: 0, mip_level: 6, iframe: 0 Slice: 7, alpha: 0, orig width/height: 8x8, width/height: 8x8, first_block: 87376, image_index: 0, mip_level: 7, iframe: 0 Slice: 8, alpha: 0, orig width/height: 4x4, width/height: 4x4, first_block: 87380, image_index: 0, mip_level: 8, iframe: 0 Slice: 9, alpha: 0, orig width/height: 2x2, width/height: 4x4, first_block: 87381, image_index: 0, mip_level: 9, iframe: 0 Slice: 10, alpha: 0, orig width/height: 1x1, width/height: 4x4, first_block: 87382, image_index: 0, mip_level: 10, iframe: 0

D:\codes\esri\i3s-spec-master\i3s_converter> ···

This time i open ".slpk.pending" file with text format, it shows that the process stopped in creating a geometry file with draco compress.

I don't know whether you can see the .pending message below or not, i already upload it below

run_message

Quit run message like this

quit_message

Is this a bug? or something wrong in my data? it puzzled me alot

alunAlunnnnn commented 2 years ago

I am coming back again ToT.

This time i use the data from CityEngine Demo, but "i3s_convert.exe" tools stopped again data

The tool looks like not only create basis universal texture, but also do something other. I use another texture compress tool from binomial, it works with same data.

So, i'm trying to know what others modify from "i3s_convert.exe"

rvargasESRI commented 2 years ago

@alunAlunnnnn Can you try converting your data with JPEG textures only ? Using the command i3s_converter.exe -u D:\work\Demo_Data\slpk\jm\Texture_Compress\200M_Pro28\Building\Building.slpk -x

Would it also be possible to get the data you are working with so we may try to determine if this is a bug in the converter?

alunAlunnnnn commented 2 years ago

@alunAlunnnnn Can you try converting your data with JPEG textures only ? Using the command i3s_converter.exe -u D:\work\Demo_Data\slpk\jm\Texture_Compress\200M_Pro28\Building\Building.slpk -x

Would it also be possible to get the data you are working with so we may try to determine if this is a bug in the converter?

Thank you for reply.

I have tried 'i3s_convert.exe' again with command like this

i3s_converter.exe -u D:\test\Model_From_CE_Small.slpk -x -d D:\test\res i3s_converter.exe -u D:\test\Model_From_CE_Small.slpk -d D:\test\res i3s_converter.exe -u D:\test\Model_From_CE_Small.slpk -x i3s_converter.exe -u D:\test\Model_From_CE_Small.slpk

All of them stopped at 108/568

error_message

The data have shared in mediafire

It is created from CityEngine2019 with it's own rule.

rvargasESRI commented 2 years ago

@alunAlunnnnn We are still looking into this issue, but as a temporary work around, can you modify the version to1.6 and convert to 1.8.

The property "nodePages" on the layer json will need to be removed as well.

zssai commented 2 years ago

I encountered the same issue. However, now, I can use ArcGIS Pro 2.9 to create a slpk with the ktx2 textures.

rvargasESRI commented 2 years ago

@zssai @alunAlunnnnn This is fixed with the newly upgraded converter.