[x3d-public] Background static image and dds

Michalis Kamburelis michalis.kambi at gmail.com
Tue Aug 6 16:30:29 PDT 2019


Andreas Plesch <andreasplesch at gmail.com> wrote:
> Is it your impression that KTX is already in wide use ? Googling around does not seem result in too many hits.
>

Both KTX and DDS are somewhat "obscure" image formats compared to
widespread PNG or JPG. KTX and DDS are specialized, and offer
something useful for graphic developers/engines (GPU compression,
cubemaps, 3d textures etc.) but intentionally do not care about disk
size (neither offers compression heavily oriented at smaller file size
like PNG or JPG encoding).

Comparing KTX only with DDS, it seems it depends on the application. I
used various texture compression tools (from
https://castle-engine.io/creating_data_auto_generated_textures.php#section_texture_compression
), some support only DDS, some support only KTX, some both. So I don't
really have a good answer "which is more popular", I really don't know
:) Both seem moderately popular now.

The reason for me advocating KTX support is because I think the future is KTX.

- KTX has a nice specification, that cares to satisfy various APIs.

- E.g. KTX can have bottom-up or top-down row order, so it can
trivially fit both OpenGL or Direct3D. This fixes one of the problems
with DDS --- DDS expects top-down row order (like Direct3D), so your
OpenGL(ES) implementation will either expect images flipped, or flip
them in shaders, or flip them at loading (which isn't easy for GPU
compressed formats).

- KTX is backed by Khronos, which has a good track with graphic
standards :) I think this will encourage adoption, which in turn will
mean that KTX will be supported by more and more tools so we all gain
inter-operability.

- KTX 2 is in-progress (
https://github.com/KhronosGroup/KTX-Specification/blob/master/ktxspec.adoc
), so it seems alive.

> glTF did not decide on a supported texture format (yet):
>
> https://github.com/KhronosGroup/glTF/issues/835
>

I saw in that ticket a resolution:
https://github.com/KhronosGroup/glTF/issues/835#issuecomment-441221064

"""
Closing this issue, since the path forward has been set.
KTX2 spec (WIP): https://github.com/KhronosGroup/KTX-Specification/
Texture transmission tools:
https://github.com/KhronosGroup/glTF-Texture-Transmission-Tools/
"""

There's info about it on:
https://www.khronos.org/assets/uploads/developers/library/2018-gdc-webgl-and-gltf/glTF-Texture-Transmission-GDC_Mar18.pdf
 . As far as I understand, glTF will support a new format for texture
data, "Universal Format", to which other formats can be easily
converted using tools from
https://github.com/KhronosGroup/glTF-Texture-Transmission-Tools/ . The
reasoning behind this is in comments above
https://github.com/KhronosGroup/glTF/issues/835#issuecomment-441221064
, I understand that KTX fits in this pipeline well.

Best regards,
Michalis



More information about the x3d-public mailing list