Oyun Motorları
Trend

Unity Ray Tracing Yanılsaması ve Gerçekliği

Mart ayında Unity, NVIDIA RTX teknolojisi için real-time ray tracing ( gerçek zamanlı ışın izleme ) desteğini açıkladı. Gerçek zamanlı ışın izleme, Unity’nin yüksek tanımlı Render Pipeline’ına (HDRP) fotogerçekçi aydınlatma özellikleri getirerek, Unity’nin görsel yeteneklerinde yeni potansiyelin ortaya çıkmasını sağladı. NVIDIA RTX’in Unity’de ön izlemesinin 2019.3’te yapılması planlanıyor.

Bu yayınımızda Unity takımından Dany Ayoub deneyimlerini ve projenin süreçlerini bizimle paylaşıyor. Hadi bu ilham veren çalışmanın nasıl yapıldığını öğrenelim.

Bu yeni aydınlatma teknolojisini göstermek için, CG Unity tarafından üretilen bir BMW’yi, depoda çektiğimiz gerçek bir BMW 8 Serisi Coupe ile eşleştirmek için çok zorlandık. Son proje, hem gerçek etkileşimli demoyu hem de önceden oluşturulmuş bir 4K videoyu birleştirdi ve gerçek otomobil ile CG otomobili aynı videoda birleştirdi. İzleyiciler ikisini birbirinden ayırmakda oldukça zorlandı.

Final videomuz 11 CG BMW çekimi.

Hem reklam hem de otomotiv endüstrisi hızlı bir şekilde dönüşüme devam ediyor. Reklam oluşturma sürecinde verilen kararların gerçek zamanlı bir motorun çok yönlülüğünden nasıl faydalanabileceğini göstermek için bir BMW içeren örnek bir reklam ürettik.

Demoyu başlattık, Oyun Geliştiricileri Konferansı’nda (GDC) ve NVIDIA GPU Teknoloji Konferansında (GTC) resmi duyurular yaptık.

Unity Ray Tracing

Üretim öncesi

Bu ön izleme, profesyonel bir reklam oluşturmak için çekime hazırlanma aşamasında çok önemliydi. Filmin tam CG versiyonunu oluşturmak için doğrudan görüntü yönetmeni Christoph Iwanow ile birlikte Unity’de çalıştık. Bu ilk çekim için, basit aydınlatma gölgelendiricileri kullandık ve hızlanma, kamera yerleştirme, çekim çerçevelemesi, alan derinliği ve netleme alanlarına odaklandık.

Unity’nin Fiziksel Kamera özelliğini kullanarak, gerçek hayatta ayarlanmış kamera ve lensleri en hassas ayrıntısına kadar eşleştirebildik (sensör boyutu, ISO, enstantane hızı, objektif bozulmaları ve daha fazlası). Bu, her seviyede 1:1 eşleşme elde etmek için gerçek kameranın görünüm ve izlenimini eşleştirmemizi sağladı.

Cinemachine, yineleme hızlarını koruyarak kolayca inanılır kamera hareketleri oluşturmamızı sağladı.

Ön değerlendirme aşaması aynı zamanda aydınlatma deneyi için oyun alanımızdı. Kullanmayı planladığımız gerçek aydınlatma donanımları da Unity’de her detayda (ışıkların şekilleri, boyutları, sıcaklık ve yoğunlukları) çoğaltıldı. Ayrıca tavandan sarkan ışık tüplerinin nasıl görüneceğini anında görebildiğimiz için bunların yerleşimlerini, yoğunluklarını ve renklerini iyileştirebildik. Bu sayede arabada mükemmel yansımalar üretebilirdik.

Christoph, gerçek dünyadaki aydınlatma ve kamera kurulumlarını dijital olarak çoğaltarak, daha fazla kombinasyon denemeyi başardı ve çekimden önce istediği görünümü bulabildi, böylece çekim süresini daha verimli kullanabildik.

unity ray tracing

Post prodüksiyon

Çekimlerden sonraki gün, çekimleri hemen düzeltmeye başlayabildik. Unity içinde previz yapıldığı için varlıkları da taşımamız gerekmedi. Varlığımızın görünüm gelişiminde, gerçekçi tepki vermesini sağlamak için hazırladığımız aydınlatma referanslarını ve gerçek aracı referans alarak kullandık. Teknoloji artık, alan ışıklarında görüntü dokularını kullanmamıza izin veriyor, böylece gerçek ışık kaynaklarının fotoğraflarını daha gerçekçi aydınlatma ve yansımalar için dokular (texture) olarak kullanabildik.

unity ray tracing

Unity ‘nin gücü ile, ilk günden itibaren 4K ultra yüksek çözünürlükte yapabildik. Bu, çoğu durumda devam etmekte olan işlerin maliyetlerden ve zamandan tasarruf etmek için daha düşük çözünürlüklerde sunulduğu çevrimdışı işleme üzerinde açık bir avantajdır.

İlk yinelemelerden itibaren 4K’da yayınlayarak, küçük detayların ince ayar ve ışık ayarını yaptık. Kısa sürede iş verenlerle ilgili birçok yineleme, küçük bir sanat ekibi ile güçlü görseller elde etmemizi sağladı. Aynı zamanda, finaldeki sonuçların öngörülebilir olduğu anlamına geliyordu.

unity ray tracing

Plate entegrasyonları kullanılan çekimlerde, görüntüler Unity’nin dışında kayıt edildi ve kamera verileri daha sonra FBX dosyası olarak Unity’ye aktarıldı.

Doğrudan Unity’de kurduğumuz diğer kameralara gelince, inandırıcı ve gerçekçi kamera hareketleri oluşturmak için iki Sinemachine özelliği gerekliydi:

1. Unity Cinemachine

Cinemachine Storyboard uzantısı: Birçok özelliği arasında, Storyboard uzantısı kamera açılarını hizalamanızı sağlar. Tamamen CG’de bir çekimi yeniden oluşturmak için gereken belirli kamera hareketlerini kolayca çoğaltmak için önemli bir araç. CG kamerayı hizalamak için kılavuz olarak kullanmak üzere kamera ayarlarından alınan görüntüyü bir kaplama olarak kullandık. Bu, bazı çekimlerin ilk, orta ve son kareleri için yapıldı.

2. Cinemachine noise

Cinemachine noise: Kamera hareketlerimize prosedürel gürültü uygulamak, kameranın hareketine ikna edici mikro hareketler ekleyerek CG kameraların doğal olmayan mükemmelliğinden kurtulmamızı kolaylaştırdı.

Orijinal konseptimiz, gerçek BMW’den farklı bir boya rengine sahip bir CG BMW içeriyordu. Proje geliştikçe, iki aracın da aynı renkte olmasının daha kesin bir şekilde daha güçlü bir sunum olacağını hissettik. Otomobilin rengini değiştirmek, Unity ‘de organik olarak verilebilecek son aşamadaki bir karardı, çünkü aydınlatma ve tasarımcılar eşzamanlı olarak güncellemeler üzerinde çalışabilirdi.

Plak entegrasyonlarını kullanan iki çekim için, orijinal HD çözünürlükte ekrandan yansıtılan bir malzeme oluşturmak için Shader Graph‘ı kullandık. Bu gölgelendiriciyi zeminde ve arabanın etrafındaki duvarlarda da kullandık, böylece plakadan araca gerçekçi yansımalar alabildik. Ek aydınlatma ile destek sağladık, çekimleri Unity’den aldık ve daha sonra harici birleştirme yazılımı kullanarak tam rezistans plakası ile son zemin entegrasyonunu tamamladık.

Unity Real-time ray tracing

real time ray tracing

Oyun yapımında yansımaları simüle etmek için kullanılan genel teknik, ekran alanı ışın izleme ile birlikte çeşitli konumlarda kurulan bir dizi yansıma probuna dayanır. Bu, genellikle çeşitli ışık sızıntıları ve yüzey özelliklerinin kaba bir yaklaşımı ile sonuçlanır.

Gerçek zamanlı ışın izleme sayesinde, sanatçılar tarafından herhangi bir kurulum yapılmadan ekran dışı olanı doğru bir şekilde yansıtabiliriz. Bununla birlikte, böyle bir yansıma etkisi, işleme motorunun bir düzenlemesini gerektirir. Geleneksel oyun yapımında, kameranın sıkıntısı içinde olmayan her şey devre dışı bırakılma eğilimindedir, ancak şimdi ekranda başlangıçta görünmeyen kaynaklar tarafından aydınlatılan ve gölgelenen nesneleri yansıtmak mümkündür.

Untiy Offline Render

unity

Geleneksel çevrimdışı render lar, büyük dokulu alan ışıklarının oluşturulmasını yönetmede iyidir. Bununla birlikte, çevrimdışı bir işleyiciyi kullanmak maliyetlidir ve çok fazla gürültü çıkarır, (ne kadar çok ışın kullanırsanız, o kadar az gürültü olur, ancak kare başına görüntü oluşturma maliyetini artırır). Kaliteyi korurken gerçek zamanlı bir kare hızı elde etmek için, Unity Labs araştırmacılarımız Lucasfilm ve NVIDIA ile birlikte bir algoritma geliştirdi.

Bu yaklaşımla, görsel sonuç bozulmadan kalırken görünürlük (alan gölgesi) doğrudan aydınlatma değerlendirmesinden ayrılabilir. Bu iki bileşene ayrı ayrı uygulanan bir denoising tekniği ile birleştiğinde, geniş dokulu alan ışıkları için çok az ışın uygulayarak 30 fps hedefimize ulaştık.

unity ray tracing

Son olarak lütfen bunun bir prototip olduğunu ve DXR’nin son uygulamasının bu sürümden farklı olacağını unutmayın.

İlginizi çekebilecek diğer yayınlarımız:

Etiketler
Online Eğitime Özel Masaüstü Bilgisayar Kampanyası

İlgili Makaleler

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu