Kullanım Kılavuzu

Bölüm 8 — Dışa Aktarma Biçimleri

Simple modunda dışa aktarma biçim seçimi — altı biçim kartı
Simple modunda dışa aktarma biçim seçimi — altı biçim kartı
Çiçek demeti üzerinde 5K iter eğitim sonrası canlı dışa aktarma biçim ızgarası — dinamik boyut hesaplı altı kart (PLY 742 KB seçili, SPZ 74 KB, glTF 708 KB, .splat 96 KB, Orbit Video ~Sıfır KB, Web Viewer 133 KB), sağda zaten kaydedilmiş PLY ile Dışa Aktarma Geçmişi
Çiçek demeti üzerinde 5K iter eğitim sonrası canlı dışa aktarma biçim ızgarası — dinamik boyut hesaplı altı kart (PLY 742 KB seçili, SPZ 74 KB, glTF 708 KB, .splat 96 KB, Orbit Video ~Sıfır KB, Web Viewer 133 KB), sağda zaten kaydedilmiş PLY ile Dışa Aktarma Geçmişi

Resimde ne göründüğü (2 991 Gaussian, SH derecesi 3, IP-temiz test seti olarak sentetik bir Blender çiçek demeti): Her biçim kartının altındaki boyut bilgileri mevcut Gaussian sayısı ve biçim yükünden canlı olarak hesaplanır — sabit kodlanmamıştır. 2 991 Gaussian'dan (SH derecesi 3) böylece 742 KB PLY, 74 KB SPZ (kuantizasyon sayesinde ~10× daha küçük çarpan), 708 KB glTF (KHR_gaussian_splatting uzantısıyla, bu yüzden neredeyse PLY eşdeğeri), 96 KB .splat (sıkıştırılmış Gaussian başına 24 bayt biçim) oluşur. Orbit Video „~Sıfır KB" gösterir, çünkü boyut ancak MP4 kodlamasından sonra bilinir. Web Viewer (133 KB) bağımsız bir HTML dosyasını gömülü WebGL görüntüleyici ve sıkıştırılmış splat verileriyle paketler — görüntüleyici ek yükü nedeniyle saf .splat'tan daha büyüktür. Sağdaki Dışa Aktarma Geçmişi, biçim hapı ve Finder'da göster eylemiyle birlikte zaten tamamlanmış PLY dışa aktarmayı listeler („training_20260527T211321Z.ply, 743 KB, 23:13").

Tamamlanmış bir eğitim bir Gaussian bulutu sağlar — birkaç yüz binden milyonlarcaya kadar 3B Gauss dağılımının sahneyi yeniden yapılandıran toplamı. RadianceKit bu bulutu sabit diske yazmanın on yolunu bilir. Bunlardan altısı saf 3D veri biçimidir (PLY, Compressed PLY, SPZ, SOG, glTF, .splat), biri bulutu hazır HTML görüntüleyiciyle (Web Viewer) birlikte paketler, biri bir orbit kamera çekiminden MP4 dosyası render eder (Orbit Video) ve ikisi Gaussian içerik dışa aktarmaz, yalnızca diğer eğitim pipeline'larında yeniden kullanım için SfM sonucunu (kamera pozları ve kabaca nokta bulutu) dışa aktarır (transforms.json + COLMAP-Workspace).

Hangi biçimin ne zaman doğru olduğu hedefe bağlıdır. Kalite kaybı olmadan tüm verinin arşivlenmesi için PLY alınır. Kendi sitende web görüntüleyici için çoğu kez .splat veya yerleşik Web Viewer yeterlidir. Dosya minimum olmalıysa SPZ veya SOG zahmete değer. SfM sonucunun Nerfstudio, Postshot veya Brush'ta yeniden kullanımı için transforms.json ve COLMAP Workspace doğru yollardır.

Tüm dışa aktarma işlevleri „Export" menüsünde ve Simple modunun son sihirbaz aşamasında bulunur. Çoğu biçim tamamen sandbox uyumludur ve App Store sürümünde çalışır. Yalnızca SOG harici bir ikili (cwebp) gerektirir; bu, App Store yapısında her zaman bulunmaz — detaylar için bkz. E4.

E1 — PLY (.ply)

NEREDE

Menü çubuğu → Export → 3D Formats → Export PLY… (⌘E). Simple modu: Sihirbaz adımı Export → „PLY" biçim kartı. Boyut: tipik %100 (referans değer). Şununla uyumlu: SuperSplat, PolyCam, tüm 3DGS görüntüleyicileri.

TEKNİK

PLY, 3D Gaussian Splatting için kanonik depolama biçimidir. RadianceKit standartlaştırılmış 3DGS özellik düzeniyle ikili little-endian bir dosya yazar: Gaussian başına üç bileşenli konum, her zaman sıfıra ayarlanmış üç normal, taban RGB rengi için üç DC-SH katsayısı (f_dc_0..2), ardından Kerbl-2023 makalesinde tanımlanmış transpoze edilmiş kanal-büyük dizimde 45'e kadar SH katsayısı (f_rest_0..44) (önce tüm R kanal katsayıları, sonra tüm G, sonra tüm B), ardından logit opaklık (ham sigmoid öncesi değerler), üç log-uzay ölçeği ve wxyz dörtlü dönüşü. İhraç edilen maksimum SH derecesi, kullanıcı isteği ile gerçek öğrenilen derecenin minimumuna sıkıştırılır; varsayılan 3'tür (45 kalan katsayı). Yazılmadan önce çok büyük bulutlarda taşmayı yakalamak için yük boyutu 64 bit tamsayı olarak hesaplanır. Dosya atomik olarak yazılır; bu, büyük bulutlarda kısa süreliğine iki kat disk alanı kaplar.

E2 — Compressed PLY (.ply)

NEREDE

Menü çubuğu → Export → 3D Formats → Export Compressed PLY…. Simple modu: „Compressed PLY" biçim kartı. Boyut: PLY'ye göre yaklaşık %10–20 (5 ile 10 kat sıkıştırma). Şununla uyumlu: SuperSplat, PlayCanvas-Engine, web tabanlı görüntüleyiciler.

TEKNİK

PLY biçiminin parçalı kuantizasyonlu PlayCanvas varyantı. Gaussian'lar 256'lık parçalar halinde gruplanır. Parça başına konum, ölçek ve renk için min/maks sınırlar ayrı ayrı başlığa yerleştirilir; tekil Gaussian'lar değerlerine bu sınırlara göre referans verir ve her biri 32 bite sıkıştırılır: konum ve ölçek 11-10-11 bit paketleme ile, dönüş 2-10-10-10 bit „smallest-three" dörtlü olarak, renk 8-8-8-8 RGBA olarak. Daha yüksek SH katsayıları bileşen başına sadece 8 bit ile kuantize edilir (Gaussian başına shCoeffCount * 3 uchar). Biçimin kendisi hâlâ ASCII başlıklı PLY'dir ve dolayısıyla temel olarak PLY araçlarıyla doğrulanabilir, ama vertex özellikleri uint alanları olarak ilan edilmiştir. SH derecesi sıkıştırmayı maksimize etmek için varsayılan 0'dır (kalan katsayı yok) — daha yüksek SH dereceleri açıkça seçilebilir.

E3 — SPZ (.spz)

NEREDE

Menü çubuğu → Export → 3D Formats → Export SPZ…. Simple modu: „SPZ" biçim kartı. Boyut: PLY'ye göre yaklaşık %10 (%90 daha küçük). Şununla uyumlu: Niantic Scaniverse, Niantic Spatial Fields, MetalSplatter.

TEKNİK

Niantic'in SPZ-v2 biçimi. Konumlar 24 bit sabit nokta olarak paketlenir (bu yaklaşık 0,25 mm çözünürlük verir), ölçekler log uzayda 8 bit kuantizasyonla, dönüşler 8 bit smallest-three olarak (v2'de yalnızca xyz saklanır, w decoder'da dörtlünün normundan türetilir), opaklıklar sigmoidlenmiş 8 bit değerler olarak. DC-SH, SPZ'ye özgü bir paketleme formülüyle (dc_raw * 0.15 * 255 + 0.5 * 255) saklanır, daha yüksek SH bantları katsayı başına 5 bit (Bant 1) veya 4 bit (Bant 2-3) ile. Paketlenen tüm ikili blob ardından standart gzip (RFC 1952) ile sıkıştırılır; bu da 1f 8b sihirli bayt'larıyla gzip'li bir konteyner biçim verir. RadianceKit bunun için sistem gzip'ini çağırır, çünkü Apple'ın yerleşik zlib API'si Spatial Fields veya MetalSplatter'daki SPZ okuyucularıyla uyumlu olmayan tescilli Apple framing'i üretir. Sistem gzip'i macOS sandbox içinde de çağrılabilir kalır.

E4 — SOG (.sog)

NEREDE

Menü çubuğu → Export → 3D Formats → Export SOG…. Simple modu: „SOG" biçim kartı. Boyut: PLY'ye göre yaklaşık %5–6 (15 ile 20 kat sıkıştırma — en küçük seçenek). Şununla uyumlu: PlayCanvas-Engine, SuperSplat editör.

TEKNİK

„Spatially Ordered Gaussians" — bulutu birden çok kayıpsız WebP görüntüsünde GPU'ya hazır olarak saklayan bir PlayCanvas biçimi. Önce tüm Gaussian'lar 3B Morton kodu (30 bit Z-sırası, eksen başına 10 bit) ile uzaysal olarak sıralanır; bu, görüntülere render'da sonradan önbellek yerelliği sağlar. Ardından konumlar simetrik log-dönüşümüyle (daha iyi dinamik aralık için) 16 bit değerlere kuantize edilir ve iki RGBA görüntüye bölünür (alt 8 bit için means_l.webp, üst 8 bit için means_u.webp). Dönüşler 3×8 bit artı 2 bit mod ile bir RGBA görüntüsünde smallest-three olarak kodlanır (Mod alpha'ya 252 + largest olarak yerleşir). Ölçekler ve DC-SH her biri 256 girişlik bir kod kitabıyla (tüm değerler üzerinde yüzdelik tabanlı dağıtılmış) kuantize edilir, indeksler scales.webp ve sh0.webp'e yerleşir. Beş görüntü artı kod kitapları ve sınırlarla bir meta.json bir ZIP dosyasına paketlenir (özel kodlayıcı, çünkü sandbox sistem zip'ini engeller) ve .sog uzantısıyla kaydedilir.

Dikkat Sandbox: SOG, harici bir ikili gerektiren tek biçim seçeneğidir. WebP kodlayıcı aşaması /usr/local/bin/cwebp veya /opt/homebrew/bin/cwebp'ten cwebp çağırır. cwebp ikilisi bulunamazsa, kod ham PNG kodlamaya geri döner — ama: PNG geri dönüşü SuperSplat'ta çalışmaz. App Store sürümünde yapı varyantına göre kullanılabilirliği değerlendir; geliştirici varyantında cwebp Homebrew ile kurulu olmalıdır (brew install webp).

E5 — glTF (.glb)

NEREDE

Menü çubuğu → Export → 3D Formats → Export glTF…. Simple modu: „glTF" biçim kartı. Boyut: PLY ile karşılaştırılabilir. Şununla uyumlu: KHR_gaussian_splatting uzantılı glTF görüntüleyicileri (Khronos taslak standardı).

TEKNİK

KHR_gaussian_splatting uzantı belirtimine göre kendi kendine yeten bir .glb ikili dosyası (ayrı bin dosya eki yok) yazar. Konumlar normal glTF POSITION köşe verisi (float3) olarak saklanır, diğer tüm özellikler (dönüş float4 olarak, ölçek float3 olarak, opaklık float olarak, SH katsayıları float3 × shCoeffCount olarak) ek köşe özelliklerinde yer alır ve uzantı üzerinden referans verilir. Önemli: glTF sağ elli Y-up koordinat sistemini kullanır, COLMAP/3DGS Y-down/Z-ileri çalışır. Bu yüzden dışa aktarıcı X ekseninde 180 derece dönüş uygular — konumlar (x, -y, -z) ile yeniden yazılır, dörtlüler (w, x, -y, -z)'ye uyarlanır. Bu, glTF görüntüleyicilerinde geometrik olarak doğru, ellerle uyumlu (ayna ters değil) bir temsil sağlar. JSON ve ikili parçalar GLB standardının gerektirdiği gibi 4 bayt hizalamaya doldurulur.

E6 — Splat (.splat)

NEREDE

Menü çubuğu → Export → 3D Formats → Export .splat…. Simple modu: „.splat" biçim kartı. Boyut: Gaussian başına tam olarak 32 bayt. Şununla uyumlu: gsplat.js, web tabanlı görüntüleyiciler (antimatter15 referansı), çoğu tarayıcı 3DGS demosu.

TEKNİK

antimatter15 .splat biçimi — Gaussian başına 32 bayt, başlık yok, dolaylama yok. Girdi başına düzen: 3 × float32 konum (dünya koordinatları), 3 × float32 ölçek (iç buffer'ın log-uzayından exp ile dönüştürülmüş), 4 × uint8 RGBA renk (DC-SH katsayısı SH_C0 = 0.282... ile ölçeklenmiş ve [0,255]'e sıkıştırılmış), 4 × uint8 dörtlü (w,x,y,z, normalize edilmiş ve bayt aralığına 128 + 128*q olarak kodlanmış). Yalnızca DC-SH saklanır — daha yüksek SH bantları atılır. Bu, biçimi son derece kompakt yapar, ama yansımalarda veya speküler vurgularda ortaya çıkan görünüm bağımlı renk değişikliklerine mal olur. Yazma sırası tam olarak bulutun indeks sırasıdır (uzaysal sıralama yok); gsplat.js gibi web görüntüleyicileri bu varsayımdan yola çıkarak render eder.

Firefox'ta açık Web Viewer — etrafında kamera işaretleri kürelerle render edilmiş çiçek demeti splat'ı, üstte tarayıcı sekme çubuğu görünür, CDN/sunucu kurulumu gerekmez
Firefox'ta açık Web Viewer — etrafında kamera işaretleri kürelerle render edilmiş çiçek demeti splat'ı, üstte tarayıcı sekme çubuğu görünür, CDN/sunucu kurulumu gerekmez. Bağımsız flowers-01.html doğrudan Finder'dan çift tıklamayla varsayılan tarayıcıda açıldı — gömülü WebGL2 programı Gaussian bulutunu ağ veya sunucu olmadan hemen render eder. Çiçek demeti etrafındaki siyah işaretler eğitim kameralarıdır, isteğe bağlı olarak gösterilebilir. Fare sürükle döndürür, kaydırma yakınlaştırır.

E7 — Web Viewer (.html)

NEREDE

Menü çubuğu → Export → Media → Export Web Viewer…. Simple modu: „Web Viewer" biçim kartı. Boyut: base64 kodlu splat verisi (≈ 4/3 ek yük) + yaklaşık 5 KB HTML/JS kabuğu. Şununla uyumlu: WebGL2'li herhangi modern tarayıcı (tüm masaüstleri, iOS 15+, Android 5+).

TEKNİK

Gaussian bulutunu tamamen satır içi yazılmış bir WebGL2 render'cıyla tek bir .html dosyasında paketler. CDN bağımlılığı yok, WASM yok, ikinci dosya yok. Bulut önce dahili olarak .splat ikili olarak kodlanır (E6 ile aynı 32 bayt mantığı), sonra base64 gömülür, sonra tarayıcıda atob ile çözülür. Yerleşik render'cı kendi WebGL2 sıralamasını, fare orbit kontrolünü ve kare başına CPU sıralamasını yapar; tüm JS kodu (shader'lar, matematik, döngü) çıktı HTML'de görülebilir. Depolama-render'cı sınırındaki eksen kuralı E5'tekiyle aynıdır: Konum (x, -y, -z), dörtlü (w, x, -y, -z). İsteğe bağlı bir markalama bindirmesi gösterilebilir (ücretsiz katman anahtarı). Her şey satır içi olduğundan dosya file:// protokolünden doğrudan da çalışır — test için yerel web sunucusuna gerek yoktur.

flowers-01.mp4'ten çıkarılan tek kare — profil render'ında çiçek demeti, kamera işaretleri görünür beyaz platform, siyah arka plan — yaklaşık videonun 5sn'sindeki tipik orbit kamera çekim karesi
flowers-01.mp4'ten çıkarılan tek kare — profil render'ında çiçek demeti, kamera işaretleri görünür beyaz platform, siyah arka plan (varsayılan görüntüleyici arka planı, Ayarlar'da değiştirilebilir). Kamera sahnenin etrafında parametrik bir yörüngede döner (yükseklik + mesafe sabit, yaw döner), tipik süre 30 veya 60 fps'de 6–10 saniye. Kare çözünürlüğü VideoPreset üzerinden 480p'den 8K'ya ölçeklenebilir.

E8 — Orbit Video (.mp4/.mov)

NEREDE

Menü çubuğu → Viewport → Record Turntable Video VEYA Menü çubuğu → Export → Media → Export Orbit Video…. Simple modu: 3–30 sn süre kaydırıcısıyla „Orbit Video" biçim kartı. Boyut: süreye, çözünürlüğe, bit hızına bağlı. Şununla uyumlu: tüm platformlar (H.264 ve HEVC Apple standardıdır).

TEKNİK

Gaussian bulutunu bir parametrik orbit kamera çekimi boyunca render eder ve her kareyi AVAssetWriter üzerinden bir MP4 veya MOV dosyasına kodlar. Orbit yapılandırması dönüş hızını (devirler), mesafeyi, yüksekliği, FOV'yu, süreyi ve ease-in/out faktörünü kontrol eder. Kare başına dünya uyum matrisi (render'cı tarafından dahili koordinatları Y-up orbit dünyasına döndürmek için hesaplanır) kamera ile çarpılır, ardından MetalSplatter'a özgü Y yansıması uygulanır. Ekran dışı render hedefi IOSurface üzerinden kodlayıcı için bir CVPixelBuffer'a çekilir. Kodlayıcı H.264 ve HEVC, yapılandırılabilir bit hızı ve 480p'den 8K'ya çözünürlük destekler. İlk kareden önce render'cı 200 ms bekler, böylece ilk splat sıralaması tamamlanır. Bu dışa aktarma GPU bağlıdır — 8K ve milyonlarca Gaussian'da kare başına render süresi birkaç saniyedir; yani 6 sn'lik video için 10–30 dakika toplam render süresi mümkündür.

E9 — SfM Transforms (transforms.json)

NEREDE

Menü çubuğu → Export → Photogrammetry → Export SfM (transforms.json)…. Boyut: tipik 1–10 KB (yalnızca pozlar + intrinsikler, görüntü yok, Gaussian yok). Şununla uyumlu: nerfstudio, Brush, gsplat, OpenSplat, Meshroom, tüm modern feed-forward 3DGS eğiticileri.

TEKNİK

Kamera pozları listesi artı paylaşılan intrinsiklerle nerfstudio transforms.json biçimini yazar. Kamera başına view matrisi (RadianceKit içi: COLMAP kuralında World-to-Camera) ters çevrilir, ardından kamera yerel Y ve Z taban vektörleri nerfstudio kuralına dönüştürülmek için yansıtılır (OpenGL stili, kamera -Z boyunca bakar, +Y yukarıdır). Son 4×4 matris her karenin transform_matrix alanına çift sayıdan oluşan satır büyük iç içe dizi olarak yerleşir. Intrinsikler üst düzeyde saklanır (odak uzaklığı x/y, ana nokta x/y, görüntü genişliği/yüksekliği, camera_model = "OPENCV", artı bozulma katsayıları k1, k2, p1, p2) — dışa aktarıcı birden çok farklı intrinsik seti algılarsa kare başına yazılır. Görüntü yolları JSON dosyasına göre images/<filename> olarak yazılır; kullanıcı eğitim fotoğraflarıyla bir kardeş images/ klasörü oluşturmalıdır.

E10 — COLMAP Workspace (sparse/0/)

NEREDE

Menü çubuğu → Export → Photogrammetry → Export SfM (COLMAP Workspace)…. Boyut: üç ikili dosya birlikte tipik 4–8 MB — points3D.bin baskındır (seyrek bulutun 3B noktası başına bir satır), images.bin ve cameras.bin her biri 100 KB'nin oldukça altındadır. Şununla uyumlu: COLMAP'in kendisi, Nerfstudio, Postshot, Meshroom, bir COLMAP sparse/ dizini bekleyen tüm araçlar.

TEKNİK

Üç ikili dosyayla standart COLMAP sparse/0/ düzenini yazar: cameras.bin, images.bin, points3D.bin. Biçim referansı resmi COLMAP belgeleridir. cameras.bin tekilleştirilmiş intrinsik listesini içerir (aynı intrinsiklere ve görüntü boyutuna sahip kameralar tek bir girdiye birleştirilir); kullanılan kamera modeli OPENCV (Model 4), fx/fy/cx/cy artı dört bozulma katsayısı k1/k2/p1/p2 ile. images.bin görüntü başına pozu wxyz dörtlü artı çeviri olarak, ardından kamera kimliği ve dosya adıyla listeler; 2D-3D karşılıkları saklanmaz. points3D.bin SfM nokta bulutunu konum, renk (0-255 RGB) ve yeniden projeksiyon ile track uzunluğu için varsayılan değerlerle içerir. Her şey little-endian olarak yazılır. RadianceKit'e yeniden içe aktarma File menüsü → „Import COLMAP/Metashape Workspace…" üzerinden çalışır (SfM Arka Uç bölümünde bkz. Q3).

Hangi biçim ne zaman?

HedefBiçim
Kendi sitende web görüntüleyiciE7 Web Viewer (.html)
gsplat.js ile web görüntüleyiciE6 Splat (.splat)
Postshot / Nerfstudio'da pipeline yeniden kullanımıE9 transforms.json + E10 COLMAP Workspace
SuperSplat düzenlemeE1 PLY veya E2 Compressed PLY
Niantic Scaniverse / Spatial FieldsE3 SPZ
Maksimum sıkıştırmaE4 SOG (cwebp gerekli)
Pazarlama/sosyal videoE8 Orbit Video

Hızlı karşılaştırma

BiçimUzantıSandboxBoyut (1M Gauss)En iyi kullanım
E1 PLY.plyevet~250 MBArşiv, en yüksek uyumluluk
E2 Compressed PLY.plyevet~40 MBWeb + SuperSplat
E3 SPZ.spzevet (gzip spawn)~40 MBNiantic + Mobil
E4 SOG.sogkoşullu (cwebp)~20 MBMaksimum sıkıştırma
E5 glTF.glbevet~250 MBKhronos pipeline
E6 Splat.splatevet~32 MBgsplat.js web görüntüleyici
E7 Web Viewer.htmlevet~45 MBBağımsız tarayıcı dosyası
E8 Orbit Video.mp4/.movevetdeğişkenSosyal/Pazarlama
E9 SfM Transforms.jsonevet~5 KBPoz aktarımı
E10 COLMAP WorkspaceDizinevet~4–8 MBPoz aktarımı ikili

Boyut sütunu SH derecesi 3 ile 1 Mln Gaussian için kabaca yön göstericidir. Gerçek değerler sahnenin sıkıştırılabilirliğine göre değişir; SH derecesi 0, PLY/glTF'yi 4 kat azaltır.