LCC Unity SDK, yüksek çözünürlüklü görüntülemeyi, yani ekran çözünürlüğünü aşan sahne görüntülerinin oluşturulmasını destekler. Örneğin ekran çözünürlüğü 1920×1080 olduğunda LCC Unity SDK yine de 3840×2160 (4K), 2560×1440 (2K), 1920×1080 (1080p), 1280×720 (720P) ve diğer çözünürlüklerde görüntüler oluşturabilir. Çeşitli çözünürlüklerde görüntüler oluşturulduktan sonra bunlar yüksek çözünürlüklü görüntü ve video üretiminde kullanılabilir. Aşağıda, 4K bir görüntüyü oluşturup JPG olarak kaydetme örneği üzerinden yüksek çözünürlüklü görüntülemenin tüm adımları açıklanmaktadı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
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
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 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.
Adım 2: Yüksek Çözünürlüklü Görüntüleme Betiğini Yazma
Aşağıdaki kodla HDRecord.cs adında yeni bir C# betiği oluşturun:
using System.IO;
using System.Collections;
using LCCCore;
using UnityEngine;
public class HDRecord : MonoBehaviour
{
public LCCManager m_manager;
public string m_FilePath;
public Camera m_camera;
private LCCCore.Renderer m_renderer;
private const int HD_WIDTH = 3840;
private const int HD_HEIGHT = 2160;
private const string OUTPUT_DIR = @"G:\output";
void Start()
{
m_manager.SetPlatformType(PlatformType.PC);
m_manager.SwitchRenderPass(ActiveRenderMode.SingleRender);
if (m_camera == null)
m_camera = Camera.main;
m_manager.SetMainCamera(m_camera);
Debug.Log("[HDRecord] Started, loading data...");
m_renderer = m_manager.GetRender(this.transform);
m_renderer.Load(m_FilePath, onProgress, onComplete);
}
private void onProgress(float _progress)
{
Debug.Log($"[HDRecord] Load progress: {_progress:P1}");
}
private void onComplete()
{
Debug.Log("[HDRecord] Load complete, enabling 4K record mode...");
float verticalFov = m_camera.fieldOfView;
m_manager.SetRecordMode(true, new Vector2(HD_WIDTH, HD_HEIGHT), verticalFov);
StartCoroutine(CaptureFrame());
}
private IEnumerator CaptureFrame()
{
// Wait some time to ensure the camera has finished rendering the scene at 4K resolution
yield return new WaitForSeconds(10);
RenderTexture tempRT = RenderTexture.GetTemporary(HD_WIDTH, HD_HEIGHT, 24);
RenderTexture preTarget = m_camera.targetTexture;
Rect preRect = m_camera.rect;
m_camera.targetTexture = tempRT;
m_camera.rect = new Rect(0, 0, 1, 1);
yield return new WaitForEndOfFrame();
yield return new WaitForEndOfFrame();
yield return new WaitForEndOfFrame();
RenderTexture.active = tempRT;
Texture2D tex = new Texture2D(HD_WIDTH, HD_HEIGHT, TextureFormat.RGB24, false);
tex.ReadPixels(new Rect(0, 0, HD_WIDTH, HD_HEIGHT), 0, 0);
tex.Apply();
RenderTexture.active = null;
m_camera.rect = preRect;
m_camera.targetTexture = preTarget;
RenderTexture.ReleaseTemporary(tempRT);
byte[] jpgData = tex.EncodeToJPG(95);
Destroy(tex);
if (!Directory.Exists(OUTPUT_DIR))
Directory.CreateDirectory(OUTPUT_DIR);
string timestamp = System.DateTime.Now.ToString("yyyyMMdd_HHmmss");
string filePath = Path.Combine(OUTPUT_DIR, $"HD4K_{timestamp}.jpg");
File.WriteAllBytes(filePath, jpgData);
Debug.Log($"[HDRecord] 4K image saved: {filePath} ({jpgData.Length / 1024}KB)");
m_manager.SetRecordMode(false, new Vector2(Screen.width, Screen.height), m_camera.fieldOfView);
Debug.Log("[HDRecord] Record mode disabled, restored normal rendering.");
}
}
Not:
- Kayıt modu LCC sahnesinin yüklenmesi tamamlandıktan sonra etkinleştirilmelidir. Bu nedenle
SetRecordMode(true, ...),onCompletegeri çağrısında çağrılır.- Kayıt moduna girildikten sonra SDK sabit bir çözünürlük ve dikey FOV ile görüntüleme yapar. Sahnenin hedef çözünürlükte görüntülenmesinin tamamlandığından emin olmak için kareyi yakalamadan önce birkaç kare/saniye beklemeniz önerilir.
- Yakalama işleminden sonra normal görüntülemeye dönmek için
SetRecordMode(false, ...)çağırın.- Betik dosyasının adı sınıf adıyla eşleşmelidir (
HDRecord.cs,class HDRecordsınıfına karşılık gelir). Aksi halde betik bir GameObject'e eklenemez.- Örnekteki
HD_WIDTHveHD_HEIGHTçıktı çözünürlüğünü belirler. Gerektiğinde 2K (2560×1440), 1080p (1920×1080), 720P (1280×720) vb. olarak değiştirilebilir.OUTPUT_DIRçıktı dizinidir; yazma izniniz olan bir yolla değiştirin.
Adım 3: Betiği Ekleme ve Özellikleri Ayarlama
HDRecord.csbetiğini Hierarchy penceresindeki LCCManager GameObject'ine ekleyin.- Inspector penceresinde LCCManager GameObject'ini betiğin Manager özelliğine sürükleyin.
- Betiğin File Path özelliğine LCC dosya yolunu girin.
- Diğer özellikler (örneğin Camera) serbestçe yapılandırılabilir. Boş bırakıldığında betik otomatik olarak
Camera.mainkullanır.

HDRecord betiğini ekleyin ve özelliklerini Inspector'da ayarlayın
Adım 4: Çalıştırma
Game penceresindeki Play düğmesine tıklayın. Veri yüklemesi tamamlandıktan sonra betik 4K kayıt moduna girer, bir kare yakalar ve JPG görüntü olarak çıktı dizinine kaydeder.
Bu örnekte görüntü 4K olarak oluşturulur ve doğrudan JPG görüntü olarak kaydedilir. Yüksek çözünürlüklü video olarak kaydetmek isterseniz art arda yakalanan yüksek çözünürlüklü görüntüleri video kodlama ile yüksek çözünürlüklü videoya dönüştürebilirsiniz.
Temel Adımlar
Yüksek çözünürlüklü görüntülemeyi uygulamanın temel adımları:
- Ana görüntüleme kamerasını
SetMainCameraile ayarlayın ve LCC verisiniRenderer.Load()ile yükleyin. - Sahne yüklemesi tamamlandıktan sonra (
onCompletegeri çağrısında)SetRecordMode(true, renderSize, verticalFov)ile kayıt moduna girin; hedef çözünürlüğü ve dikey FOV değerini belirtin. - Kamerayı
RenderTextureile hedef çözünürlükte görüntüleyin, pikselleriTexture2D.ReadPixelsile geri okuyun ve kaydetmek için bir görüntüye kodlayın. - Görüntüyü aldıktan sonra
SetRecordMode(false, ...)ile normal görüntülemeyi geri yükleyin.
Yüksek Çözünürlüklü Görüntü Oluşturma Notları
- Yalnızca PC/Mac'te desteklenir.
SetRecordModeyalnızca PC/Mac platformlarında etkilidir. - Kayıt modunda kamera odak uzaklığı sabittir. Kayıt moduna girildikten sonra SDK, iletilen sabit çözünürlük ve dikey FOV ile görüntüleme yapar; değerler artık Camera bileşenine göre değişmez.
- Normal görüntülemeyi zamanında geri yükleyin. Görüntü alma veya kayıt bittikten sonra normal çözünürlüğü geri yüklemek için
SetRecordMode(false, ...)çağrısını yapın; aksi halde sonraki görüntüleme kayıt çözünürlüğünü kullanmaya devam eder. - Video belleği ve bellek yüküne dikkat edin. Çözünürlük arttıkça
RenderTextureveTexture2Dtarafından kullanılan video belleği/bellek de artar. Yüksek çözünürlüklü görüntüleme için yüksek performanslı bilgisayarlar önerilir.
Kayıtla İlgili API
LCC Unity SDK, kayıt modu API'sini LCCManager üzerinden sunar. API, LCC sahnesinin yüklenmesi tamamlandıktan sonra (yani onComplete geri çağrısında) çağrılmalıdır.
SetRecordMode
// Return value: void
public void SetRecordMode(bool isRecord, Vector2 renderSize, float verticalFov)
Kayıt modunu ayarlar. Kayıt modunda görüntüleme sabit bir çözünürlük ve FOV kullanır; bu, yüksek çözünürlüklü görüntü ve video kaydı için uygundur.
| Parametre | Tür | Açıklama |
|---|---|---|
isRecord | bool | Kayıt moduna girilip girilmeyeceği |
renderSize | Vector2 | Kayıt çözünürlüğü (genişlik × yükseklik), örneğin (3840, 2160) |
verticalFov | float | Dikey FOV (görüş alanı) |
Kullanım örneği:
// Enter 4K recording mode
m_manager.SetRecordMode(true, new Vector2(3840, 2160), 60f);
// End recording and restore normal rendering
m_manager.SetRecordMode(false, new Vector2(Screen.width, Screen.height), m_camera.fieldOfView);
Notlar:
- Yalnızca PC/Mac üzerinde desteklenir.
- Kayıt modunda kamera odak uzaklığı sabittir ve Camera bileşenine göre değişmez.
- Kayıt bittikten sonra normal görüntülemeyi geri yüklemek için
SetRecordMode(false, ...)çağrısını yapın. - LCC sahnesinin yüklenmesi tamamlandıktan sonra çağrılmalıdır.
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:

