İçeriğe geç
TREN
Atlıhan Harita

LCC for Unity Kullanım Kılavuzu · Özellik Geliştirme Kılavuzu

Çoklu Kamera ile Görüntüleme Geliştirme Kılavuzu

Bölüm 15.4 / 17Kılavuz sürümü v2.3.0Türkçe

LCC Unity SDK, tek sahne tam görüntüleme modunda birden fazla kamerayla eş zamanlı görüntülemeyi destekler. Aşağıda, bir ana kamera ve iki yardımcı kamera örneğiyle çoklu kamera ile görüntülemenin uygulanma adımları baştan sona anlatılmaktadır.

Adım 1: Sahneyi ve GameObject'leri Oluşturma

Unity'de yepyeni bir sahne oluşturun. Unity varsayılan olarak Main Camera ve Directional Light oluşturur.

Main Camera Ayarlama

Hierarchy penceresinde Main Camera nesnesini seçin ve özelliklerini Inspector penceresinde aşağıda gösterildiği gibi ayarlayın.

Main Camera özelliklerini ayarlama

Main Camera özelliklerini ayarlama

LCCManager Oluşturma

Hierarchy penceresinde boş bir alana sağ tıklayın, açılan menüden Create Empty seçeneğini seçerek boş bir GameObject oluşturun, adını LCCManager yapın, Transform değerini normalleştirin ve Add Component ile bu nesneye LCCManager betiğini ekleyin.

LCCManager GameObject'ini oluşturun ve LCCManager betiğini ekleyin

LCCManager GameObject'ini oluşturun ve LCCManager betiğini ekleyin

LCCRenderer Oluşturma

Hierarchy penceresinde boş bir alana sağ tıklayın, Create Empty seçeneğini seçerek boş bir GameObject oluşturun, adını LCCRenderer yapın ve Transform değerlerini Rotation.x = -90 ve Scale.x = -1 olarak ayarlayın.

LCCRenderer Oluşturma ve Transform Ayarlama

LCCRenderer oluşturma ve Transform ayarı (Rotation.x = -90, Scale.x = -1)

Not:

LCCRenderer GameObject'inin Transform ayarları (Rotation.x = -90, Scale.x = -1) onu LCC veri koordinat sistemiyle hizalar. Koordinat sistemi hizalaması hakkında ayrıntılar için Unity SDK'ya Giriş belgesindeki "LCC Veri Koordinat Sistemi" bölümüne bakın.

Yardımcı Görüntüleme Kameraları Oluşturma

Hierarchy penceresinde boş bir alana sağ tıklayarak iki ek görüntüleme kamerası oluşturun, bunları sırasıyla Camera01 ve Camera02 olarak adlandırın ve bu iki kameranın özelliklerini aşağıda gösterildiği gibi ayarlayın.

Camera01 özelliklerini ayarlayın

Camera01 özelliklerini ayarlayın

Camera02 özelliklerini ayarlayın

Camera02 özelliklerini ayarlayın

Bu örnekte iki kameranın Viewport Rect değeri, kameraları ana görüntüleme penceresinin sırasıyla sol alt köşesine ve sağ alt köşesine yerleştirecek şekilde yapılandırılmıştır.

2. Adım: Çoklu Kamera Betiğini Yazın

Aşağıdaki kodla MultiCamera.cs adında yeni bir C# betiği oluşturun:

using LCCCore;
using UnityEngine;

public class MultiCamera : MonoBehaviour
{
    public LCCManager m_manager;
    public string m_FilePath01;
    public Camera m_camera01;
    public Camera m_camera02;

    public Transform m_transform01;
    private LCCCore.Renderer m_renderer01;

    private int m_currentFileIndex = 0;

    void Start()
    {
        m_manager.SetPlatformType(PlatformType.PC);
        m_manager.SwitchRenderPass(ActiveRenderMode.SingleRender);

        Debug.Log("Started ");
        m_renderer01 = m_manager.GetRender(m_transform01);

        m_currentFileIndex = 0;
        m_renderer01.Load(m_FilePath01, onProgress, onComplete);
    }

    private void onProgress(float _progress)
    {
        Debug.Log($"[LCCRenderer] file {m_currentFileIndex} load progress: {_progress:P1}");
    }

    private void onComplete()
    {
        Debug.Log($"[LCCRenderer] file {m_currentFileIndex} loaded");

        m_manager.AddCamera(m_camera01);
        m_manager.AddCamera(m_camera02);
    }

    private void OnDestroy()
    {
        m_manager.RemoveCamera(m_camera01);
        m_manager.RemoveCamera(m_camera02);
    }
}

Not:

  • İkincil kameralar LCC sahnesinin yüklenmesi tamamlandıktan sonra kaydedilmelidir. Bu nedenle AddCamera, onComplete geri çağrısında çağrılır.
  • Betik dosyasının adı sınıf adıyla eşleşmelidir (MultiCamera.cs, class MultiCamera sınıfına karşılık gelir). Aksi halde betik bir GameObject'e eklenemez.
  • Ana kamera SetMainCamera ile ayarlanır, ikincil kameralar ise AddCamera ile eklenir. Ana kamerayı ikincil kamera olarak ekleyemezsiniz.

Adım 3: Betiği Ekleme ve Özellikleri Ayarlama

  1. MultiCamera.cs betiğini Hierarchy penceresindeki LCCRenderer GameObject'ine ekleyin.
  2. Inspector penceresinde LCCManager GameObject'ini betiğin Manager özelliğine sürükleyin.
  3. Camera01 ve Camera02 GameObject'lerini sürükleyerek betiğin sırasıyla Camera01 ve Camera02 özelliklerine bırakın.
  4. LCC dosya yolunu betiğin File Path01 özelliğine girin.
MultiCamera betiğini ekleyin ve özelliklerini ayarlayın

MultiCamera betiğini ekleyin ve özelliklerini Inspector'da ayarlayın

Adım 4: Çalıştırma

Sahnede birden fazla görüntüleme kamerasının gerçek zamanlı görüntüleme etkisini görmek için Game penceresindeki Play düğmesine tıklayın.

Çalıştırıldıktan sonra aynı anda görüntüleme yapan birden fazla kamera

Çalıştırıldıktan sonra aynı anda görüntüleme yapan birden fazla görüntüleme kamerası

Temel Adımlar

Çoklu kamera görüntülemeyi uygulamanın temel adımları:

  1. Sahnenin tek sahne tam görüntüleme modunda olduğundan emin olun (SwitchRenderPass(ActiveRenderMode.SingleRender) ve veriler Full Load yolundan geçer).
  2. Ana kamera SetMainCamera ile ayarlanır. İkincil kameralar, sahne yüklenmesi tamamlandıktan sonra (onComplete geri çağrısında) AddCamera ile kaydedilir.
  3. Her kameranın ekrandaki görüntüleme alanını Viewport Rect ile kontrol edin.
  4. Nesne yok edildiğinde (OnDestroy), askıda kalan referansları önlemek için ikincil kameraları RemoveCamera ile kaldırın.

Çoklu Kamera Görüntüleme Notları

  • Yalnızca tam görüntüleme modu desteklenir. LCC SDK, tek sahne altında çoklu kamera görüntülemeyi şu anda yalnızca tam görüntüleme modunda destekler. Performans optimizasyonu için parçalı görüntüleme modunda SDK yalnızca kamera görüş hacmi içindeki görünür veriyi yükler ve görüntüler. Yüksek performans hedefiyle CPU tarafındaki sahne düğümü verisi filtreleme, veri birleştirme ve verinin CPU'dan GPU'ya yüklenmesi eşzamansızdır. Bu nedenle aynı karede birden fazla kamera için veriyi ayrı ayrı işleyip görüntüleyemez.
  • Sahnenin tam görüntüleme durumunda olduğundan emin olun. Çoklu kamera görüntüleme özelliğinin tamamını kullanmak için sahneyi tam görüntüleme (Full Load) moduna ayarlayın: ActiveRenderMode.SingleRender kullanın ve Renderer üzerinde tam görüntülemeyi etkinleştirin (Renderer.SetRenderAll(true), bir sonraki Load() çağrısında geçerli olur). Görüntüleme modları ve performans parametreleri hakkında ayrıntılar için PC Hızlı Başlangıç Kılavuzu bölümüne bakın.
  • Kamera sayısı arttıkça performans maliyeti de artar. Eklenen her görüntüleme kamerası bir tam görüntüleme geçişi daha ekler, dolayısıyla performans buna göre düşer. Çoklu kamera görüntüleme için yüksek performanslı bilgisayar cihazları önerilir.
  • Yalnızca PC/Mac üzerinde desteklenir. AddCamera / RemoveCamera yalnızca PC/Mac platformlarında etkilidir.

Çoklu Kamera API'leri

LCC Unity SDK, LCCManager üzerinden kamerayla ilgili aşağıdaki API'leri sunar. İkincil kameralar LCC sahnesinin yüklenmesi tamamlandıktan sonra (yani onComplete geri çağrısında) AddCamera ile kaydedilmelidir.

SetMainCamera

// Return value: void
public void SetMainCamera(Camera _cam)

Ana görüntüleme kamerasını ayarlar. LCC, görüş hacmi kırpma, LOD seçimi, sıralama ve diğer işlemler için bu kamerayı kullanır.

ParametreTürAçıklama
_camCameraAna görüntüleme kamerası; temizlemek için null geçin

Kullanım örneği:

m_manager.SetMainCamera(Camera.main);

Notlar:

  • Renderer.Load() çağrısından önce ayarlanmalıdır.
  • Kamera değiştirirken yeniden çağırın.
  • Yalnızca PC/Mac üzerinde desteklenir.
  • Ana kamerayı temizlemek için null geçin.

AddCamera

// Return value: void
public void AddCamera(Camera _cam)

İkincil bir kamera ekler. İkincil kameralar görüntülemeye katılır ancak LOD seçimini etkilemez.

ParametreTürAçıklama
_camCameraİkincil kamera

Kullanım örneği:

m_manager.AddCamera(m_camera01);

Notlar:

  • Yalnızca PC/Mac üzerinde desteklenir.
  • Ana kamerayı ikincil kamera olarak ekleyemezsiniz.
  • LOD seçimi yalnızca ana kameraya göre belirlenir. İkincil kameralar görüntüleme için ana kameranın filtrelediği veriyi yeniden kullanır.

RemoveCamera

// Return value: void
public void RemoveCamera(Camera _cam)

Daha önce eklenmiş bir ikincil kamerayı kaldırır.

ParametreTürAçıklama
_camCameraKaldırılacak ikincil kamera

Kullanım örneği:

m_manager.RemoveCamera(m_camera01);

Notlar:

  • Yalnızca PC/Mac üzerinde desteklenir.
  • İkincil kamera referansını temizlemek için nesne yok edildiğinde (OnDestroy) çağrılması önerilir.

Bu bölüm XGRIDS'in resmî kullanım kılavuzundan Türkçeye çevrildi; ekran görüntüleri ve arayüz adları özgün haliyle İngilizcedir. İngilizce aslı (yeni sekmede açılır) · Güncelleme:

XGRIDS Türkiye

Kurulumda ve Sahada Yanınızdayız

Atlıhan Harita; cihaz kurulumu, firmware güncellemesi, yazılım kullanımı ve saha uygulamalarında eğitim ve teknik destek verir. Sorunuzu iletin, uzmanımız size dönsün.

+90 216 546 0804