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.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

alunAlunnnnn opened this issue · comments

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!

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

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"

@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
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.

@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.

commented

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

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