なぜ DDS を KTX2 に変換するのですか?
KTX2 は glTF 2.0 アセットに推奨されるテクスチャコンテナであり、Babylon.js、Three.js、Godot 4 などのエンジンがウェブ上でのハードウェア圧縮テクスチャに期待する形式です。DirectX ベースのパイプラインからクロスプラットフォームの 3D エンジンにテクスチャを移行する場合、Windows 中心な DDS 形式よりも .ktx2 が適切なターゲットとなります。
DDS から KTX2 への変換方法
texconv + toktx FREE
texconv (DirectXTex) を使用して .dds を PNG にデコードし、次に toktx (KTX-Software) で PNG を .ktx2 にエンコードします。どちらのツールも macOS および Linux でも動作します。
GIMP OPEN-SOURCE
GIMP で .dds を開いて確認または編集し、PNG としてエクスポートしてから、最終的な KTX2 エンコードのために PNG を toktx に渡します。
これらの形式について
品質と注意点
- ある GPU 圧縮形式から別の形式へ再エンコードするにはデコード手順が必要です。追加の品質低下を避けるため、中間形式にはロスレス(無劣化)の PNG を使用してください。
- toktx は、高品質な UASTC スーパー圧縮と、よりファイルサイズの小さい ETC1S をサポートしています。ターゲットとなるハードウェアとエンジンの要件に基づいて選択してください。
- toktx の一部のバージョンは DDS 入力を直接受け入れ、再エンコードなしで既存のブロック圧縮データを KTX2 にラップできます。お使いのリリースの toktx ドキュメントを確認してください。
よくある質問
コマンドラインを使わずに DDS を KTX2 に変換できますか?
GIMP で DDS を開いて確認や編集を行うことはできますが、KTX2 のエンコードには依然として toktx が必要です。GUI のみで完結するパスは存在しません。
DDS から KTX2 への変換で品質は低下しますか?
ロスレス PNG 中間形式へのデコードは無劣化ですが、最終的な KTX2 への再エンコード手順で品質の低下が発生します。
変換時にミップマップは保持されますか?
はい - toktx は DDS からミップマップチェーンを保持するか、
--genmipmap フラグを使用してベースレベルから再生成することができます。