DirectX Raytracing (DXR) Tier 1.1 Yeni Özellikler, Ağır Donanım Değişikliği Olmadan Yalnızca Sürücü Desteği ile Çalışabilir
Işın İzleme, özellikle NVIDIA ve AMD'nin üst düzey grafik kartlarıyla oyuncuların merakla beklediği bir özelliktir. Yakında Intel'i de içerecek olan önde gelen GPU üreticileri, ışık ve gölge efektlerini gerçek dünya yasalarına göre gerçekçi bir şekilde işleyen ve hiper gerçekçi ve sürükleyici görseller getiren özelliği desteklemek için aktif olarak donanımlarını geliştiriyorlar.
Bu arada Microsoft, Windows işletim sistemi ekosisteminin üst düzey oyunları oynamak için ideal bir platform olarak uygun olmasını sağlıyor. Uzun zamandır masaüstü oyunlar için önde gelen bir standart olan şirketin DirectX platformu, "Gerçek Zamanlı Işın İzleme" yi yerel olarak desteklemek ve hatta artırmak için değiştiriliyor. Aslında, DirectX Raytracing (DXR) Tier 1.1, bir dizi yeni özelliği destekleyen en son standarttır. Yakın özellikte gerçek zamanlı ışın izlemenin destekleyebileceği heyecan verici özelliklerden bazıları satır içi ışın izleme, ExecuteIndirect () aracılığıyla DispatchRays () çağrıları, AddToStateObject () aracılığıyla büyüyen durum nesneleri, Raytracing gölgelendiricilerinde GeometryIndex (), ve dahası. Windows 10 için DirectX 12'nin ışın izleme için destekleyeceği bazı yeni özelliklere bakalım.
Satır İçi Işın İzleme:
Alternatif bir ışın izleme biçimi olan satır içi ışın izleme, herhangi bir ayrı dinamik gölgelendirici veya gölgelendirici tablosu kullanmaz. Özelliğin API'si hızlandırma yapısına erişimi gizler (ör. Veri yapısı geçişi, kutu, üçgen kesişim). Bu aslında onu donanıma / sürücüye bırakır. İlginç bir şekilde, hem numaralandırılmış aday isabetlerini hem de bir sorgunun sonucunu (ör. İsabet vs isabetsiz) işlemek için gerekli tüm uygulama kodu, RayQuery.
Hat içi ışın izleme, geliştiricilere, iş planlamasını tamamen sisteme devretmenin aksine, daha fazla ışın izleme işlemi için zorlama seçeneği sunar. Eklemeye gerek yok, bu süreç optimizasyonu, birden çok gölgeyle itişip kakışan geliştiriciler için oldukça kullanışlıdır. Dahası, geliştiriciler basit yinelemeli ışınlar için dinamik olarak satır içi forma geçme konusunda tam bir özgürlüğe sahiptir.
ExecuteIndirect () aracılığıyla DispatchRays () Çağrıları:
Bu özellik, GPU'daki gölgelendiricilerin bir DispatchRays () aramalar. Bunlar, iş parçacığı sayıları, gölgelendirici tablosu ayarları ve diğer kök parametre ayarları gibi bağımsız parametreleri içerir. Özelliğin en iyi yönü, tüm listenin, işlemciye hiçbir ara geri dönüşe ihtiyaç duymadan yürütülebilmesidir.
Işın izleme çalışmasını GPU üzerinde hazırlayan ve ardından hemen ortaya çıkaran tüm senaryolar, bu özellikten büyük ölçüde yararlanmalıdır. Eklemeye gerek yok, bu özellik, gölgelendirici tabanlı ayırma, sıralama, sınıflandırma ve ayrıntılandırma gibi çeşitli uyarlanabilir ışın izleme senaryolarında çok yardımcı olacaktır.
AddToStateObject () aracılığıyla Büyüyen Durum Nesneleri:
Bir optimizasyon özelliği olan bu yeni, israflı işlem iş parçacıklarını azaltmaya çalışır. Günümüzde epeyce uygulama ve süreç, çok fazla kaynağı boşa harcayan ve sistemi zorlayan tam dolu bir ışın izleme ardışık düzeni oluşturuyor. Şu anda, D3D12 çalışma zamanı, yapı taşlarından oluşturulan tam durum nesnesini ayrıştırmaya devam etmektedir.
Doğruluğu doğrulamak için yapılsa bile, AddToStateObject ()mevcut bir gölgelendirici durum nesnesine gölgelendiriciler eklenerek yeni bir durum nesnesi oluşturulabilir. Eklemeye gerek yok, CPU ek yükü yalnızca eklenen verilerle orantılı kalacaktır.
GeometryIndex () Işın İzleme Gölgelendiricilerinde:
Bu özellik, gölgelendiricilerin alt seviye hızlandırma yapıları içindeki geometrileri ayırt etmesine olanak tanır. Daha önce, geometriler her bir geometri için gölgelendirici tablo kayıtlarındaki verileri değiştirerek ayırt edilebiliyordu, ancak yeni yöntemle uygulama yükten kurtuldu. Ayrıca, tüm geometriler aynı gölgelendiriciyi paylaşıyorsa uygulama, MultiplierForGeometryContributionToHitGroupIndex parametresi İzlemeRay () 0.
Bu, esasen geometri dizininin artık sabit işlevli gölgelendirici tablosu dizinleme hesaplamasına etki etmemesini sağlayacaktır. Yine de, gerekirse veya istenirse, gölgelendiriciler kullanabilir GeometryIndex () uygulamanın kendi veri yapılarını endekslemek için.
DirectX Raytracing (DXR) Tier 1.1, yukarıda belirtilen özelliklere ek olarak şunları da içerir: RAY_FLAG_SKIP_TRIANGLES ve RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES bayraklar. Bu bayraklar, bağımsız ışın izleme çağrıları için kullanılabilir olsa da, ışın izleme ardışık düzeni yapılandırması aracılığıyla global olarak da bildirilebilirler.
Microsoft'un DirectX 12'yi grafik yoğun oyunlar için optimize etmeye çalıştığı oldukça açık. Dahası, üst düzey oyunlar ve oyuncular için en önemli özelliklerden biri olmayı vaat eden ışın izleme ile şirket, sistem, CPU ve GPU'nun minimum yedeklilikle optimum şekilde kullanılmasını sağlıyor.