I have two files one is before the ktx2 compression and second one is with the compression the file with ktx2 compression does not show the textures in blender and the file without the ktx2 compression shows the textures but with very low lods
Blender does not support KTX2 textures at the moment.
As for the second file it is hard to say anything without any information.
does the babylon sandbox support ktx2 files?
Because when I uploaded the file to the sandbox it shows like this
Babylon Sandbox supports KTX2 textures.
How your file was done?
Do you have the same result in other GLB viewers? (For example, https://gltf.report/)
yes
In babylon sandbox this error was coming
{
“uri”: “Test%20(8).glb”,
“mimeType”: “model/gltf-binary”,
“validatorVersion”: “2.0.0-dev.3.9”,
“validatedAt”: “2024-08-08T12:39:18.652Z”,
“issues”: {
“numErrors”: 15,
“numWarnings”: 0,
“numInfos”: 0,
“numHints”: 27,
“messages”: [
{
“code”: “BUFFER_VIEW_TARGET_MISSING”,
“message”: “bufferView.target should be set for vertex or index data.”,
“severity”: 3,
“pointer”: “/meshes/0/primitives/0/attributes/POSITION”
},
{
“code”: “BUFFER_VIEW_TARGET_MISSING”,
“message”: “bufferView.target should be set for vertex or index data.”,
“severity”: 3,
“pointer”: “/meshes/0/primitives/0/attributes/NORMAL”
},
{
“code”: “BUFFER_VIEW_TARGET_MISSING”,
“message”: “bufferView.target should be set for vertex or index data.”,
“severity”: 3,
“pointer”: “/meshes/0/primitives/0/attributes/TEXCOORD_0”
},
{
“code”: “BUFFER_VIEW_TARGET_MISSING”,
“message”: “bufferView.target should be set for vertex or index data.”,
“severity”: 3,
“pointer”: “/meshes/0/primitives/0/indices”
},
{
“code”: “BUFFER_VIEW_TARGET_MISSING”,
“message”: “bufferView.target should be set for vertex or index data.”,
“severity”: 3,
“pointer”: “/meshes/1/primitives/0/attributes/POSITION”
},
{
“code”: “BUFFER_VIEW_TARGET_MISSING”,
“message”: “bufferView.target should be set for vertex or index data.”,
“severity”: 3,
“pointer”: “/meshes/1/primitives/0/attributes/NORMAL”
},
{
“code”: “BUFFER_VIEW_TARGET_MISSING”,
“message”: “bufferView.target should be set for vertex or index data.”,
“severity”: 3,
“pointer”: “/meshes/1/primitives/0/attributes/TEXCOORD_0”
},
{
“code”: “BUFFER_VIEW_TARGET_MISSING”,
“message”: “bufferView.target should be set for vertex or index data.”,
“severity”: 3,
“pointer”: “/meshes/1/primitives/0/indices”
},
{
“code”: “BUFFER_VIEW_TARGET_MISSING”,
“message”: “bufferView.target should be set for vertex or index data.”,
“severity”: 3,
“pointer”: “/meshes/2/primitives/0/attributes/POSITION”
},
{
“code”: “BUFFER_VIEW_TARGET_MISSING”,
“message”: “bufferView.target should be set for vertex or index data.”,
“severity”: 3,
“pointer”: “/meshes/2/primitives/0/attributes/NORMAL”
},
{
“code”: “BUFFER_VIEW_TARGET_MISSING”,
“message”: “bufferView.target should be set for vertex or index data.”,
“severity”: 3,
“pointer”: “/meshes/2/primitives/0/indices”
},
{
“code”: “MESH_PRIMITIVE_TOO_FEW_TEXCOORDS”,
“message”: “Material is incompatible with mesh primitive: Texture binding ‘/materials/2/pbrMetallicRoughness/baseColorTexture’ needs ‘TEXCOORD_0’ attribute.”,
“severity”: 0,
“pointer”: “/meshes/2/primitives/0/material”
},
{
“code”: “MESH_PRIMITIVE_TOO_FEW_TEXCOORDS”,
“message”: “Material is incompatible with mesh primitive: Texture binding ‘/materials/2/pbrMetallicRoughness/metallicRoughnessTexture’ needs ‘TEXCOORD_0’ attribute.”,
“severity”: 0,
“pointer”: “/meshes/2/primitives/0/material”
},
{
“code”: “MESH_PRIMITIVE_TOO_FEW_TEXCOORDS”,
“message”: “Material is incompatible with mesh primitive: Texture binding ‘/materials/2/normalTexture’ needs ‘TEXCOORD_0’ attribute.”,
“severity”: 0,
“pointer”: “/meshes/2/primitives/0/material”
},
{
“code”: “BUFFER_VIEW_TARGET_MISSING”,
“message”: “bufferView.target should be set for vertex or index data.”,
“severity”: 3,
“pointer”: “/meshes/3/primitives/0/attributes/POSITION”
},
{
“code”: “BUFFER_VIEW_TARGET_MISSING”,
“message”: “bufferView.target should be set for vertex or index data.”,
“severity”: 3,
“pointer”: “/meshes/3/primitives/0/attributes/NORMAL”
},
{
“code”: “BUFFER_VIEW_TARGET_MISSING”,
“message”: “bufferView.target should be set for vertex or index data.”,
“severity”: 3,
“pointer”: “/meshes/3/primitives/0/indices”
},
{
“code”: “MESH_PRIMITIVE_TOO_FEW_TEXCOORDS”,
“message”: “Material is incompatible with mesh primitive: Texture binding ‘/materials/3/pbrMetallicRoughness/baseColorTexture’ needs ‘TEXCOORD_0’ attribute.”,
“severity”: 0,
“pointer”: “/meshes/3/primitives/0/material”
},
{
“code”: “MESH_PRIMITIVE_TOO_FEW_TEXCOORDS”,
“message”: “Material is incompatible with mesh primitive: Texture binding ‘/materials/3/pbrMetallicRoughness/metallicRoughnessTexture’ needs ‘TEXCOORD_0’ attribute.”,
“severity”: 0,
“pointer”: “/meshes/3/primitives/0/material”
},
{
“code”: “MESH_PRIMITIVE_TOO_FEW_TEXCOORDS”,
“message”: “Material is incompatible with mesh primitive: Texture binding ‘/materials/3/normalTexture’ needs ‘TEXCOORD_0’ attribute.”,
“severity”: 0,
“pointer”: “/meshes/3/primitives/0/material”
},
{
“code”: “BUFFER_VIEW_TARGET_MISSING”,
“message”: “bufferView.target should be set for vertex or index data.”,
“severity”: 3,
“pointer”: “/meshes/4/primitives/0/attributes/POSITION”
},
{
“code”: “BUFFER_VIEW_TARGET_MISSING”,
“message”: “bufferView.target should be set for vertex or index data.”,
“severity”: 3,
“pointer”: “/meshes/4/primitives/0/attributes/NORMAL”
},
{
“code”: “BUFFER_VIEW_TARGET_MISSING”,
“message”: “bufferView.target should be set for vertex or index data.”,
“severity”: 3,
“pointer”: “/meshes/4/primitives/0/attributes/TEXCOORD_0”
},
{
“code”: “BUFFER_VIEW_TARGET_MISSING”,
“message”: “bufferView.target should be set for vertex or index data.”,
“severity”: 3,
“pointer”: “/meshes/4/primitives/0/indices”
},
{
“code”: “BUFFER_VIEW_TARGET_MISSING”,
“message”: “bufferView.target should be set for vertex or index data.”,
“severity”: 3,
“pointer”: “/meshes/5/primitives/0/attributes/POSITION”
},
{
“code”: “BUFFER_VIEW_TARGET_MISSING”,
“message”: “bufferView.target should be set for vertex or index data.”,
“severity”: 3,
“pointer”: “/meshes/5/primitives/0/attributes/NORMAL”
},
{
“code”: “BUFFER_VIEW_TARGET_MISSING”,
“message”: “bufferView.target should be set for vertex or index data.”,
“severity”: 3,
“pointer”: “/meshes/5/primitives/0/indices”
},
{
“code”: “MESH_PRIMITIVE_TOO_FEW_TEXCOORDS”,
“message”: “Material is incompatible with mesh primitive: Texture binding ‘/materials/5/pbrMetallicRoughness/baseColorTexture’ needs ‘TEXCOORD_0’ attribute.”,
“severity”: 0,
“pointer”: “/meshes/5/primitives/0/material”
},
{
“code”: “MESH_PRIMITIVE_TOO_FEW_TEXCOORDS”,
“message”: “Material is incompatible with mesh primitive: Texture binding ‘/materials/5/pbrMetallicRoughness/metallicRoughnessTexture’ needs ‘TEXCOORD_0’ attribute.”,
“severity”: 0,
“pointer”: “/meshes/5/primitives/0/material”
},
{
“code”: “MESH_PRIMITIVE_TOO_FEW_TEXCOORDS”,
“message”: “Material is incompatible with mesh primitive: Texture binding ‘/materials/5/normalTexture’ needs ‘TEXCOORD_0’ attribute.”,
“severity”: 0,
“pointer”: “/meshes/5/primitives/0/material”
},
{
“code”: “BUFFER_VIEW_TARGET_MISSING”,
“message”: “bufferView.target should be set for vertex or index data.”,
“severity”: 3,
“pointer”: “/meshes/6/primitives/0/attributes/POSITION”
},
{
“code”: “BUFFER_VIEW_TARGET_MISSING”,
“message”: “bufferView.target should be set for vertex or index data.”,
“severity”: 3,
“pointer”: “/meshes/6/primitives/0/attributes/NORMAL”
},
{
“code”: “BUFFER_VIEW_TARGET_MISSING”,
“message”: “bufferView.target should be set for vertex or index data.”,
“severity”: 3,
“pointer”: “/meshes/6/primitives/0/indices”
},
{
“code”: “MESH_PRIMITIVE_TOO_FEW_TEXCOORDS”,
“message”: “Material is incompatible with mesh primitive: Texture binding ‘/materials/6/pbrMetallicRoughness/baseColorTexture’ needs ‘TEXCOORD_0’ attribute.”,
“severity”: 0,
“pointer”: “/meshes/6/primitives/0/material”
},
{
“code”: “MESH_PRIMITIVE_TOO_FEW_TEXCOORDS”,
“message”: “Material is incompatible with mesh primitive: Texture binding ‘/materials/6/pbrMetallicRoughness/metallicRoughnessTexture’ needs ‘TEXCOORD_0’ attribute.”,
“severity”: 0,
“pointer”: “/meshes/6/primitives/0/material”
},
{
“code”: “MESH_PRIMITIVE_TOO_FEW_TEXCOORDS”,
“message”: “Material is incompatible with mesh primitive: Texture binding ‘/materials/6/normalTexture’ needs ‘TEXCOORD_0’ attribute.”,
“severity”: 0,
“pointer”: “/meshes/6/primitives/0/material”
},
{
“code”: “BUFFER_VIEW_TARGET_MISSING”,
“message”: “bufferView.target should be set for vertex or index data.”,
“severity”: 3,
“pointer”: “/meshes/7/primitives/0/attributes/POSITION”
},
{
“code”: “BUFFER_VIEW_TARGET_MISSING”,
“message”: “bufferView.target should be set for vertex or index data.”,
“severity”: 3,
“pointer”: “/meshes/7/primitives/0/attributes/NORMAL”
},
{
“code”: “BUFFER_VIEW_TARGET_MISSING”,
“message”: “bufferView.target should be set for vertex or index data.”,
“severity”: 3,
“pointer”: “/meshes/7/primitives/0/indices”
},
{
“code”: “MESH_PRIMITIVE_TOO_FEW_TEXCOORDS”,
“message”: “Material is incompatible with mesh primitive: Texture binding ‘/materials/7/pbrMetallicRoughness/baseColorTexture’ needs ‘TEXCOORD_0’ attribute.”,
“severity”: 0,
“pointer”: “/meshes/7/primitives/0/material”
},
{
“code”: “MESH_PRIMITIVE_TOO_FEW_TEXCOORDS”,
“message”: “Material is incompatible with mesh primitive: Texture binding ‘/materials/7/pbrMetallicRoughness/metallicRoughnessTexture’ needs ‘TEXCOORD_0’ attribute.”,
“severity”: 0,
“pointer”: “/meshes/7/primitives/0/material”
},
{
“code”: “MESH_PRIMITIVE_TOO_FEW_TEXCOORDS”,
“message”: “Material is incompatible with mesh primitive: Texture binding ‘/materials/7/normalTexture’ needs ‘TEXCOORD_0’ attribute.”,
“severity”: 0,
“pointer”: “/meshes/7/primitives/0/material”
}
],
“truncated”: false
},
“info”: {
“version”: “2.0”,
“generator”: “Babylon.js v5.8.0”,
“resources”: [
{
“pointer”: “/buffers/0”,
“mimeType”: “application/gltf-buffer”,
“storage”: “glb”,
“byteLength”: 392092
},
{
“pointer”: “/images/0”,
“mimeType”: “image/png”,
“storage”: “buffer-view”,
“image”: {
“width”: 256,
“height”: 256,
“format”: “rgba”,
“primaries”: “srgb”,
“transfer”: “srgb”,
“bits”: 8
}
},
{
“pointer”: “/images/1”,
“mimeType”: “image/png”,
“storage”: “buffer-view”,
“image”: {
“width”: 256,
“height”: 256,
“format”: “rgba”,
“primaries”: “srgb”,
“transfer”: “srgb”,
“bits”: 8
}
},
{
“pointer”: “/images/2”,
“mimeType”: “image/png”,
“storage”: “buffer-view”,
“image”: {
“width”: 256,
“height”: 256,
“format”: “rgba”,
“primaries”: “srgb”,
“transfer”: “srgb”,
“bits”: 8
}
}
],
“animationCount”: 0,
“materialCount”: 8,
“hasMorphTargets”: false,
“hasSkins”: false,
“hasTextures”: true,
“hasDefaultScene”: true,
“drawCallCount”: 8,
“totalVertexCount”: 9016,
“totalTriangleCount”: 8712,
“maxUVs”: 1,
“maxInfluences”: 0,
“maxAttributes”: 3
}
}
I believe your file is not completely valid GLB file
That is why textures are not displayed.
The best you can do is to take the original file (before KTX conversion) and check for errors.
You may also try to convert your original textures to KTX with this tool - https://glb.babylonpress.org/