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

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

Gölge Alma Geliştirme Kılavuzu

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

LCC Unity SDK, Mesh nesnelerinden 3DGS yüzeylerine dinamik gölge düşürmeyi destekler ve daha iyi aydınlatma efektleri sağlar. Aşağıda dinamik gölgeleri uygulamak için gereken adımların tamamı açıklanmıştı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.

Directional Light Gölgelerini Etkinleştirme

Hierarchy penceresinde Directional Light GameObject'ini seçin ve Inspector penceresinde gölgelerin etkin olduğundan emin olun.

Directional Light üzerinde gölgelerin etkin olduğundan emin olun

Directional Light üzerinde gölgelerin etkin olduğundan emin olun

2. Adım: Render Feature Ekleme

  1. Unity menü çubuğunda File → Project Settings seçeneğini seçin, soldan Graphics sekmesini açın ve geçerli Default Render Pipeline Asset değerini doğrulayın. Bu örnekte URP (Universal Render Pipeline Asset) kullanılmaktadır.
Graphics ayarlarında Default Render Pipeline Asset değerini doğrulayın

Graphics ayarlarında Default Render Pipeline Asset değerini doğrulayın

  1. Bu Asset'e tıklayın, Project penceresinde ilgili asset dosyasını bulun ve ona bağlı Renderer öğesini belirleyin (bu örnekte URP_Renderer.asset).
  2. Bu Renderer asset dosyasını seçin, Inspector penceresinde Add Renderer Feature düğmesine tıklayın ve Splat Shadow Mask Feature öğesini ekleyin.
Splat Shadow Mask Feature öğesini URP Renderer'a ekleme

Splat Shadow Mask Feature öğesini URP Renderer'a ekleme

3. Adım: Gölge Almayı Etkinleştirmek İçin Betik Yazma

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

using LCCCore;
using UnityEngine;

public class LCCShadow : MonoBehaviour
{
    public LCCManager m_manager;
    public string m_FilePath;
    private LCCCore.Renderer m_renderer;

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

        Debug.Log("Started ");
        m_renderer = m_manager.GetRender(this.transform);
        m_renderer.Load(m_FilePath, onProgress, onComplete);
    }

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

    private void onComplete()
    {
        Debug.Log($"[LCCRenderer] file  loaded");
        m_manager.SetShadowReceive(true);
        //m_manager.SetShadowColor(new Color(0, 0, 0, 1.0f));
        //m_manager.SetShadowStrength(0.5f);
    }
}

Not:

Gölge alma, LCC sahnesinin yüklenmesi tamamlandıktan sonra etkinleştirilmelidir. Bu nedenle SetShadowReceive(true) çağrısı onComplete callback'inde yapılır.

4. Adım: Betiği Ekleme ve Veri Yolunu Ayarlama

  1. LCCShadow.cs betiğini Hierarchy penceresindeki LCCRenderer GameObject'ine ekleyin.
  2. Inspector penceresinde LCCManager GameObject'ini betiğin Manager özelliğine sürükleyin.
  3. Betiğin File Path özelliğine LCC dosya yolunu girin.

5. Adım: Gölge Düşüren Mesh Nesnesi Oluşturma

  1. Sahnede bir Cube nesnesi oluşturun ve Cast Shadows = On olduğundan emin olun.
  2. Cube'un 3DGS yüzeyine düşürdüğü gölgeyi gözlemleyebilmek için onu uygun bir konuma taşıyın.

6. Adım: Çalıştırma

Game penceresinde Play düğmesine tıklayın ve düşen dinamik gölgeyi gözlemlemek için Cube'u gerçek zamanlı olarak hareket ettirin.

Çalıştırma sonrasında Cube'un 3DGS yüzeyine dinamik gölge düşürmesi

Çalıştırma sonrasında Cube'un 3DGS yüzeyine dinamik gölge düşürmesi

Sık Sorulan Sorular: Uyumluluk Modunu Devre Dışı Bırakma

Unity Console penceresi hata bildirir ve gölge görünmezse uyumluluk modunu devre dışı bırakın: Edit → Project Settings → Graphics yoluyla ayarlar panelini açın, URP sekmesini seçin ve Render Graph → Compatibility Mode (Render Graph Disabled) öğesinin yanındaki onay kutusunu işaretlemeyin.

Render Graph uyumluluk modunu işaretlemeyin

Render Graph uyumluluk modunu işaretlemeyin (Render Graph Disabled)

Temel Adımlar

Mesh nesnelerinden 3DGS yüzeylerine gölge düşürmenin temel adımları:

  1. Sahnede gölgeleri etkin bir Directional Light bulunduğundan emin olun.
  2. Sahnede Cast Shadows = On ayarlı, gölge düşüren bir Mesh nesnesi bulunduğundan emin olun.
  3. Splat Shadow Mask Feature öğesinin URP Renderer'a eklendiğinden emin olun.
  4. Gölge almanın kodda LCC sahnesinin yüklenmesi tamamlandıktan sonra etkinleştirildiğinden emin olun (SetShadowReceive(true)).

LCC Unity SDK, LCCManager üzerinden gölgeyle ilgili aşağıdaki üç API'yi sağlar. Hepsi LCC sahnesinin yüklenmesi tamamlandıktan sonra (yani onComplete callback'inde) çağrılmalıdır. SetShadowColor() / SetShadowStrength() yalnızca SetShadowReceive(true) etkinleştirildikten sonra etkili olur.

SetShadowReceive

// Return value: void
public void SetShadowReceive(bool enable)

Nokta bulutunun gölge almasını açar veya kapatır. Etkinleştirildiğinde, sahnedeki Mesh nesnelerinin gölgeleri 3DGS nokta bulutu yüzeyine düşebilir.

ParametreTürAçıklama
enableboolGölge alınıp alınmayacağı

Kullanım örneği:

m_manager.SetShadowReceive(true);

Notlar:

  • Varsayılan olarak kapalıdır.
  • Sahnede gölge oluşturan bir Mesh nesnesi ve bir Directional Light gerekir.
  • Etkinleştirildiğinde _SPLAT_SHADOW_ON shader anahtar sözcüğü etkinleşir.

SetShadowColor

// Return value: void
public void SetShadowColor(Color color)

Gölge alanının rengini ayarlar.

ParametreTürAçıklama
colorColorGölge rengi (RGBA)

Kullanım örneği:

m_manager.SetShadowColor(new Color(0.3f, 0.3f, 0.3f, 1f));

Notlar:

  • Varsayılan değer (0.3, 0.3, 0.3, 1) şeklindedir.
  • Önce SetShadowReceive(true) ile etkinleştirilmesi gerekir.

SetShadowStrength

// Return value: void
public void SetShadowStrength(float strength)

Gölge yoğunluğunu ayarlar. 0 gölge yok, 1 en güçlü gölge anlamına gelir.

ParametreTürAçıklama
strengthfloatGölge yoğunluğu, [0, 1] aralığında

Kullanım örneği:

m_manager.SetShadowStrength(0.8f);

Notlar:

  • Varsayılan değer 1.0 şeklindedir.
  • Aralık [0, 1]; aralık dışındaki değerler otomatik olarak sınırlandırılır.
  • Önce SetShadowReceive(true) ile etkinleştirilmesi gerekir.

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