Çekim rehberi

4DGS için çekim düzenleri

4dgspl.at, aynı anı farklı açılardan kaydeden 4–8 (ya da daha fazla) videodan 4D Gaussian Splatting sahnesi üretir. Videoları gerçek kameralarla, telefonlarla, bir 3B yazılımdaki sanal kameralarla ya da yapay zekâ kod ajanlarına yaptırarak elde edebilirsiniz. Hangisini seçerseniz seçin, teslim edilecek şey aynıdır: kamera başına bir video ve tercihen kamera kalibrasyonu.

A · Stüdyo düzeni

Kalıcı bir çok kameralı düzeneğiniz varsa (volumetrik stüdyo, hareket yakalama odası) kalibrasyonunuz büyük olasılıkla hazırdır. Kamera başına videoları ve kalibrasyonu desteklenen biçimlerden birinde yüklemeniz yeterli. Donanımla tetiklenen (genlock/timecode) senkron en iyi sonucu verir.

Her yöntem için ortak kurallar

Halka, kadraj, yükseklik, adlar, senkron: her yöntemde geçerli kurallar
Üstten görünüm: altı kamera oyuncunun çevresinde halka şeklindehareket alanı ≈1 mcam00cam01cam02cam03cam04cam05ön
  • Halka: Kameralar oyuncunun çevresinde eşit açılarla (6 kamera: 60°, 8 kamera: 45°) durur ve sahnenin ortasına bakar. Önerimiz 8 kamera; 4 kamerada kameraların arasından bakınca hayalet görüntü oluşur (testler).
  • Kadraj: Oyuncu kare yüksekliğinin %70–85'ini doldursun. 35 mm lens ve 1,8 m oyuncu için yarıçap ≈4 m; geniş hareketlerde biraz uzaklaşın.
  • Yükseklik: 6 kamerada göğüs hizası (≈1,5 m). 8 ve üzeri kamerada iç içe iki yükseklik: çiftler ≈1,1 m, tekler ≈2,1 m'de hedefe doğru aşağı bakar; başın üstü ve kol altları ancak böyle görünür.
  • Hedef ve duruş: Bütün kameralar oyuncunun gövde ortasına (≈1 m) bakar ve yere paralel durur (yatık değil). Motor sahnenin merkezini ve yukarı yönünü bundan çıkarır.
  • Dikey kadraj: Ayakta tek oyuncuda tüm kameraları dikey (9:16) tutmak oyuncuya ≈1,8 kat daha çok piksel düşürür; geniş kol hareketlerinde yatay kalın.
  • Hareket alanı: Oyuncu ortadaki ≈1 m çaplı alanda kalır; her kamera oyuncunun tamamını kenarlarda pay bırakarak görür.
  • Kameralar oynamaz: Çekim boyunca hiçbir kamera dönmez, kaymaz, zum yapmaz.
KonuKuralNeden
Adlarcam00.mp4, cam01.mp4 … sırası halkadaki sırayla aynıVideolar kalibrasyondaki kameralarla adlarından eşleşir.
SenkronTüm videolar aynı anda başlar, aynı kare hızındadır (25 ya da 30 fps)Motor her karede tüm kameraların aynı anı gördüğünü varsayar; videoları bugün sizin hizalamanız gerekir.
ÇözünürlükHepsi aynı (1920×1080 önerilir), yatayKalibrasyonla aynı en-boy oranı gerekir.
GörüntüOdak, pozlama, beyaz dengesi sabit; sabitleme, HDR, hareket bulanıklığı, alan derinliği kapalıDeğişen görüntü aynı noktayı farklı renkte ya da yerde gösterir.
Fon ve ışıkDüz, tek renk fon; mümkünse siyah (kadife), sanal sahnede tam siyah (RGB 0, 0, 0); titremeyen, yumuşak ışıkOyuncu fondan temiz ayrılır. Gri ya da renkli fonu motor Gaussian'larla doldurabilir; yeni açılardan sahne sise gömülür (test).
Süre4–10 saniyelik kliplerErken erişimde her projenin ilk birkaç saniyesi işlenir.
Yöntem B

Telefonla ya da elle kurulumla çekim prosedürü

4–8 telefonla adım adım: ayarlar, kalibrasyon anı, alkışla senkron, hizalama

Profesyonel bir düzenek olmadan, 4–8 telefon ya da kamerayla bir öğleden sonrada ilk 4DGS çekiminizi yapabilirsiniz.

  1. Malzemeyi hazırlayınMümkünse aynı model 4–8 telefon, her biri için tripod ve telefon tutucu, şarj ve en az 10 GB boş alan. Düz bir fon (perde, duvar), yumuşak ışık ve kalibrasyon için dokulu nesneler (desenli halı, gazete, kitap, desenli kutular).
  2. Kameraları halkaya dizinSahnenin ortasını yere bantla işaretleyin. Kameraları ortak kurallardaki gibi eşit açılarla, aynı yükseklikte yerleştirin ve hepsini bu işarete çevirin. Sırayla cam00, cam01… diye etiketleyin; cam00 oyuncunun önü olsun.
  3. Ayarları kilitleyinHer cihazda:
    • Aynı çözünürlük ve kare hızı (1080p, 30 fps), yatay tutuş.
    • Ana kamera (1×); geniş açıya otomatik geçiş, zum ve portre modu kapalı.
    • Odak ve pozlama kilidi (AE/AF kilidi), sabit beyaz dengesi; HDR ve görüntü sabitleme kapalı.
    • Elle ayar için iOS'ta Blackmagic Camera, Android'de Open Camera gibi uygulamalar işe yarar.
  4. Kayda başlayın ve kalibrasyon karesi verinTüm kameralarda kaydı başlatın. İlk 3–4 saniye sahnenin ortasında ve zeminde dokulu nesneler dursun; sonra bunları kaldırın. COLMAP kamera konumlarını bu andaki karelerden hesaplar. Kameralara dokunmayın.
  5. Senkron işareti verinTüm kameraların gördüğü bir noktada keskin bir alkış yapın ya da flaş patlatın. Bu an, videoları hizalayacağınız sıfır noktasıdır.
  6. ÇekinOyuncu ortadaki alanda 4–10 saniyelik hareketini yapar. Halkanın içinden kimse geçmez; kameralar oynamaz.
  7. Videoları hizalayın ve adlandırınHer videoda alkışın olduğu zamanı bulun (ses dalgasında tepe ya da flaşlı kare) ve videoyu o andan başlatın:
    # cam00 için alkış 3,40 sn'de; 8 saniye al, sesi at
    ffmpeg -ss 3.40 -i ham/cam00.mov -t 8 -c:v libx264 -crf 18 -pix_fmt yuv420p -an teslim/cam00.mp4
    Her kamera için kendi alkış zamanıyla tekrarlayın. Zaman senkronunun sunucuda otomatik yapılması geliştiriliyor.
  8. Kalibrasyonu üretinKalibrasyon anındaki kareleri kullanarak COLMAP ile kalibrasyon.zip oluşturun.
  9. Yükleyin4dgspl.at'te kamera sayısını girerek proje açın, camNN.mp4 dosyalarını kendi yuvalarına ve kalibrasyon.zip'i kalibrasyon olarak yükleyip "İşleme gönder"e basın.
Kamera kalibrasyonu

Görüntülerden COLMAP verisi üretme

COLMAP komutları, kabul edilen biçimler, sunucuda otomatik kalibrasyon

Motor her kameranın sahnedeki konumunu, yönünü ve görüş alanını bilmek zorundadır. Bu bilgiye kalibrasyon denir; açık kaynak COLMAP bunu görüntülerden hesaplar.

YolNe zamanDurum
Sanal rig dışa aktarımıBlender, Unreal, Unity: kameralar bilindiği için kalibrasyon kesindirBlender betiği (beta) hazır
COLMAP'i kendiniz çalıştırınTelefon ve kameralı çekimler; aşağıdaki adımlarBugün kullanılabilir
Sunucuda otomatik COLMAPKalibrasyon yüklemezseniz sunucu görüntülerden hesaplayacakGeliştiriliyor

Kabul edilen biçimler

  • COLMAP metin: cameras.txt ve images.txt içeren bir .zip. Kamera modeli PINHOLE ya da SIMPLE_PINHOLE (bozulmasız). images.txt'deki görüntü adları cam00.jpg, cam01.jpg… olmalı; adın uzantısız kısmı videonun kamera etiketiyle eşleşir.
  • 4dgs-cameras JSON: OpenCV kuralında (x sağ, y aşağı, z ileri), dünya → kamera R, t (metre) ve fx, fy, cx, cy.

COLMAP ile adım adım

COLMAP'i kurun (macOS: brew install colmap, Ubuntu: sudo apt install colmap, Windows: GitHub sürümleri). Sonra her kameranın kalibrasyon anındaki (dokulu nesnelerin sahnede olduğu) karesini çıkarın ve çözün:

# 1) Her videodan kalibrasyon anındaki bir kare (burada 1,5. saniye)
mkdir -p kalib/images
for v in ham/cam*.mov; do
  ad=$(basename "$v" .mov)                     # cam00, cam01, …
  ffmpeg -ss 1.5 -i "$v" -frames:v 1 -q:v 2 "kalib/images/$ad.jpg"
done

# 2) Öznitelik çıkarma: her görüntü kendi kamerası, bozulmasız PINHOLE modeli
colmap feature_extractor --database_path kalib/db.db --image_path kalib/images \
  --ImageReader.camera_model PINHOLE --ImageReader.single_camera 0

# 3) Tüm çiftleri eşleştir, seyrek modeli kur
colmap exhaustive_matcher --database_path kalib/db.db
mkdir -p kalib/sparse
colmap mapper --database_path kalib/db.db --image_path kalib/images --output_path kalib/sparse

# 4) Metne çevir ve paketle
mkdir -p kalib/txt
colmap model_converter --input_path kalib/sparse/0 --output_path kalib/txt --output_type TXT
(cd kalib/txt && zip ../../teslim/kalibrasyon.zip cameras.txt images.txt)

Tüm kameralar yerleşti mi? kalib/txt/images.txt'de her kamera için bir satır olmalı. Eksikse, kalibrasyon anında sahnede daha fazla doku olmalı ya da komşu kameralar birbirine daha yakın durmalı; 4 kamerada tek kareden çözüm zor olabilir, 6–8 kamera daha güvenilirdir.

Ölçek ve yön önemli değildir; motor sahneyi kamera halkasına göre kendisi ortalar.

Telefon lenslerindeki küçük bozulma PINHOLE modelinde yok sayılır; ana (1×) kamera kullanıldığında sonuç için genellikle yeterlidir.

Yöntem C

Blender, Unreal ve Unity için 4–8 kameralı sanal rig

Blender betiği, Unreal ve Unity adımları, geliştirilen eklenti

Bir 3B yazılımda sahneyi kurup sanal kameralardan render almak, sistemi denemenin ve sentetik eğitim verisi üretmenin en temiz yoludur: kameralar kusursuz senkrondur ve kalibrasyon hesaplanmaz, doğrudan dışa aktarılır.

KameraAçı aralığıYerleşim (yarıçap 3,5 m, hedef 1 m)
490°Ön, sağ, arka, sol; hepsi 1,5 m (yalnızca deneme için; aralarda hayalet görüntü)
660°Eşit aralık; hepsi 1,5 m
845°Çiftler 1,1 m, tekler 2,1 m (üsttekiler hafif aşağı bakar) — önerilen
12–1630°–22,5°İç içe iki halka: yarısı 1,0 m, yarısı 2,2 m; "Yüksek" ve "En yüksek" işleme kalitesinde fark yaratır, otomatik COLMAP için de en iyisi (komşu açı ≤30°)

Her yazılımda: lens 35 mm (36 mm sensör), lens kaydırma 0, hareket bulanıklığı, alan derinliği, vinyet, film greni, otomatik pozlama ve bloom kapalı; kameralar animasyonsuz; tam siyah dünya arka planı (RGB 0, 0, 0, Strength 0) — Blender'da renk değerleri doğrusaldır, 0.05 bile ekranda ≈%25 gri görünür; mat malzemeler (Roughness ≥ 0.6, düşük Specular, Metallic 0): motor görünüme göre değişen parlamayı saklayamaz, açılar arasında iz bırakır; her yönden yumuşak ışık; aynı kare aralığı her kameradan render edilir.

Blender Betik · beta

Rig'i kuran, her kameradan MP4 render alan ve kalibrasyon.zip'i yazan Python betiğimizi indirin: 4dgspl_blender_rig.py (MIT lisanslı). Kalibrasyon matematiği motorumuzun okuyucusuyla test edildi.

  1. Sahneyi hazırlayınModel ya da karakter orijinde, ayakları zeminde, Z yukarı, metre biriminde; animasyon zaman çizelgesinde (örn. 1–120. kare, 30 fps).
  2. Rig'i kurun ve render alın
    blender -b sahnem.blend -P 4dgspl_blender_rig.py -- --kamera 6 --yaricap 3.5 --cikti //teslim --render
    Arayüzden: Scripting → Open → betik → Run Script (ayarlar dosyanın başındaki AYARLAR bölümünde).
  3. Kendi kameralarınız varsacam00… adlı kameralarınız için yalnızca kalibrasyonu yazdırın: -- --mevcut --cikti //teslim.
  4. Yükleyinteslim/ klasöründeki camNN.mp4 dosyalarını ve kalibrasyon.zip'i projenize yükleyin.

Unreal Engine Betikler · beta

  1. RigSahneye 4–8 CineCameraActor yerleştirin (yukarıdaki tablo), her birine Look at Tracking ile oyuncunun gövde ortasını hedefletin; odak uzaklığı ve sensör tüm kameralarda aynı.
  2. RenderMovie Render Queue ile her kameradan ayrı iş; Anti-aliasing açık, Motion Blur, Depth of Field, Vignette, Auto Exposure kapalı; çıktıyı PNG dizisi alıp ffmpeg -framerate 30 -i cam00/%04d.png -c:v libx264 -crf 18 -pix_fmt yuv420p cam00.mp4 ile videoya çevirin.
  3. KalibrasyonUnreal Python betiklerimiz (rig kurulumu, kamera dışa aktarımı ve COLMAP'e dönüştürücü) erken erişim kullanıcılarına hello@4dgspl.at üzerinden veriliyor. Beklemek istemezseniz render'lardan COLMAP ile kalibrasyon üretebilirsiniz; render başına sahneye dokulu bir zemin koymak çözümü kolaylaştırır.

Unity

  1. Rig4–8 kamera, Physical Camera açık, 35 mm odak / 36 mm sensör, Gate Fit: Horizontal, lens kaydırma 0. Her kameraya hedefe bakan bir LookAt (ya da Cinemachine) ekleyip konumları sabitleyin.
  2. RenderUnity Recorder paketiyle her kamera için bir Movie Recorder (H.264 MP4, sabit kare hızı 30, aynı kare aralığı). Post-processing'de Motion Blur, Depth of Field, Bloom, Auto Exposure ve Film Grain kapalı.
  3. KalibrasyonEklentimiz gelene kadar render'lardan COLMAP ile üretin.

4dgspl.at Rig eklentisi geliştiriliyor Geliştiriliyor

Blender, Unreal ve Unity için tek tıkla 4–8 kameralı rig kuran, ayarları 4dgspl.at kurallarına göre kilitleyen, her kameradan render alan, kalibrasyonu dışa aktaran ve sonucu doğrudan projenize yükleyen bir eklenti üzerinde çalışıyoruz. Bugünkü Blender betiği bu eklentinin ilk adımıdır. Haberdar olmak için hello@4dgspl.at.

Yöntem D

Yapay zekâ ajanlarıyla 4–8 açılı video ve COLMAP üretimi

Claude Code / Codex için ayarlanabilir prompt ve canlı kamera düzeni önizlemesi

Claude Code, Codex gibi kod ajanları Blender'ı arayüzsüz çalıştırabilir: tarif ettiğiniz modeli kurar ya da sizin modelinizi kullanır, canlandırır, 4–8 kameradan render alır ve 4dgspl.at'in okuduğu COLMAP kalibrasyonunu yazar. Aşağıdaki pencere ayarlarınıza göre ayrıntılı bir prompt hazırlar; metni dilediğiniz gibi düzenleyip ajanınıza yapıştırın.

Neden video üreten yapay zekâ modelleri değil? Metinden video modelleri her açıyı ayrı ayrı "uydurur"; aynı anın geometrik olarak tutarlı, senkron 4–8 görünümünü ve bilinen kamera konumlarını veremez. 3B sahne + render yolu ise tutarlı görünümler ve kesin kalibrasyon üretir.

Prompt yalnızca tarayıcınızda oluşturulur; hiçbir yere gönderilmez. Metni elle düzenlediyseniz ayar değişiklikleri metni ezmez; ayarları yeniden uygulamak için "Ayarlardan yeniden oluştur"a basın.

Testlerden öğrendiklerimiz

Aynı sahne 4, 8 ve 16 kamerayla

Aynı sahne 4, 8 ve 16 kamerayla: süreler, kalite ve çıkan dersler

Ekibimiz aynı canlandırılmış insan figürünü Blender'da 4, 8 ve 16 kameralı halkalarla render edip motorumuzda işledi (2026-10-27; 4 sn, 60 kare, 960×540 işleme çözünürlüğü, RTX 5080).

KameraMotor süresiGPU tepeGaussianKameralar arasındaki 45° açıdan görüntü
42 dk 16 sn0,7 GB5.596Gölgelenme: çift kol, bacaklarda koyu lekeler
85 dk 10 sn1,4 GB7.256Temiz
165 dk 16 sn1,4 GB10.185Temiz; bu çözünürlükte 8'den belirgin farkı yok
  • 4 kamera çalışır ama kameraların arasından bakınca hayalet görüntü oluşur. 6 kamera alt sınır, 8 kamera önerimiz.
  • Eğitim PSNR'ı yanıltıcı: 4 kameralı test en yüksek değeri aldı (49,9 dB) çünkü az görüntüyü ezberlemek kolay. Kaliteyi kameraların arasındaki açılardan bakarak değerlendirin.
  • Figür kadrajı doldursun: testlerde figür kare yüksekliğinin ≈%60'ını kaplıyordu; %70–85 hedefleyin (35 mm lens ve 1,8 m figür için yarıçap ≈4 m).
  • Tek yükseklik yetmez: tüm kameralar 1,5 m'deydi; başın üstü ve kol altları zayıf kalır. 8 ve üzeri kamerada iki yükseklik kullanın.
  • Kalibrasyonda birim: odak uzaklığı piksel cinsinden olmalı. Odak uzaklığını yanlış birimle yazılmış bir test gri ekranla sonuçlandı; motor artık böyle dosyaları baştan reddediyor.
  • Fon tam siyah olmalı: aynı insan sahnesini koyu gri (Blender'da 0.05, ekranda ≈%25 gri) fonla işlediğimizde motor fonu Gaussian'larla doldurdu; eğitim kameraları kusursuz görünürken (46 dB) yeni açılardan figür sise gömüldü. Siyah fonlu testlerde bu olmadı.
  • Parlak plastik iz bırakır, fonun üstü bulutlanabilir: Microduck robotunun parlak beyaz plastiği açılar arasında çizgi şeklinde izler bıraktı. Başın üstünde ve ayakların altında hiçbir kameranın fondan ayıramadığı yarı saydam bir "bulut" kaldı. Motor artık dışa aktarırken fona düşen Gaussian'ları atıyor; render'da malzemeleri matlaştırın.
  • Yapay zekâ ile sahne üretimi işe yarıyor: prompt penceresindeki ayarlarla üretilen rakun ve domates figürleri sorunsuz işlendi.

Yüklemeden önce kontrol listesi

Yüklemeden önce son beş madde
  • 6–8 video (önerilen 8), adları cam00.mp4 … sırası halkadaki sırayla aynı; oyuncu kare yüksekliğinin %70–85'ini dolduruyor.
  • Hepsi aynı çözünürlük, aynı kare hızı, aynı uzunluk; aynı anda başlıyor.
  • Odak, pozlama ve beyaz dengesi sabit; kameralar çekim boyunca oynamadı.
  • kalibrasyon.zip içinde cameras.txt (PINHOLE) ve images.txt; her kamera için bir satır, adlar camNN.
  • Oyuncu her kamerada tamamen görünüyor; fon düz.