SON DAKİKA

Nvdia

NVIDIA OptiX 9 ve NVIDIA RTX Mega Geometri ile Dinamik Sahnelerin Hızlı Ray Trace İşlemesi

Gerçek zamanlı ray izleme, inanılmaz derecede gerçekçi görüntüler oluşturabilen güçlü bir render tekniğidir. NVIDIA OptiX ve RTX teknolojisi, bu mümkün kılarken, detaylı animasyonlu sahnelerde gerçek zamanlı ray izleme performansını korumak zorlayıcı olabilir.

Dinamik Sahne Zorluğu

NVIDIA OptiX, RTX donanımıyla, bir piksel başına bir örnekleme ile büyük sahneleri gerçek zamanlı olarak ray izleyebilir; bu, geometrinin değişmediği durumlarda geçerlidir. Bu durum, mikro üçgenlere yaklaşan yoğunlukta son derece karmaşık geometriler için bile mümkündür.

Ancak, bu yoğunlukta ve değişen sahneler yeni zorluklar getirir. Geometri hızlandırma yapıları (acceleration structures) – RTX donanımının, üçgenleri ışınlarla eşleştirmek için kullandığı arama ağaçları – güncel tutulmalıdır ve bu, genellikle izleme işleminden daha uzun sürebilir.

Two colorful renders of a character in different poses.
Şekil 1. OptiX ile işlenen yüksek yoğunluklu animasyonlu sahne. Her karede talep eden yavaşlama ile sonuçlanabilecek bir hızlandırma yapısı.

Bazen bir kısayol alabilirsiniz: Eğer üçgenlerin sayısı ve bağlantıları değişmeden, yalnızca köşe noktaları değişiyorsa, OptiX, hızlandırma yapıları için bir refit işlemi sunar. Rerfit işlemi mevcut arama ağacının çoğunu tekrar kullanarak, tam bir yeniden inşa sürecine göre çok daha hızlıdır. Ancak sınırlamaları vardır: Eğer köşe noktaları çok fazla hareket ederse, bir ışını hızlandırma yapısıyla izleme süresi uzar. Ayrıca, üçgenlerin eklenememesi, çıkarılamaması veya farklı şekillerde yeniden bağlanamaması gibi temel kısıtlamalar mevcuttur; bu işlemler ağacı geçersiz kılar.

NVIDIA OptiX 9, Küme Hızlandırma Yapısı (Cluster Acceleration Structure – CLAS) adında yeni bir veri yapısı tanıtmaktadır. Bir CLAS’a girişler, kullanıcı tarafından tanımlanan küçük üçgen kümeleridir ve CLAS’lar, mevcut Hızlandırma Yapısı’na (Geometry Acceleration Structure – GAS) oldukça benzeri bir yapıdır.

Diagram of different types of acceleration structures: GAS, Cluster GAS, and CLAS.
Şekil 2. NVIDIA OptiX 9, Küme Hızlandırma Yapısı (CLAS) veri yapısını tanıtmaktadır.

Belirli sahne türlerinde, bir CLAS, bir refit’in hızını sağlayabilirken, tam bir yeniden inşanın esnekliğini ve izleme performansının çoğunu koruyabilir. Kısaca ifade etmek gerekirse, küme düzeyinde kalıpların yeniden kullanılmasını sağlamakta ve yalnızca kümeler üzerinde tam bir yeniden inşa yapmaktadır.

İki tür olası küme yeniden kullanımı vardır. İlk olarak, aynı kümeler, belki de hareketli köşe noktalarıyla birlikte, çerçeveler arasında yeniden kullanılabilir. Bu, mevcut GAS refit’ine benzer ve bir akışkan detay sistemi için iyi bir yol olabilir.

Önemle vurgulanmalıdır ki, aynı küme deseni bir çerçeve içinde, farklı konumlarla birlikte aynı topolojiye sahip birden fazla küme olduğu durumlarda mekansal olarak da yeniden kullanılabilir. Bu mekansal yeniden kullanım, buradaki asıl odak noktasıdır; çünkü alt bölümlere dinamik tessellation yapılmasında oldukça uygundur.

Alt Bölümlü Yüzeyler Hakkında Temel Bilgiler

Catmull-Clark alt bölümlü yüzeyleri (subd), animasyonlu özellik filmlerinde yaygın olarak kullanılan bir geometri temsil yöntemidir ve gelecekte oyunlarda da kullanılabilir. Genellikle dörtgenlerden oluşan bir kontrol ağ ile sorun giderme ve sorunsuz bir sınır yüzeyi oluşturmak için bir dizi matematiksel kural içerir.

Subdivision surface render showing control mesh and limit surface for a simple mesh.
Şekil 3. Catmull-Clark alt bölümlü yüzey.

Bu temsil yöntemi, film veya oyun prodüksiyon süreçlerinde birçok avantaja sahiptir. Modelleme, iskeletleme, animasyon gibi işlemler genellikle yalnızca kontrol ağı ile gerçekleştirilir; bu, genellikle hafif bir yapıdır. Ayrıca, render için limit yüzeylerin anında tessellation’ı, geometri yoğunluğunun kameraya göre hedeflenmesini sağlar. Ekranın dışındaki veya gizli alanlar daha düşük bir hızda tessellated edilebilir.

Gerçek Zamanlı Tessellation

Şekil 4, OptiX kullanarak küme geometri için uyarlanabilir tessellation hattının nasıl görünebileceğini göstermektedir. Bu hattın her çerçeve boyunca çalışması, her dinamik mesh’i yeniden tessellate edip, hızlandırma yapılarını yeniden inşa etmesini gerektirir.

A diagram of an adaptive tessellation pipeline for ray tracing. On the left in blue: Control Cage, Camera, Displacement Maps, Cluster Templates. On the right in green: Animation / Skinning, Tessellation and Displacement (labeled ‘Application’), CLAD Instantiation, GAS and IAS Build, OptiX Launch (labeled ‘OptiX’).
Şekil 4. Ray izleme için bir uyarlanabilir tessellation hattı. Mavi kutular giriş verilerini gösterirken, yeşil kutular hat aşamalarını belirtmektedir.

İlk birkaç adım, genellikle CUDA çekirdekleri olarak uygulanmış olan kullanıcı alanı kodunda gerçekleşir.

  • Animasyon veya skinning: Alt bölümlü kontrol ağının köşe noktalarını canlandırın.
  • Tessellation ve yer değiştirme: Alt bölümlü limit yüzeyde yaklaşık bir üçgen başına bir yoğunlukta kümeler tanımlayın. Küme tanımlarını ve kümelerin köşe noktalarını cihaz belleklerine kaydedin.

Hızlandırma yeniden inşa ve render adımları esasen OptiX tarafından yönetilmektedir.

  • CLAS instantiation: Her bir küme için tanımlamalar ve köşe noktaları cihaz belleklerini giriş olarak alarak bir CLAS oluşturun. Bu, nerdeyse tüm argümanlarını cihaz belleğinde tutan tek bir işlev çağrısıdır.
  • GAS ve IAS oluşturma: Daha yüksek seviyedeki hızlandırma yapılarını tamamlamak. CLAS’lerin yaprakları kümeler olduğu için, bu adım genelde 10x-100x daha hızlıdır.
  • OptiX başlatma: Işınları sahneye gönderin ve gölgeleme yapın. OptiX, gölgeleme bağlamında küme kimliğini ve vurulan üçgenin köşe noktalarını sağlar.

Yoğun geometrilerle, mikro üçgen yüzey normalleri doğrudan gölgeleme normalleri olarak kullanılabilir; ya da opsiyonel olarak, limit normalleri, tessellation sırasında değerlendirilebilir ve bir tampon içinde yol izleyiciye geçebilir.

Mekansal Küme Yeniden Kullanımı

Şekil 5’teki torus yüzeyini tessellate ederken, benzer veya aynı şekilde kümeleri bilinçli olarak tessellate ederek mekansal yeniden kullanım fırsatları sunabilirsiniz. Dörtgen tabanlı kontrol kafesi, bu noktada avantaj sağlar. Çoğu sonuçlanan küme, aynı MxN çözünürlüğe sahip dikdörtgen ızgahlardır.

Subd limit surface showing a torus made of tiny rectangular clusters.
Şekil 5. Alt bölümlü limit yüzey ve kümeler.

OptiX API’sinde yeniden kullanılabilir bir küme, Küme Şablonu (Cluster Template) olarak adlandırılır. Bir CLAS’ın köşe noktaları hariç, her şeyi depolar. Tekrar kullanılabilir, yalnızca yeni köşe noktaları sağlayarak hızlı bir şekilde tekrar oluşturulabilir (refit’e benzer).

Küme Şablonları, üçgen indeksleri için oluşturulabilir ve yeniden kullanılabilir (Şekil 6, solda). Ancak, ızgara desenlerinin alt bölümlü yüzeyler ve diğer durumlar için çok yararlı olması nedeniyle, OptiX’in ızgaralardan şablon oluşturma için ayrı bir API çağrısı mevcuttur (Şekil 6, sağda). Izgara sürümü, yalnızca ızgara şablonunun topolojisini sağlamanız gerekmediği için daha kolaydır ve sonuçta oluşan küme şablonu genellikle daha küçüktür ve ray izleme hızı artırılabilir; çünkü OptiX tanımlanmış topoloji için optimize edebilir. API bilgileri için OptiX 9.0 Programlama Kılavuzu’na bakabilirsiniz.

Diagram showing how Cluster Templates are combined with vertices to create CLASes.
Şekil 6. Küme Şablonları OptiX API’sinde yeniden kullanılabilir kümelerdir.

Bu genel çerçeve süresini hızlandırmaktadır çünkü:

  • Pek çok CLAS, sahnedeki aynı küme desenini (Küme Şablonu) kullanır.
  • Küme Şablonu, CLAS inşasının çoğunu önceden hesaplar.
  • CLAS’ler üzerinde inşa edilen GAS, düz bir mikro üçgenler üzerinden inşa edilseydi olduğundan 100 kat daha az girdi içerir.

Genel olarak, Küme Şablonları, tüm üçgenlerin tek bir düz GAS’a yerleştirilmesinden daha hızlı bir hızlandırma yeniden inşası sağlar.

DLSS Işın Yeniden Yapımı

Şekil 4’te gösterilen genel işlem hattı, yüksek kare hızlarını korumak için sahneyi yaklaşık bir piksel başına bir örnekle izler. Bir filmde bitirici çerçeve aydınlatması için klasik bir OptiX uygulaması, örneğin 16-32 çerçeve biriktirip daha çok birleşmiş bir görüntü almak amacıyla kullanılır ve ardından kalan Monte Carlo gürültüsünü ortadan kaldırmak için bir denoaizer çalıştırılır. Bu yöntem, kamera ve geometri tamamen animasyona tabi olduğunda çok daha karmaşık hale gelir.

Bunun yerine, kullanıcı alanı biriktirme döngüsünü DLSS Ray Yeniden Yapımı (DLSS-RR) ile değiştirebilirsiniz. Bu, kendi iç verileri ve hareket vektörleri ile diğer giriş rehber katmanları yardımıyla kendi birikimini yapar. DLSS-RR, referans bir görüntüye ulaşmaz; bu nedenle tüm kullanıcılar için uygun değildir, ancak istikrarlı ve görsel olarak pürüzsüz bir görüntü üretir.

Alt bölümlerin doğru hareket vektörlerini hesaplamak için, bir önceki çerçeveden kontrol kafesinin yanı sıra mevcut çerçevenin vurulan noktaları gereklidir. Bunu nasıl yapacağınızı öğrenmek için kullanılmış örnek kaynak kodunu inceleyebilirsiniz.

Image of a character in a kitchen divided vertically in the center with a yellow line. On the left of the yellow line is a noisy 1 spp input image. On the right of the line is a smooth DLSS-RR output.
Şekil 7. Gürültülü 1 spp giriş görüntüsü (solda) ve pürüzsüz DLSS-RR çıktısı (sağda).

Özet ve Gelecek Adımlar

Bu yazıda, NVIDIA OptiX 9’da Küme Hızlandırma Yapıları (CLAS’lar) kullanılarak dinamik yüksek yoğunluklu geometrilerin verimli ray izlenmesi sağlanmışdır. CLAS’lar, RTX Mega Geometri’nin temel bileşenlerinden biri olarak, küme desenlerinin tekrar kullanımını sağlayarak, geleneksel yöntemlere göre hızlandırma yapılarını yeniden inşa etmeyi önemli ölçüde hızlandırmaktadır. Bu, dinamik alt bölümlü yüzeylerin render edilmesi için özellikle faydalıdır; burada, anında tessellation, yüksek kaliteli, gerçek zamanlı sonuçlar için DLSS Ray Yeniden Yapımı ile birleştirilebilir.

Daha fazlasını öğrenmek için, bazı görsellerin üretiminde kullanılan örnek kaynak kodunu inceleyin, teknik sorularınızı OptiX Geliştirici Forumu’na gönderin ve bu ilgili kaynaklara göz atın:

Kaynak

Nvdia Blog

Düşüncenizi Paylaşın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İlgili Teknoloji Haberleri