Uživatelská příručka

Kapitola 8 — Formáty exportu

Výběr formátu exportu v Režimu pro začátečníky — šest formátových karet
Výběr formátu exportu v Režimu pro začátečníky — šest formátových karet
Mřížka formátů exportu živě po 5K iter tréninku — všech šest karet s dynamickým výpočtem velikosti (PLY 742 KB vybráno, SPZ 74 KB, glTF 708 KB, .splat 96 KB, Orbit Video ~Zero KB, Web Viewer 133 KB), historie exportu vpravo s již uloženým PLY
Mřížka formátů exportu živě po 5K iter tréninku — všech šest karet s dynamickým výpočtem velikosti (PLY 742 KB vybráno, SPZ 74 KB, glTF 708 KB, .splat 96 KB, Orbit Video ~Zero KB, Web Viewer 133 KB), historie exportu vpravo s již uloženým PLY

Co je na obrázku (2 991 Gaussianů, SH stupeň 3, syntetické testovací sety): Údaje o velikosti pod každou kartou formátu se počítají živě z aktuálního počtu Gaussianů a režie formátu — nikoli napevno. Z 2 991 Gaussianů (SH stupeň 3) tak vzniká 742 KB PLY, 74 KB SPZ (faktor ~10× menší díky kvantizaci), 708 KB glTF (s rozšířením KHR_gaussian_splatting, tedy téměř ekvivalentní PLY), 96 KB .splat (komprimovaný 24-bajtový formát na Gaussian). Orbit Video ukazuje „~Zero KB", protože velikost je známa až po MP4 enkódování. Web Viewer (133 KB) balí samostatný HTML soubor s vloženým WebGL prohlížečem a komprimovanými splat daty — větší než čistý .splat kvůli režii prohlížeče. Historie exportu vpravo listuje již dokončený PLY export („training_20260527T211321Z.ply, 743 KB, 23:13") s pillou formátu a akcí reveal ve Finderu.

Dokončený trénink dodává Gaussian Cloud — kolekci několika set tisíc až milionů 3D Gaussovských rozdělení, která dohromady rekonstruují scénu. RadianceKit zná deset cest, jak tento cloud zapsat na disk. Šest z nich jsou čisté 3D datové formáty (PLY, Compressed PLY, SPZ, SOG, glTF, .splat), jeden balí cloud spolu s hotovým HTML prohlížečem (Web Viewer), jeden renderuje MP4 soubor z orbitální jízdy kamery (Orbit Video), a dva neexportují žádný Gaussovský obsah, pouze výsledek SfM (pozice kamer a hrubý mrak bodů) pro znovupoužití v jiných tréninkových pipeline (transforms.json + COLMAP workspace).

Který formát kdy je správný, závisí na cíli. Pro archivaci plných dat bez ztráty kvality bere se PLY. Pro web prohlížeč na vlastní stránce obvykle stačí .splat nebo vestavěný Web Viewer. Pokud má být soubor minimální, vyplatí se SPZ nebo SOG. Pro znovupoužití výsledku SfM v Nerfstudio, Postshot nebo Brush jsou transforms.json a COLMAP workspace správné cesty.

Všechny funkce exportu leží v menu „Export" i v Režimu pro začátečníky na poslední wizardové úrovni. Většina formátů je plně sandbox-kompatibilní a funguje v App Store verzi. Pouze SOG vyžaduje externí binárku (cwebp), která ve App Store buildu nemusí být přítomná — detaily viz E4.

E1 — PLY (.ply)

KDE

Řádek nabídek → Export → 3D Formats → Export PLY… (⌘E). Režim pro začátečníky: wizardový krok Export → karta formátu „PLY". Velikost: typicky 100 % (referenční hodnota). Kompatibilní s: SuperSplat, PolyCam, všechny 3DGS prohlížeče.

TECHNICKY

PLY je kanonický formát pro ukládání 3D Gaussian Splatting. RadianceKit zapisuje binární little-endian soubor se standardizovaným 3DGS property layoutem: na Gaussian tříkomponentní pozice, tři vždy nulové normály, tři DC-SH koeficienty (f_dc_0..2) pro základní RGB barvu, následně až 45 dalších SH koeficientů (f_rest_0..44) v transponovaném channel-major uspořádání definovaném Kerblovým paperem 2023 (nejprve všechny koeficienty R kanálu, pak všechny G, pak všechny B), následované logit-opacity (raw pre-sigmoid hodnoty), třemi log-space škálami a wxyz quaternion rotací. Maximální exportovaný SH stupeň je clampován na minimum uživatelského přání a skutečně naučeného stupně; default je 3 (45 rest koeficientů). Před zápisem se velikost payloadu počítá v 64-bitových integerech, aby se zachytil overflow u extrémně velkých cloudů. Soubor se zapisuje atomicky, což u velkých cloudů krátce zabírá dvojnásobné místo na disku.

E2 — Compressed PLY (.ply)

KDE

Řádek nabídek → Export → 3D Formats → Export Compressed PLY…. Režim pro začátečníky: karta formátu „Compressed PLY". Velikost: cca 10–20 % oproti PLY (5- až 10násobná komprese). Kompatibilní s: SuperSplat, PlayCanvas engine, web prohlížeče.

TECHNICKY

PlayCanvas varianta PLY formátu s chunked kvantizací. Gaussiany jsou seskupené po 256. Pro každý chunk se v hlavičce ukládají oddělené min/max meze pro pozici, škálu a barvu; jednotlivé Gaussiany referencují své hodnoty relativně k těmto mezím a jsou komprimovány na 32 bitů: pozice a škála s 11-10-11 bit packingem, rotace jako 2-10-10-10 bit „smallest-three" quaternion, barva jako 8-8-8-8 RGBA. Vyšší SH koeficienty se kvantizují pouze 8 bity na komponentu (shCoeffCount * 3 uchar na Gaussian). Samotný formát je stále PLY s ASCII hlavičkou a tedy v principu validovatelný PLY nástroji, ale vertex properties jsou deklarovány jako uint pole. SH stupeň je defaultně 0 (žádné rest koeficienty), aby se maximalizovala komprese — vyšší SH stupně lze explicitně zvolit.

E3 — SPZ (.spz)

KDE

Řádek nabídek → Export → 3D Formats → Export SPZ…. Režim pro začátečníky: karta formátu „SPZ". Velikost: cca 10 % oproti PLY (o 90 % menší). Kompatibilní s: Niantic Scaniverse, Niantic Spatial Fields, MetalSplatter.

TECHNICKY

Niantic SPZ-v2 formát. Pozice jsou packované jako 24-bit fixed-point (to dává cca 0,25 mm rozlišení), škály jako 8-bit kvantizace v log prostoru, rotace jako 8-bit smallest-three (v2 se ukládá pouze xyz, w se v dekodéru odvozuje z normy quaternionu), opacity jako sigmoidované 8-bit hodnoty. DC-SH se ukládá s SPZ-specifickou pack formulí (dc_raw * 0.15 * 255 + 0.5 * 255), vyšší SH bandy s 5 bity (band 1) resp. 4 bity (band 2-3) na koeficient. Celý zapakovaný binární blob se následně komprimuje standardním gzipem (RFC 1952), což dává gzipped container formát s magickými bajty 1f 8b. RadianceKit volá pro to systémový gzip, protože vestavěné Apple zlib API vytváří proprietární Apple framing, který by nebyl kompatibilní s SPZ readery v Spatial Fields nebo MetalSplatteru. Systémový gzip zůstává spawnovatelný i v rámci macOS sandboxu.

E4 — SOG (.sog)

KDE

Řádek nabídek → Export → 3D Formats → Export SOG…. Režim pro začátečníky: karta formátu „SOG". Velikost: cca 5–6 % oproti PLY (15- až 20násobná komprese — nejmenší možnost). Kompatibilní s: PlayCanvas engine, SuperSplat editor.

TECHNICKY

„Spatially Ordered Gaussians" — PlayCanvas formát, který ukládá cloud GPU-ready v několika lossless WebP obrázcích. Nejprve se všechny Gaussiany prostorově seřadí podle 3D Morton kódu (30-bit Z-order, 10 bitů na osu), což obrázkům poskytuje pozdější cache lokalitu v rendereru. Pak se pozice s symetrickou logaritmickou transformací (pro lepší dynamický rozsah) kvantizují na 16-bit hodnoty a rozdělí do dvou RGBA obrázků (means_l.webp pro spodních 8 bitů, means_u.webp pro horních). Rotace jsou kódovány jako smallest-three s 3×8 bit plus 2-bit mode v jednom RGBA obrázku (mode v alpha jako 252 + largest). Škály a DC-SH jsou kvantizovány codebookem se 256 položkami (percentilově rozdělené přes všechny hodnoty), indexy končí v scales.webp a sh0.webp. Pět obrázků plus meta.json s codebooky a hranicemi se zabalí do ZIP souboru (vlastní enkodér, protože sandbox blokuje systémový zip) a uloží s příponou .sog.

Pozor sandbox: SOG je jediná formátová volba, která vyžaduje externí binárku. WebP enkodér volá cwebp z /usr/local/bin/cwebp nebo /opt/homebrew/bin/cwebp. Pokud žádná cwebp binárka nenajde, kód spadne na surové PNG enkódování — ale: PNG fallback v SuperSplat nefunguje. V App Store verzi vyhodnoť dostupnost podle buildové varianty; ve vývojářské variantě musí být cwebp instalován přes Homebrew (brew install webp).

E5 — glTF (.glb)

KDE

Řádek nabídek → Export → 3D Formats → Export glTF…. Režim pro začátečníky: karta formátu „glTF". Velikost: srovnatelná s PLY. Kompatibilní s: glTF prohlížeče s rozšířením KHR_gaussian_splatting (Khronos draft standard).

TECHNICKY

Zapisuje samonosný binární .glb soubor (žádná samostatná bin příloha) podle specifikace rozšíření KHR_gaussian_splatting. Pozice se ukládají jako regulérní glTF POSITION vertex data (float3), všechny ostatní atributy (rotace jako float4, škála jako float3, opacity jako float, SH koeficienty jako float3 × shCoeffCount) leží v dodatečných vertex atributech a jsou referencovány přes rozšíření. Důležité: glTF používá pravotočivý Y-up souřadnicový systém, COLMAP/3DGS pracuje Y-down / Z-forward. Exportér proto aplikuje 180° rotaci kolem X osy — pozice se přepisují jako (x, -y, -z), quaterniony se upravují na (w, x, -y, -z). To dává geometricky korektní, ručnou (ne zrcadlově převrácenou) reprezentaci v glTF prohlížečích. JSON a binární chunky jsou paddované na 4-bajtové zarovnání, jak vyžaduje GLB standard.

E6 — Splat (.splat)

KDE

Řádek nabídek → Export → 3D Formats → Export .splat…. Režim pro začátečníky: karta formátu „.splat". Velikost: přesně 32 bajtů na Gaussian. Kompatibilní s: gsplat.js, web prohlížeče (antimatter15 reference), většina browser 3DGS dem.

TECHNICKY

antimatter15 .splat formát — 32 bajtů na Gaussian, žádná hlavička, žádná indirekce. Layout na záznam: 3 × float32 pozice (světové souřadnice), 3 × float32 škála (exp transformované z log space interního bufferu), 4 × uint8 RGBA barva (DC-SH koeficient škálovaný s SH_C0 = 0.282... a clampovaný na [0,255]), 4 × uint8 quaternion (w,x,y,z, normalizovaný a kódovaný jako 128 + 128*q do bajtového rozsahu). Ukládá se pouze DC-SH — vyšší SH bandy jsou zahozeny. To dělá formát extrémně kompaktní, ale stojí to view-dependent změny barvy, ke kterým dochází u odrazů nebo spekulárních highlights. Pořadí zápisu je přesně indexové pořadí cloudu (žádné prostorové třídění), web prohlížeče jako gsplat.js z toho při renderování vychází.

Web Viewer otevřený ve Firefoxu — splat scéna renderovaná s okolními marker sférami kamer, lišta záložek prohlížeče nahoře viditelná, žádný CDN/server setup nepotřeba
Web Viewer otevřený ve Firefoxu — splat scéna renderovaná s okolními marker sférami kamer, lišta záložek prohlížeče nahoře viditelná, žádný CDN/server setup nepotřeba. Samostatný flowers-01.html přímo z Finderu otevřený dvojklikem ve výchozím prohlížeči — vložený WebGL2 program okamžitě renderuje Gaussian Cloud, bez sítě nebo serveru. Černé markery kolem scény jsou tréninkové kamery, volitelně zobrazitelné. Drag myší rotuje, scroll zoomuje.

E7 — Web Viewer (.html)

KDE

Řádek nabídek → Export → Media → Export Web Viewer…. Režim pro začátečníky: karta formátu „Web Viewer". Velikost: splat data base64 kódovaná (≈ 4/3 režie) + cca 5 KB HTML/JS shell. Kompatibilní s: každý moderní prohlížeč s WebGL2 (všechny desktopy, iOS 15+, Android 5+).

TECHNICKY

Balí Gaussian Cloud spolu s kompletně inline napsaným WebGL2 rendererem do jediného .html souboru. Žádné CDN závislosti, žádné WASM, žádný druhý soubor. Cloud se interně nejprve kóduje jako .splat binárka (stejná 32-bajtová logika jako E6), pak se vloží base64, pak se v prohlížeči dekóduje s atob. Vestavěný renderer dělá vlastní WebGL2 třídění, ovládání orbit myší a CPU třídění na frame; veškerý JS kód (shadery, matematika, smyčka) je v output HTML viditelný. Konvence os na hranici úložiště-renderer je přesně stejná jako u E5: pozice (x, -y, -z), quaternion (w, x, -y, -z). Volitelně lze zobrazit branding overlay (free tier přepínač). Vzhledem k tomu, že vše je inline, soubor funguje i přímo z protokolu file:// — pro testování není potřeba lokální web server.

Jeden frame extrahovaný z flowers-01.mp4 — bílá platforma s marker kamerami viditelná, černé pozadí — typický frame orbitální jízdy kamery cca 5s do video běhu
Jeden frame extrahovaný z flowers-01.mp4 — bílá platforma s marker kamerami viditelná, černé pozadí (výchozí pozadí náhledu, lze změnit v Nastavení). Kamera obíhá scénu po parametrické dráze (elevace + vzdálenost pevné, yaw rotuje), doba typicky 6–10 sekund při 30 nebo 60 fps. Rozlišení framu škálovatelné od 480p do 8K přes VideoPreset.

E8 — Orbit Video (.mp4/.mov)

KDE

Řádek nabídek → Viewport → Record Turntable Video NEBO Řádek nabídek → Export → Media → Export Orbit Video…. Režim pro začátečníky: karta formátu „Orbit Video" s posuvníkem trvání 3–30 s. Velikost: závisí na trvání, rozlišení, bitrate. Kompatibilní s: všechny platformy (H.264 a HEVC jsou Apple standard).

TECHNICKY

Renderuje Gaussian Cloud podél parametrické orbitální jízdy kamery a každý frame enkóduje přes AVAssetWriter do MP4 nebo MOV souboru. Konfigurace orbitu řídí rychlost otáčení (otáčky), vzdálenost, elevaci, FOV, trvání a faktor ease-in/out. Na frame se matice transformace světa (vypočítaná rendererem, aby interní souřadnice otočila do Y-up orbitálního světa) násobí kamerou, poté se aplikuje MetalSplatter specifické zrcadlení Y. Offscreen render target se přes IOSurface stahuje do CVPixelBuffer pro enkodér. Enkodér podporuje H.264 a HEVC, konfigurovatelný bitrate a rozlišení od 480p do 8K. Před prvním framem renderer čeká 200 ms, aby bylo dokončeno počáteční třídění splatů. Tento export je GPU bound — u 8K a milionů Gaussianů leží render čas na frame v několika sekundách, takže celkové render časy 10–30 minut pro 6sekundové video jsou možné.

E9 — SfM Transforms (transforms.json)

KDE

Řádek nabídek → Export → Photogrammetry → Export SfM (transforms.json)…. Velikost: typicky 1–10 KB (pouze pozice + intrinsics, žádné obrázky, žádné Gaussiany). Kompatibilní s: nerfstudio, Brush, gsplat, OpenSplat, Meshroom, všechny moderní feed-forward 3DGS trénery.

TECHNICKY

Zapisuje nerfstudio transforms.json formát se seznamem pozic kamer plus sdílenými intrinsics. Na kameru se invertuje view matice (uvnitř RadianceKitu: world-to-camera v COLMAP konvenci), následně se zrcadlí Y a Z bazální vektory v kameře, aby se převedly do nerfstudio konvence (OpenGL style, kamera se dívá podél -Z, +Y je nahoře). Finální 4×4 matice končí jako row-major nested array doublů v poli transform_matrix každého framu. Intrinsics se ukládají na top-level (ohnisko x/y, hlavní bod x/y, šířka/výška obrázku, camera_model = "OPENCV", plus distortion koeficienty k1, k2, p1, p2) — pokud exportér nedetekuje více různých intrinsic setů, pak se zapisují per frame. Cesty obrázků se píšou jako images/<filename> relativně k JSON souboru; uživatel musí vytvořit sibling složku images/ s tréninkovými fotografiemi.

E10 — COLMAP Workspace (sparse/0/)

KDE

Řádek nabídek → Export → Photogrammetry → Export SfM (COLMAP Workspace)…. Velikost: tři binární soubory dohromady typicky 4–8 MB — points3D.bin dominuje (jeden řádek na 3D bod sparse cloudu), images.bin a cameras.bin jsou každý výrazně pod 100 KB. Kompatibilní s: COLMAP sám, Nerfstudio, Postshot, Meshroom, všechny nástroje, které očekávají COLMAP sparse/ adresář.

TECHNICKY

Zapisuje standardní COLMAP sparse/0/ layout se třemi binárními soubory: cameras.bin, images.bin, points3D.bin. Formátová reference je oficiální COLMAP dokumentace. cameras.bin obsahuje deduplikovaný seznam intrinsics (kamery s identickými intrinsics + velikostí obrazu se sloučí do jednoho záznamu); použitý camera model je OPENCV (model 4), s fx/fy/cx/cy plus čtyřmi distortion koeficienty k1/k2/p1/p2. images.bin listuje na obrázek pozici jako wxyz quaternion plus translaci, následuje ID kamery a název souboru; žádné 2D-3D korespondence se neukládají. points3D.bin obsahuje SfM mrak bodů s pozicí, barvou (0-255 RGB) a defaultními hodnotami pro reprojekci a délku tracku. Vše se zapisuje v little-endian. Re-import do RadianceKitu funguje přes File menu → „Import COLMAP/Metashape Workspace…" (viz Q3 v kapitole SfM backendů).

Který formát kdy?

CílFormát
Web prohlížeč na vlastní stránceE7 Web Viewer (.html)
Web prohlížeč s gsplat.jsE6 Splat (.splat)
Znovupoužití pipeline v Postshot / NerfstudioE9 transforms.json + E10 COLMAP Workspace
SuperSplat editaceE1 PLY nebo E2 Compressed PLY
Niantic Scaniverse / Spatial FieldsE3 SPZ
Maximální kompreseE4 SOG (vyžaduje cwebp)
Marketingové/sociální videoE8 Orbit Video

Rychlé srovnání

FormátPříponaSandboxVelikost (1M Gauss)Nejlepší použití
E1 PLY.plyano~250 MBArchiv, nejvyšší kompatibilita
E2 Compressed PLY.plyano~40 MBWeb + SuperSplat
E3 SPZ.spzano (gzip spawn)~40 MBNiantic + Mobile
E4 SOG.sogpodmíněně (cwebp)~20 MBMaximální komprese
E5 glTF.glbano~250 MBKhronos pipeline
E6 Splat.splatano~32 MBgsplat.js web prohlížeč
E7 Web Viewer.htmlano~45 MBSamostatný souborový prohlížeč
E8 Orbit Video.mp4/.movanoproměnnáSocial/Marketing
E9 SfM Transforms.jsonano~5 KBPředání pozic
E10 COLMAP WorkspaceAdresářano~4–8 MBPředání pozic binárně

Sloupec velikost jsou hrubé orientační hodnoty pro 1 milion Gaussianů s SH stupněm 3. Reálné hodnoty se liší podle stlačitelnosti scény; SH stupeň 0 redukuje PLY/glTF faktorem 4.