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

LCC for Unity Kullanım Kılavuzu

Quest 3 Geliştirme Kılavuzu

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

Quest 3 için LCC geliştirme iş akışı, Meta'nın resmi VR proje oluşturma iş akışından biraz farklıdır: Meta'nın Unity yapılandırmasında yaptığı resmi değişiklikler, LCC görüntülemesinin geliştirme belgelerindeki önerilen iş akışıyla uyumsuz olmasına neden olur. Meta'nın resmi iş akışı için Set up Unity for XR development sayfasına bakın. Bu kılavuz, söz konusu iş akışını temel alarak 3DGS sahnelerini görüntülemek için LCC Unity SDK'nın nasıl entegre edileceğini açıklar.

Sürüm Gereksinimleri

Bu kılavuzda kullanılan yazılım ve eklenti sürümleri aşağıdadır. Aynı sürümlerle geliştirme yapmanız önerilir; test edilmemiş diğer sürümlerde uyumluluk sorunları olabilir:

Yazılım / EklentiSürüm
Unityv6000.0.69f1
Meta XR All-in-One SDKv205.0.0
LCC Unity SDKv2.1.35 ve üzeri

Not:

  1. Meta SDK yalnızca URP'nin Linear renk uzayını destekler. Bu renk uzayında görüntülenen LCC sahneleri biraz soluk görünür.
  2. Unity sürümü, Meta SDK sürümü ve LCC SDK sürümü görüntüleme ve performansı etkiler. Bu nedenle her yazılım sürümünü bu kılavuzla aynı tutmaya çalışın.

Geliştirme İş Akışı

Adım 1: URP Projesi Oluşturma

Proje şablonunda aşağıda gösterildiği gibi Universal 3D seçeneğini seçin:

Universal 3D (URP) Projesi Oluşturma

Universal 3D (URP) Projesi Oluşturma

Adım 2: Platformu Değiştirme

Proje oluşturulduktan sonra Unity menüsünden File → Build Profiles seçeneğini seçerek derleme penceresini açın ve platformu aşağıda gösterildiği gibi Android olarak değiştirin:

Build Profiles'ta platformu Android olarak değiştirme

Build Profiles'ta platformu Android olarak değiştirme

Adım 3: Unity OpenXR'ı İçe Aktarma

Unity menüsünden Window → Package Manager yolunu izleyerek UPM penceresini açın, soldaki listeden Unity Registry seçeneğini seçin, arama kutusuna OpenXR yazın, arama sonuçlarından OpenXR Plugin seçeneğini seçip aşağıda gösterildiği gibi yükleyin:

OpenXR Plugin'i Unity Registry'den Yükleme

OpenXR Plugin'i Unity Registry'den Yükleme

Adım 4: XR Interaction Toolkit'i İçe Aktarma

Soldaki listeden Unity Registry seçeneğini seçin, arama kutusuna XR yazın, arama sonuçlarından XR Interaction Toolkit seçeneğini seçip aşağıda gösterildiği gibi yükleyin:

XR Interaction Toolkit'i Unity Registry'den Yükleme

XR Interaction Toolkit'i Unity Registry'den Yükleme

Adım 5: Meta XR All-in-One SDK'yı İçe Aktarma

Meta XR All-in-One SDK, Meta'nın XR geliştirme araç takımıdır. Ayrıntılar için Meta XR All-in-One SDK (UPM) sayfasına bakın.

Bu SDK'yı kullanmadan önce Unity Asset Store'daki kişisel varlıklarınıza ekleyin: https://assetstore.unity.com/packages/tools/integration/meta-xr-all-in-one-sdk-269657. Ardından Window → Package Manager yoluyla UPM'yi açın, soldan My Assets seçeneğini seçin, arama kutusuna Meta XR yazın ve aşağıda gösterildiği gibi Meta XR All-in-One SDK paketini yükleyin:

Meta XR All-in-One SDK'yı My Assets'ten Yükleme

Meta XR All-in-One SDK'yı My Assets'ten Yükleme

Adım 6: LCC Unity SDK'yı İçe Aktarma

Unity menüsünden Window → Package Manager yolunu izleyerek UPM penceresini açın, soldaki + simgesine tıklayın, açılır menüden Install package from disk seçeneğini seçin, LCC Unity SDK'yı bulun ve içe aktarmak için package.json dosyasını seçin:

LCC Unity SDK'yı Install package from disk ile içe aktarma

LCC Unity SDK'yı Install package from disk ile içe aktarma

Yukarıdaki adımları tamamladıktan sonra sonraki ayarlara geçmeden önce Unity'yi yeniden başlatın.

Adım 7: Unity Ortamını Ayarlama

XR Plug-in Management'ı Yapılandırma

Unity menü çubuğundan File → Project Settings seçeneğini seçin, soldan XR Plug-in Management öğesini seçin ve aşağıda gösterildiği gibi hem Desktop hem de Android platformlarında Initialize XR on Startup seçeneğini işaretleyin:

Desktop Platformunda Initialize XR on Startup Seçeneğini İşaretleme

Desktop Platformunda Initialize XR on Startup Seçeneğini İşaretleme

Android Platformunda Initialize XR on Startup Seçeneğini İşaretleme

Android Platformunda Initialize XR on Startup Seçeneğini İşaretleme

XR Plug-in Management altındaki OpenXR öğesini seçin ve hem Desktop hem de Android platformları için Render Mode değerini aşağıda gösterildiği gibi Multi-pass olarak ayarlayın:

OpenXR Render Mode Değerini Multi-pass Olarak Ayarlama

OpenXR Render Mode Değerini Multi-pass Olarak Ayarlama

Not: Meta XR All-in-One SDK, Render Mode değerini değiştirir. Derleme yapmadan önce bu değerin Multi-pass olduğundan emin olun.

Player Yapılandırması (Desktop Platformu)

Project Settings penceresinin solundan Player öğesini seçin, Desktop platformuna geçin, Other Settings bölümünü genişletin, Auto Graphics API seçeneğinin işaretini kaldırın, Graphics APIs listesini Vulkan, Direct3D12, Direct3D11 olarak ayarlayın ve diğer grafik API'lerini kaldırın. Color Space değerini aşağıda gösterildiği gibi Linear olarak ayarlayın:

Desktop Platformunda Grafik API'lerini ve Linear Renk Uzayını Ayarlama

Desktop Platformunda Grafik API'lerini ve Linear Renk Uzayını Ayarlama

Player Yapılandırması (Android Platformu)

Project Settings penceresinin solundan Player öğesini seçin, Android platformuna geçin, Other Settings bölümünü genişletin, Auto Graphics API seçeneğinin işaretini kaldırın, Graphics APIs listesini Vulkan olarak ayarlayın ve diğer grafik API'lerini kaldırın. Color Space değerini aşağıda gösterildiği gibi Linear olarak ayarlayın (Meta SDK yalnızca Linear renk uzayını destekler):

Android Platformunda Grafik API'sini Vulkan ve Renk Uzayını Linear Olarak Ayarlama

Android Platformunda Grafik API'sini Vulkan ve Renk Uzayını Linear Olarak Ayarlama

Şirket Adı ve Ürün Adını Ayarlama

Player sekmesinde Company Name ve Product Name alanlarını aşağıda gösterildiği gibi doğru şekilde ayarlayın:

Company Name ve Product Name Ayarlama

Company Name ve Product Name Ayarlama

Android Platformu Komut Dosyası Arka Ucunu ve Girişi Ayarlama

Android platformunun Other Settings sekmesinde aşağı kaydırın ve aşağıda gösterildiği gibi Minimum API Level = Android 12L (API Level 32) veya üzeri, Scripting Backend = IL2CPP, Target Architectures = ARM64, Active Input Handling = Input System Package (New) olarak ayarlayın:

Minimum API Level, Scripting Backend, Target Architectures ve Active Input Handling Ayarlarını Yapma

Minimum API Level, Scripting Backend, Target Architectures ve Active Input Handling Ayarlarını Yapma

Grafik ve Kalite Ayarlarını Kontrol Etme

Project Settings penceresinin solundan Graphics öğesini seçin ve Mobile platformunun kullandığı Default Render Pipeline öğesine karşılık gelen Render Asset dosyasını kontrol edin. Bu örnekte bu dosya Mobile_RPAsset dosyasıdır:

Mobile Platformunda Default Render Pipeline Render Asset Dosyasını Kontrol Etme

Mobile Platformunda Default Render Pipeline Render Asset Dosyasını Kontrol Etme

Project Settings penceresinin solundan Quality öğesini seçin, Mobile platformunun kullandığı Default Render Pipeline öğesine karşılık gelen Render Asset dosyasını kontrol edin (bu örnekte Mobile_RPAsset). Ardından aşağıda gösterildiği gibi Resolution Scaling Fixed DPI Factor = 0.7, VSync Count = Don't Sync olarak ayarlayın:

Quality Ayarlarında DPI Factor ve VSync Değerlerini Ayarlama

Quality Ayarlarında DPI Factor ve VSync Değerlerini Ayarlama

Render Asset Dosyasını Yapılandırma

Mobile platformunun kullandığı Default Render Pipeline öğesine karşılık gelen Render Asset dosyasını bulun (bu örnekte Mobile_RPAsset). Dosyaya tıkladığınızda varlık, proje penceresinde (Project) görüntülenir. Varlığı seçin, ardından özellikler penceresinde (Inspector) aşağıda gösterildiği gibi Depth Texture, Opaque Texture ve HDR seçeneklerinin işaretini kaldırın; Anti Aliasing (MSAA) = Disabled, Render Scale = 0.7, Upscaling Filter = Automatic olarak ayarlayın:

Render Asset'te Depth/Opaque Texture, HDR ve MSAA seçeneklerini kapatın ve Render Scale değerini ayarlayın

Render Asset Dosyasında Depth/Opaque Texture, HDR ve MSAA Seçeneklerini Kapatma, Render Scale Değerini 0.7 Yapma

Bu Render Asset dosyasına karşılık gelen Renderer öğesini bulun. Bu örnekte bu öğe Mobile_Renderer (Universal Renderer Data) dosyasıdır. İlgili özelliklerini aşağıda gösterildiği gibi özellikler penceresinde (Inspector) ayarlayın:

Mobile_Renderer (Universal Renderer Data) Özelliklerini Yapılandırma

Mobile_Renderer (Universal Renderer Data) Özelliklerini Yapılandırma

Proje Doğrulama

Project Settings penceresinin solundan XR Plug-in Management öğesini seçin, ardından Project Validation sekmesini seçin. Kırmızı işaretli doğrulama öğelerini düzeltin; bunun için her kırmızı öğenin sağındaki Fix düğmesine tıklayın. Sarı uyarı öğelerini gerektiğinde düzeltebilir veya şimdilik olduğu gibi bırakabilirsiniz. İşlemden önceki durum aşağıdaki gibidir:

İşlemden Önce Project Validation (Kırmızı İşaretli Öğeler Mevcut)

İşlemden Önce Project Validation (Kırmızı İşaretli Öğeler Mevcut)

İşlemden sonraki durum aşağıdaki gibidir:

İşlemden Sonra Project Validation (Kırmızı İşaretli Öğeler Düzeltildi)

İşlemden Sonra Project Validation (Kırmızı İşaretli Öğeler Düzeltildi)

Adım 8: Sahneyi Oluşturma

Bu örnek yepyeni bir sahneyle (Scene) başlar. Unity sahnesini oluşturduktan sonra hiyerarşi penceresindeki (Hierarchy) Main Camera GameObject'ini silin. Ardından pencerenin boş bir alanına sağ tıklayın ve açılan menüden XR → XR Origin (VR) seçeneğini seçin. Aşağıda gösterilmiştir:

Sağ Tıklama Menüsüyle XR Origin (VR) Oluşturma

Sağ Tıklama Menüsüyle XR Origin (VR) Oluşturma

Adım 9: Sahneyi Yapılandırma

Hiyerarşi penceresinde (Hierarchy) XR Origin (VR) GameObject'ini seçin. Özellikler penceresindeki (Inspector) XR Origin bileşeninde Tracking Origin Mode değerini Floor olarak ayarlayın. Aşağıda gösterilmiştir:

XR Origin Tracking Origin Mode Değerini Floor Olarak Ayarlama

XR Origin Tracking Origin Mode Değerini Floor Olarak Ayarlama

Hiyerarşi penceresinde (Hierarchy) XR Origin (VR) altındaki Main Camera GameObject'ini seçin ve özellikler penceresinde (Inspector) kamera özelliklerini ayarlayın:

ÖzellikÖnerilen değerAçıklama
Field of View60FOV
Clipping Planes → Near0.2 ~ 0.3Yakın kırpma düzlemi
Clipping Planes → Far3000 ~ 5000Uzak kırpma düzlemi; büyük ölçekli sahneleri kapsar
Kenar YumuşatmaNo Anti-aliasingVarsayılan olarak anti-aliasing devre dışıdır
Opaque TextureKapalıVarsayılan olarak kapalıdır
Depth TextureKapalıVarsayılan olarak kapalıdır
Background TypeSolid ColorDüz renk önerilir
BackgroundBlackVarsayılan arka plan renginin siyah olması önerilir
HDR RenderingKapalıVarsayılan olarak kapalıdır
MSAAKapalıVarsayılan olarak kapalıdır
URP Dinamik ÇözünürlükKapalıVarsayılan olarak kapalıdır

Diğer özellikler aşağıda gösterildiği gibidir:

XR Origin (VR) altındaki Main Camera nesnesinin Camera bileşeni özelliklerini ayarlama

XR Origin (VR) altındaki Main Camera nesnesinin Camera bileşeni özelliklerini ayarlama

Adım 10: Sahneyi Yüklemek İçin Kod Yazma

Hiyerarşi penceresinde (Hierarchy) Create Empty seçeneğine sağ tıklayarak boş bir nesne oluşturun, adını LCCManager yapın, Transform değerlerini sıfırlayın ve LCCManager betiğini nesneye ekleyin. Aşağıda gösterilmiştir:

LCCManager Boş Nesnesini Oluşturma ve LCCManager Betiğini Ekleme

LCCManager Boş Nesnesini Oluşturma ve LCCManager Betiğini Ekleme

Hiyerarşi penceresinde (Hierarchy) Create Empty seçeneğine sağ tıklayarak bir boş nesne daha oluşturun, adını LCCRenderer yapın ve Transform bileşeninde Rotation.x = -90, Scale.x = -1 olarak ayarlayın. Aşağıda gösterilmiştir:

LCCRenderer Boş Nesnesini Oluşturma ve Koordinat Sistemi Hizalaması İçin Transform Değerlerini Ayarlama

LCCRenderer Boş Nesnesini Oluşturma ve Koordinat Sistemlerini Hizalamak İçin Rotation.x = -90, Scale.x = -1 Ayarlama

Rotation.x = -90 ve Scale.x = -1 değerleri, LCC veri koordinat sisteminden (Z yukarı, sağ elli) Unity koordinat sistemine (Y yukarı, sol elli) geçiş için kullanılan hizalama dönüşümüdür. Ayrıntılar için Unity SDK'ya Giriş sayfasındaki "LCC veri koordinat sistemi" bölümüne bakın.

Aşağıdaki kodla LCCRenderer.cs adında bir C# betiği yazın:

using LCCCore;
using UnityEngine;

public class LCCRenderer : MonoBehaviour
{
    public LCCManager m_manager;
    public string m_FilePath;

    private LCCCore.Renderer m_renderer;

    void Start()
    {
#if UNITY_EDITOR
        m_manager.SetPlatformType(PlatformType.PC);
        m_renderer = m_manager.GetRender(this.gameObject.transform);
        m_renderer.Load(m_FilePath, onProgress, onLoaded);
#else
        m_manager.SetPlatformType(PlatformType.Quest);
        m_renderer = m_manager.GetRender(this.gameObject.transform);
        m_renderer.Load(m_FilePath, onProgress, onLoaded);
        //m_renderer.Load($"{Application.persistentDataPath}/LccData/meta.lcc2", onProgress, onLoaded);
#endif
    }

    private void onProgress(float v)
    {
        Debug.Log("progress:" + v);
    }

    private void onLoaded()
    {
        m_manager.SetStartLod(2);
        m_renderer.SetEnvironment(false);
        Debug.Log("Data loaded");
    }
}

Betiği hiyerarşi penceresindeki (Hierarchy) LCCRenderer GameObject'ine ekleyin. Ardından LCCManager GameObject'ini özellikler penceresindeki (Inspector) betiğin Manager özelliğine sürükleyin. Son olarak LCC dosya yolunu girin, projeyi derleyin ve çalıştırın.

LCCRenderer Betiğini Nesneye Ekleme, Manager ve Dosya Yolunu Bağlama

LCCRenderer Betiğini Nesneye Ekleme, Manager ve Dosya Yolunu Bağlama

Unity Editor'de kolay hata ayıklama yapmak ve doğrudan bir Android cihaza derlemek için kod, çalışma ortamını ayırt etmekte derleme makroları kullanır: Unity Editor'de PC platformunu, Quest cihazında Quest platformunu kullanın.

Quest cihazlar için veri kaynağının bir sunucuya yerleştirilmesi önerilir. Test sırasında veri kaynağını doğrudan cihaz üzerinde de kullanabilirsiniz. Adımlar şöyledir:

  1. Derlenen uygulamayı Quest cihazında bir kez çalıştırın.
  2. Uygulama yüklendikten sonra veri dizinine gidin (genellikle Quest device storage → Android → data → app BundleID → Files; tam dizin için Android uygulama yükleme yoluna bakın) ve Files alt dizininin altında LccData adlı bir klasör oluşturun.
  3. Tüm LCC veri kaynaklarını LccData klasörüne kopyalayın.

Not:

  1. Gerçek kullanımda, Quest uygulamasının veri kaynağını doğrudan uygulamanın içine paketlemek yerine bir sunucuya yerleştirmeniz önerilir.
  2. Quest 3 cihazının cihaz üzerinde 3DGS görüntüleme kapasitesi yaklaşık 700.000 Gauss primitifidir. Bu, PC tarafındaki yaklaşık 25 milyonluk kapasitenin kabaca iki büyüklük mertebesi altındadır. Cihaz, esas olarak küçük sahnelerin ve tekil nesnelerin görüntülenmesi için önerilir. Büyük sahneler PC akışıyla daha akıcı çalışır.
  3. Büyük LCC sahnelerini görüntülerken StartLOD değerini 2 olarak ayarlamanız ve ortam verisi görüntülemesini kapatmanız önerilir (örnek kodda gösterildiği gibi).

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