Blog'a geri dön
Formatlar

KTX Formatı: Khronos Doku Kabı İçin Tam Kılavuz

20 dk okuma

KTX (Khronos Texture), Khronos Group tarafından geliştirilen ve sürdürülen doku kapsayıcı formatları için resmi açık standarttır. OpenGL, OpenGL ES ve Vulkan gibi modern grafik API'leri için özel olarak tasarlanmış telifsiz, satıcıdan bağımsız bir format olan KTX, sıkıştırılmış dokuları farklı platformlar ve uygulamalar arasında depolamak ve taşımak için standartlaştırılmış bir yol sağlar. Eski OpenGL uygulamaları için KTX1 ve modern Vulkan tabanlı iş akışları için KTX2 olmak üzere iki ana sürümüyle KTX, profesyonel grafik geliştirmede doku varlığı işlem hatları için omurga görevi görür.

KTX Formatı Nedir?

KTX, doku verilerini doğrudan grafik donanımı tarafından tüketilebilecek şekilde depolamak için tasarlanmış bir kap formatıdır. PNG veya JPEG gibi görüntü formatlarından farklı olarak KTX, ETC, ASTC, BCn ve PVRTC gibi çeşitli sıkıştırma formatlarını destekleyerek GPU doku yüklemesi için özel olarak optimize edilmiştir. Format, dokuların doğru şekilde yorumlanması için gerekli meta verileri içerir ve bu da onu platformlar arası grafik uygulamaları için ideal kılar.

Format başlangıçta farklı platformlar ve API'ler genelinde doku sıkıştırma formatlarındaki parçalanmayı gidermek için oluşturuldu. KTX'ten önce geliştiricilerin DirectX için DDS, PowerVR için PVR ve çeşitli platforma özel formatlar gibi birden fazla özel formatı kullanması gerekiyordu. KTX, doğrudan GPU yükleme yetenekleriyle OpenGL, OpenGL ES ve Vulkan'da çalışan birleşik bir çözüm sunar.

KTX, piyasaya sürülmesinden bu yana önemli ölçüde gelişti; KTX2, özellikler ve yetenekler açısından büyük bir ileriye doğru atılımı temsil ediyor. Daha yeni sürüm, Basis Universal gibi süper sıkıştırma şemaları için destek, Veri Formatı Tanımlayıcısı (DFD) aracılığıyla gelişmiş meta veri işleme ve doku dizileri, 3B dokular ve küp haritaları gibi modern doku özellikleri için daha iyi destek sağlar.

KTX Formatının Temel Özellikleri

Khronos Standardı

Sektörün geniş çapta benimsenmesini ve platformlar arası uyumluluğu sağlayan resmi Khronos Grubu standardı

Agnostik Biçim

ETC, ASTC, BCn, PVRTC ve sıkıştırılmamış formatlar dahil hemen hemen tüm doku sıkıştırma formatlarını destekler

Zengin Meta Veri

Yönlendirme, renk alanı, sıkıştırma ayarları ve özel anahtar/değer çiftlerini içeren kapsamlı meta veri desteği

Eksiksiz Mipmap Desteği

Mipmap zincirleri, doku dizileri, 3B dokular ve küp haritaları için yerel destek

Gelişmiş Doku Türleri

Doku dizileri, 3B dokular, küp haritaları ve diğer gelişmiş doku türleri için destek

Çapraz Platform

Windows, macOS, Linux, iOS, Android ve web platformlarında sorunsuz çalışır

KTX Versiyon Karşılaştırması

KTX1 ve KTX2 arasındaki farkları anlamak, uygulamanız için doğru formatı seçmeniz açısından çok önemlidir:

KTX1 (Eski)

OpenGL ve OpenGL ES uygulamaları için tasarlanmış orijinal KTX formatı. OpenGL doku parametrelerine dayalı basit yapı.

KTX1, anahtar-değer verileri ve ardından görüntü verilerinin takip ettiği basit bir başlık yapısı kullanır. Eski OpenGL sürümleriyle uyumludur ve temel doku depolama yetenekleri sağlar. Hala geniş çapta desteklense de KTX2'nin gelişmiş özelliklerinden yoksundur.

KTX2 (Modern)

Vulkan ve yeni nesil grafik uygulamaları için tasarlanmış modern KTX formatı. Gelişmiş özellikler ve süper sıkıştırma desteği.

KTX2, Temel Evrensel süper sıkıştırma, Veri Formatı Tanımlayıcıları (DFD), verimli veri erişimi için seviye indeksi ve doku dizileri ve 3D dokular için daha iyi destek gibi önemli iyileştirmeler sunar. Yeni projeler için önerilen seçimdir.

Desteklenen Sıkıştırma Formatları

KTX, çeşitli sıkıştırma formatları için bir kap görevi görerek onu inanılmaz derecede çok yönlü hale getirir:

ETC (Ericsson Doku Sıkıştırma)

RGB için ETC1 ve RGBA sıkıştırması için ETC2 ile mobil cihazlar için standart sıkıştırma

ASTC (Uyarlanabilir Ölçeklenebilir Doku Sıkıştırma)

4x4'ten 12x12 piksele kadar çeşitli blok boyutlarını destekleyen modern, yüksek kaliteli sıkıştırma

BCn (Blok Sıkıştırma)

Masaüstü oyunları ve Windows uygulamaları için BC1-BC7 dahil DirectX sıkıştırma formatları

PVRTC (PowerVR Doku Sıkıştırma)

2bpp ve 4bpp değişkenleriyle iOS ve gömülü sistemler için PowerVR'ye özgü sıkıştırma

Sıkıştırılmamış Formatlar

RGB8, RGBA8 ve çeşitli HDR formatları gibi standart sıkıştırılmamış formatlar

KTX Dosya Yapısı

KTX dosyaları üç ana bileşenden oluşan yapılandırılmış bir formatı takip eder:

Dosya Başlığı

Format tanımlamasını, sürüm bilgilerini ve boyutlar ve format gibi temel doku meta verilerini içerir

Anahtar-Değer Verileri

Ek doku bilgileri için özel anahtar/değer çiftlerini içeren meta veri bölümü

Görüntü Verileri

Mipmap düzeyleri ve dizi katmanları tarafından düzenlenen gerçek sıkıştırılmış veya sıkıştırılmamış doku verileri

KTX1 Başlık Yapısı

KTX1, OpenGL doku parametrelerini temel alan 64 baytlık bir başlık kullanır:

Tanımlayıcı (12 bayt)

"«KTX 11»\r\n\x1A\n" - Doğrulama için dosya formatı tanımlayıcı

Endianness (4 bayt)

Bayt sırasını belirtir: Little-endian için 0x04030201, big-endian için 0x01020304

glType (4 bayt)

OpenGL veri türü (ör. GL_UNSIGNED_BYTE) - sıkıştırılmış formatlar için 0

glFormat (4 bayt)

OpenGL formatı (ör. GL_RGB) - sıkıştırılmış formatlar için 0

glInternalFormat (4 bayt)

OpenGL dahili formatı (ör. GL_COMPRESSED_RGB8_ETC2)

glBaseInternalFormat (4 bayt)

Eski OpenGL sürümleriyle uyumluluk için temel OpenGL formatı

piksel Genişliği (4 bayt)

Piksel cinsinden doku genişliği

piksel Yüksekliği (4 bayt)

Piksel cinsinden doku yüksekliği (1D dokular için 0)

piksel Derinliği (4 bayt)

Piksel cinsinden doku derinliği (2D dokular için 0)

numberOfArrayElements (4 bayt)

Dizi öğelerinin sayısı (dizi dışı dokular için 0)

numberOfFaces (4 bayt)

Yüz sayısı (küp haritalar için 6, normal dokular için 1)

numberOfMipmapLevels (4 bayt)

Mipmap düzeylerinin sayısı (mipmap olmadığında 1)

bytesOfKeyValueData (4 bayt)

Bayt cinsinden anahtar/değer verileri bölümünün boyutu

KTX2 Yapı İyileştirmeleri

KTX2, gelişmiş işlevsellik için birkaç yeni yapısal bileşen sunar:

Geliştirilmiş Başlık

Sürüm bilgileri, format tanımlayıcıları ve veri boyutu göstergeleri ile geliştirilmiş başlık yapısı

Seviye İndeksi

Belirli mipmap düzeylerine ve doku verilerine hızlı erişim için etkili indeksleme sistemi

Veri Formatı Tanımlayıcısı (DFD)

OpenGL format sabitlerinin yerini alan kapsamlı format tanımlama sistemi

Anahtar-Değer Verileri

Uluslararasılaştırma ve karmaşık veri türlerini destekleyen gelişmiş meta veri sistemi

Süper Sıkıştırma Küresel Verileri

Basis Universal gibi süper sıkıştırma şemaları için küresel veriler

Meta Veriler ve Anahtar-Değer Verileri

KTX dosyaları, anahtar/değer verileri bölümü aracılığıyla kapsamlı meta veriler içerebilir:

Doku Yönü

Düzgün işleme için doku yönünü (sol üst, sağ alt vb.) belirtir

Format Bilgisi

Sıkıştırma formatı, kalite ayarları ve kodlama parametreleriyle ilgili ayrıntılar

Yazar Bilgileri

KTX dosyasını oluşturan araç veya uygulama hakkında bilgi

Sıkıştırma Ayarları

Kullanılan özel sıkıştırma parametreleri ve kalite ayarları

Renk Alanı

sRGB, doğrusal ve HDR renk profilleri dahil renk alanı bilgileri

KTX Geliştirme İş Akışı

KTX dokularını oluşturmak ve yönetmek şu temel aşamaları içerir:

1

Kaynak Varlık Hazırlığı

Uygun boyut ve renk profilleriyle yüksek kaliteli kaynak görselleri hazırlayın

2

Format Seçimi

Hedef platformlara ve kalite gereksinimlerine göre uygun sıkıştırma formatını seçin

3

Doku Sıkıştırma

Kaynak görüntüleri KTX formatına sıkıştırmak için toktx veya varlık ardışık düzenleri gibi araçları kullanın

4

Meta Veri Ekleme

Yön, renk alanı ve özel özellikler dahil uygun meta verileri ekleyin

5

Dosya Doğrulaması

KTX dosyalarını hedef platformlarla uyumluluk ve doğruluk açısından doğrulayın

6

Uygulama Entegrasyonu

KTX yükleme ve işlemeyi grafik uygulamanıza entegre edin

KTX Formatının Temel Avantajları

Endüstri Standardı

Uzun vadeli destek ve geniş endüstri benimsenmesini sağlayan Khronos Group standardı

Biçim Esnekliği

Hemen hemen her türlü sıkıştırma formatını destekleyerek geleceğe hazır ve çok yönlü olmasını sağlar

Zengin Meta Veri

Uygun doku yorumlaması ve yönetimi için kapsamlı meta veri sistemi

Gelişmiş Özellikler

Diziler, 3B dokular ve süper sıkıştırma gibi modern doku özellikleri desteği

Çapraz Platform

Değişiklik veya dönüştürme gerekmeden tüm büyük platformlarda çalışır

Geleceğe Hazır

KTX2 ve süper sıkıştırma desteği, gelecekteki grafik teknolojileriyle uyumluluğu sağlar

Yaygın Kullanım Durumları

Vulkan Uygulamaları

Doğrudan GPU yükleme özelliklerine sahip modern Vulkan uygulamaları için birincil format

OpenGL Uygulamaları

OpenGL ve OpenGL ES uygulamaları için platformlar arası doku formatı

WebGL Uygulamaları

KTX doku yükleyicileri ve WebGL aracılığıyla web tabanlı grafik uygulamaları

Oyun Geliştirme

Platformlar arası doku varlığı işlem hatlarıyla profesyonel oyun geliştirme

VR/AR Uygulamaları

Verimli doku yükleme gerektiren sanal ve artırılmış gerçeklik uygulamaları

Mobil Geliştirme

Optimize edilmiş doku sıkıştırma formatlarına sahip iOS ve Android uygulamaları

KTX ve Diğer Formatlar

KTX'in diğer doku formatlarıyla karşılaştırmasını anlamak:

KTX ve DDS

KTX platformlar arası ve API'den bağımsızdır, DDS ise DirectX'e özgü ve Windows odaklıdır

KTX ve PVR

KTX birden fazla sıkıştırma formatını desteklerken PVR, PowerVR GPU'lar ve iOS için optimize edilmiştir

KTX1 ve KTX2

KTX2, eski KTX1'e göre süper sıkıştırma, daha iyi meta veriler ve modern özellikler sunar

KTX ve Temel Evrensel

KTX bir konteyner formatıdır, Basis Universal ise KTX2'de saklanabilen bir sıkıştırma formatıdır

Geliştirme Araçları ve Kaynakları

toktx Aracı

Çeşitli görüntü formatlarından KTX dosyaları oluşturmaya ve dönüştürmeye yönelik resmi komut satırı aracı

KTX-Araçlar Paketi

Toktx, ktxinfo, ktxcheck ve diğer yardımcı programları içeren eksiksiz araç paketi

Vulkan SDK'sı

Resmi Vulkan SDK'sı KTX desteği ve yükleme yardımcı programlarını içerir

OpenGL Kütüphaneleri

Yerleşik KTX desteğine sahip çeşitli OpenGL kitaplıkları ve çerçeveleri

Birlik KTX Desteği

Unity motoru, eklentiler ve varlık işlem hatları aracılığıyla KTX doku yüklemesini destekler

Gerçekdışı Motor KTX

Unreal Engine, doku sıkıştırma ayarları aracılığıyla KTX doku desteği sağlar

KTX Geliştirme İçin En İyi Uygulamalar

Modern özelliklerden ve süper sıkıştırma özelliklerinden yararlanmak için yeni projelerde KTX2'yi kullanın

Hedef platformlara göre uygun sıkıştırma formatını seçin: Mobil cihazlar için ETC, masaüstü bilgisayarlar için BCn

Platformlar arasında dokuların doğru şekilde yorumlanmasını sağlamak için kapsamlı meta veriler ekleyin

Uyumluluk sorunlarını önlemek için hedef donanımdaki KTX dosyalarını geliştirmenin erken aşamalarında doğrulayın

Farklı görüntüleme mesafelerinde görüntü oluşturma performansını optimize etmek için uygun mipmap ayarlarını kullanın

Optimum dosya boyutlarıyla platformlar arası dağıtım için Basis Universal süper sıkıştırmayı kullanmayı düşünün

Doku yükleme performansını gerçek hedef donanım ve ağ koşullarıyla test edin

Desteklenmeyen formatlar veya özellikler için uygun hata işleme ve geri dönüş mekanizmalarını uygulayın

Geçiş ve Yükseltme Yolları

KTX'e geçiş veya sürümler arasında yükseltme yönergeleri:

KTX1'den KTX2'ye geçiş

Eski KTX1 dosyalarını modern KTX2 biçimine dönüştürmek için toktx'i --ktx2 bayrağıyla birlikte kullanın

DDS'den KTX'ye dönüştürme

DirectX dokularını platformlar arası KTX formatına geçirmek için toktx veya doku dönüştürme araçlarını kullanın

PVR'den KTX'ye dönüştürme

Platformlar arası uyumluluk için iOS'a özel PVR dokularını KTX'e dönüştürün

Temel Evrensel Sıkıştırma Ekleme

KTX2 dosyalarına süper sıkıştırma eklemek için toktx'i Basis Universal seçenekleriyle kullanın

Neden KTX2'yi Seçmelisiniz?

KTX2, KTX1 ve diğer formatlara göre önemli avantajlar sunar:

Temel Evrensel Destek

Evrensel doku dağıtımını mümkün kılan Basis Universal süper sıkıştırma için yerel destek

Gelişmiş Sıkıştırma

Modern sıkıştırma şemaları sayesinde geliştirilmiş sıkıştırma oranları ve kalitesi

Süper Sıkıştırma Şemaları

Basis Universal'in ötesinde çeşitli süper sıkıştırma formatları desteği

Veri Formatı Tanımlayıcıları

Eski OpenGL sabitlerinin yerini alan kapsamlı format tanımlama sistemi

Geleceğe Hazır Tasarım

Modern ve geleceğin grafik API'leri ve sıkıştırma teknolojileri için tasarlandı

Çözüm

KTX formatı, platformlar arası doku yönetimi için endüstri standardını temsil eder ve geliştiricilere doku varlığı işlem hatları için sağlam, esnek ve geleceğe yönelik bir çözüm sunar. İster OpenGL uygulamaları için eski KTX1'i ister Vulkan tabanlı geliştirme için modern KTX2'yi kullanıyor olun, KTX, profesyonel grafik geliştirme için gerekli araçları ve özellikleri sunar.

Grafik endüstrisi platformlar arası gelişime ve daha gelişmiş sıkıştırma teknolojilerine doğru gelişmeye devam ederken, Basis Universal süper sıkıştırma desteği ve modern özellikleriyle KTX2, kendisini doku yönetimi için önde gelen seçenek olarak konumlandırıyor. KTX formatını ve yeteneklerini anlamak, modern grafik uygulamalarıyla çalışan her geliştirici için çok önemlidir.

İlave Okumalar ve Kaynaklar

Bu güvenilir kaynaklarla bilginizi genişletin: