I Just made a compile of a model library with 3 models, I am sending you the Textures and the BGL, hope it helps
One drive Link
Model Library for Arno
One drive Link
Model Library for Arno
Any other question that is not specific to an aspect of development or tool can be posted in the General chat forum.
By following these guidelines we make sure that the forums remain easy to read for everybody and also that the right people can find your post to answer it.



The KTX2 texture format seems to be an open format, I have found the specification. Not sure if inside it can be encrypted.
As for the BGL file, I still need to check why they are not read. If they are encrypted that would be good news on one hand, but annoying on the other![]()


11 mip levels (apparently), FORMAT_BC1_RGBA_UNORM, and uses custom Asobo keys. KTX extract fails because of the custom keys.Validation successful
warning-7010: Custom key in Key/Value Data.
Custom key "ASOBO_flags" found in Key/Value Data.
warning-7010: Custom key in Key/Value Data.
Custom key "ASOBpacities" found in Key/Value Data.
warning-7010: Custom key in Key/Value Data.
Custom key "ASOBO_transp" found in Key/Value Data.
warning-7010: Custom key in Key/Value Data.
Custom key "ASOBOtexversion" found in Key/Value Data.
Header
identifier: «KTX 20»\r\n\x1A\n
vkFormat: VK_FORMAT_BC1_RGBA_UNORM_BLOCK
typeSize: 1
pixelWidth: 1024
pixelHeight: 1024
pixelDepth: 0
layerCount: 0
faceCount: 1
levelCount: 11
supercompressionScheme: KTX_SS_NONE
dataFormatDescriptor.byteOffset: 0x158
dataFormatDescriptor.byteLength: 44
keyValueData.byteOffset: 0x184
keyValueData.byteLength: 168
supercompressionGlobalData.byteOffset: 0
supercompressionGlobalData.byteLength: 0
Level Index
Level0.byteOffset: 0x2ace8
Level0.byteLength: 524288
Level0.uncompressedByteLength: 524288
Level1.byteOffset: 0xace8
Level1.byteLength: 131072
Level1.uncompressedByteLength: 131072
Level2.byteOffset: 0x2ce8
Level2.byteLength: 32768
Level2.uncompressedByteLength: 32768
Level3.byteOffset: 0xce8
Level3.byteLength: 8192
Level3.uncompressedByteLength: 8192
Level4.byteOffset: 0x4e8
Level4.byteLength: 2048
Level4.uncompressedByteLength: 2048
Level5.byteOffset: 0x2e8
Level5.byteLength: 512
Level5.uncompressedByteLength: 512
Level6.byteOffset: 0x268
Level6.byteLength: 128
Level6.uncompressedByteLength: 128
Level7.byteOffset: 0x248
Level7.byteLength: 32
Level7.uncompressedByteLength: 32
Level8.byteOffset: 0x240
Level8.byteLength: 8
Level8.uncompressedByteLength: 8
Level9.byteOffset: 0x238
Level9.byteLength: 8
Level9.uncompressedByteLength: 8
Level10.byteOffset: 0x230
Level10.byteLength: 8
Level10.uncompressedByteLength: 8
Data Format Descriptor
DFD total bytes: 44
Vendor ID: KHR_DF_VENDORID_KHRONOS
Descriptor type: KHR_DF_KHR_DESCRIPTORTYPE_BASICFORMAT
Version: KHR_DF_VERSIONNUMBER_1_3
Descriptor block size: 40
Flags: 0x0 (KHR_DF_FLAG_ALPHA_STRAIGHT)
Transfer: KHR_DF_TRANSFER_LINEAR
Primaries: KHR_DF_PRIMARIES_BT709
Model: KHR_DF_MODEL_BC1A
Dimensions: 4, 4, 1, 1
Plane bytes: 8, 0, 0, 0, 0, 0, 0, 0
Sample 0:
Qualifiers: 0x0 ()
Channel Type: 0x1 (KHR_DF_CHANNEL_BC1A_ALPHA)
Length: 64 bits Offset: 0
Position: 0, 0, 0, 0
Lower: 0x00000000
Upper: 0xffffffff
Key/Value Data
ASOBO_flags: [66, 73, 76, 73, 78, 69, 65, 82, 0, 67, 79, 77, 80, 82, 69, 83, 83, 73, 79, 78, 0, 77, 73, 80, 77, 65, 80, 0, 82, 69, 68, 85, 67, 69, 95, 76, 69, 83, 83, 0, 80, 76, 65, 84, 70, 79, 82, 77, 95, 70, 79, 82, 77, 65, 84, 0]
ASOBpacities: null
ASOBO_transp: [0]
ASOBOtexversion: [1, 0, 0, 0]
KTXwriter: ASOBO_FlightSim


Hello, I continued to make more testing and found out that its nesesary to add levels of detail to the models, it seems that the more levels of detail you add the distance increases before the models dessapear, I never had this problem before with any of the previous simulators, like FSX or P3D, I thought level of detail was nesseary in the past for rendering reasons because 15 to 20 years ago computers were not as powerful as todays so I remeber reading somewhere that adding level of detail to models was no longer needed, but I think that with 2024 is nesseary because of the fact all scenery is being streamed


Using levels of detail to reduce the amount of details that have to be drawn in the distance is always a good idea of course. It makes no sense to render a 20000 polygon objects at 20 km distance, since you will only see it as a few pixels on screen. That was true 20 years ago, but is still true today as well. So with complex models, it is always good to add LODs to reduce the load they give on the system when drawn in the distance.Hello, I continued to make more testing and found out that its nesesary to add levels of detail to the models, it seems that the more levels of detail you add the distance increases before the models dessapear, I never had this problem before with any of the previous simulators, like FSX or P3D, I thought level of detail was nesseary in the past for rendering reasons because 15 to 20 years ago computers were not as powerful as todays so I remeber reading somewhere that adding level of detail to models was no longer needed, but I think that with 2024 is nesseary because of the fact all scenery is being streamed

Do you think you could work up a program to convert .ktx2 to PNG?Hi Dick,
No, the texture files are not encoded or so. You can safely ignore those warnings about the ASOBO keys/values. With the KTX2 tools you can extract the raw data of each mipmap. After decompressing that with my DXT decompressor I got this image out (which seems convincing to me):

Yes, I think I can add KTX2 support to MCX and then you can convert it to other texture formats as well.Do you think you could work up a program to convert .ktx2 to PNG?


When you have the auto calculate checlbox enabled the LOD will be directly calculated once you change one of the input parameters (e.g. desired number of triangles, target LOD, etc). When the checkbox is unchecked you have to press the calculate button to update the model.what does the Auto calculation does when enabled, I couldn't figure out
Some formats allow you to add an empty LOD, that is basically use to let the object dissapear at a certain distance. But since you have issues with it dissapearing too soon, I don't think that is what you need (and I also don't think the empty LOD is exported to glTF).and the other is how does the option of adding an emty LOD work, what is that for?

Reading the KTX2 format proved not that hard. I have a basic implementation now (see screenshot with some default textures). I'm not sure the normal map read correctly, I need to check that one. At the moment I only support DXT1, DXT3 and DXT5. MSFS used other compressions for the normal map and comp map, but I don't see them in the default textures I tried at the moment.Yes, I think I can add KTX2 support to MCX and then you can convert it to other texture formats as well.