Ç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
- 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.
| Konu | Kural | Neden |
|---|---|---|
| Adlar | cam00.mp4, cam01.mp4 … sırası halkadaki sırayla aynı | Videolar kalibrasyondaki kameralarla adlarından eşleşir. |
| Senkron | Tü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ük | Hepsi aynı (1920×1080 önerilir), yatay | Kalibrasyonla 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 ışık | Düz, tek renk fon; mümkünse siyah (kadife), sanal sahnede tam siyah (RGB 0, 0, 0); titremeyen, yumuşak ışık | Oyuncu 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üre | 4–10 saniyelik klipler | Erken erişimde her projenin ilk birkaç saniyesi işlenir. |
Yöntem BTelefonla 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.
- 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).
- 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;cam00oyuncunun önü olsun. - 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.
- 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.
- 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.
- ÇekinOyuncu ortadaki alanda 4–10 saniyelik hareketini yapar. Halkanın içinden kimse geçmez; kameralar oynamaz.
- 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:
Her kamera için kendi alkış zamanıyla tekrarlayın. Zaman senkronunun sunucuda otomatik yapılması geliştiriliyor.# 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 - Kalibrasyonu üretinKalibrasyon anındaki kareleri kullanarak COLMAP ile kalibrasyon.zip oluşturun.
- Yükleyin4dgspl.at'te kamera sayısını girerek proje açın,
camNN.mp4dosyalarını kendi yuvalarına vekalibrasyon.zip'i kalibrasyon olarak yükleyip "İşleme gönder"e basın.
Kamera kalibrasyonuGö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.
| Yol | Ne zaman | Durum |
|---|---|---|
| Sanal rig dışa aktarımı | Blender, Unreal, Unity: kameralar bilindiği için kalibrasyon kesindir | Blender betiği (beta) hazır |
| COLMAP'i kendiniz çalıştırın | Telefon ve kameralı çekimler; aşağıdaki adımlar | Bugün kullanılabilir |
| Sunucuda otomatik COLMAP | Kalibrasyon yüklemezseniz sunucu görüntülerden hesaplayacak | Geliştiriliyor |
Kabul edilen biçimler
- COLMAP metin:
cameras.txtveimages.txtiçeren bir.zip. Kamera modeliPINHOLEya daSIMPLE_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) vefx, 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 CBlender, 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.
| Kamera | Açı aralığı | Yerleşim (yarıçap 3,5 m, hedef 1 m) |
|---|---|---|
| 4 | 90° | Ön, sağ, arka, sol; hepsi 1,5 m (yalnızca deneme için; aralarda hayalet görüntü) |
| 6 | 60° | Eşit aralık; hepsi 1,5 m |
| 8 | 45° | Çiftler 1,1 m, tekler 2,1 m (üsttekiler hafif aşağı bakar) — önerilen |
| 12–16 | 30°–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.
- Sahneyi hazırlayınModel ya da karakter orijinde, ayakları zeminde, Z yukarı, metre biriminde; animasyon zaman çizelgesinde (örn. 1–120. kare, 30 fps).
- Rig'i kurun ve render alın
Arayüzden: Scripting → Open → betik → Run Script (ayarlar dosyanın başındaki AYARLAR bölümünde).blender -b sahnem.blend -P 4dgspl_blender_rig.py -- --kamera 6 --yaricap 3.5 --cikti //teslim --render - Kendi kameralarınız varsa
cam00… adlı kameralarınız için yalnızca kalibrasyonu yazdırın:-- --mevcut --cikti //teslim. - Yükleyin
teslim/klasöründekicamNN.mp4dosyalarını vekalibrasyon.zip'i projenize yükleyin.
Unreal Engine Betikler · beta
- 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ı.
- 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.mp4ile videoya çevirin. - 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
- 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.
- 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ı.
- 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 DYapay 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 öğrendiklerimizAynı 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).
| Kamera | Motor süresi | GPU tepe | Gaussian | Kameralar arasındaki 45° açıdan görüntü |
|---|---|---|---|---|
| 4 | 2 dk 16 sn | 0,7 GB | 5.596 | Gölgelenme: çift kol, bacaklarda koyu lekeler |
| 8 | 5 dk 10 sn | 1,4 GB | 7.256 | Temiz |
| 16 | 5 dk 16 sn | 1,4 GB | 10.185 | Temiz; 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.zipiçindecameras.txt(PINHOLE) veimages.txt; her kamera için bir satır, adlarcamNN.- Oyuncu her kamerada tamamen görünüyor; fon düz.