# Does blender support ktx2 texture file in glb

**URL:** <https://forum.babylonjs.com/t/does-blender-support-ktx2-texture-file-in-glb/52642>\
**Category:** Questions\
**Tags:** material, ktx2\
**Created:** [August 8, 2024, 12:16pm UTC](https://forum.babylonjs.com/t/does-blender-support-ktx2-texture-file-in-glb/52642 "2024-08-08T12:16:42Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![ansh21222](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/ansh21222/32/33789_2.png) [@ansh21222](https://forum.babylonjs.com/u/ansh21222)\
**Post date:** [August 8, 2024, 12:16pm UTC](https://forum.babylonjs.com/t/does-blender-support-ktx2-texture-file-in-glb/52642/1 "2024-08-08T12:16:42Z")

</div>

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  
 ![image](https://us1.discourse-cdn.com/flex024/uploads/babylonjs/original/3X/c/d/cd4ba839d1d6e424e412cc10f1b1e62385533a54.png)

---

<div class="post-metadata">

**Author:** ![labris](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/labris/32/12576_2.png) [@labris](https://forum.babylonjs.com/u/labris)\
**Post date:** [August 8, 2024, 12:36pm UTC](https://forum.babylonjs.com/t/does-blender-support-ktx2-texture-file-in-glb/52642/2 "2024-08-08T12:36:06Z")

</div>

Blender does not support KTX2 textures at the moment.  
As for the second file it is hard to say anything without any information.

---

<div class="post-metadata">

**Author:** ![ansh21222](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/ansh21222/32/33789_2.png) [@ansh21222](https://forum.babylonjs.com/u/ansh21222)\
**Post date:** [August 8, 2024, 12:38pm UTC](https://forum.babylonjs.com/t/does-blender-support-ktx2-texture-file-in-glb/52642/3 "2024-08-08T12:38:52Z")

</div>

does the babylon sandbox support ktx2 files?  
Because when I uploaded the file to the sandbox it shows like this

 ![image](https://us1.discourse-cdn.com/flex024/uploads/babylonjs/original/3X/9/8/98a333f433b8468a185daf77642a2ee58aef6302.png)

---

<div class="post-metadata">

**Author:** ![labris](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/labris/32/12576_2.png) [@labris](https://forum.babylonjs.com/u/labris)\
**Post date:** [August 8, 2024, 12:55pm UTC](https://forum.babylonjs.com/t/does-blender-support-ktx2-texture-file-in-glb/52642/4 "2024-08-08T12:55:39Z")

</div>

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/](https://gltf.report/))

---

<div class="post-metadata">

**Author:** ![ansh21222](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/ansh21222/32/33789_2.png) [@ansh21222](https://forum.babylonjs.com/u/ansh21222)\
**Post date:** [August 8, 2024, 12:57pm UTC](https://forum.babylonjs.com/t/does-blender-support-ktx2-texture-file-in-glb/52642/5 "2024-08-08T12:57:34Z")

</div>

yes

 ![image](https://us1.discourse-cdn.com/flex024/uploads/babylonjs/original/3X/2/5/2505b3e934ce31532ef84c8e9d9fcd4082363b30.png)  
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  
}  
}

---

<div class="post-metadata">

**Author:** ![labris](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/labris/32/12576_2.png) [@labris](https://forum.babylonjs.com/u/labris)\
**Post date:** [August 8, 2024, 1:20pm UTC](https://forum.babylonjs.com/t/does-blender-support-ktx2-texture-file-in-glb/52642/6 "2024-08-08T13:20:21Z")

</div>

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/](https://glb.babylonpress.org/)
