Bütün gün boyunca buradaydım ve bundan vazgeçmeye başlıyorum. Bilgi işlem gölgelendiricileri hakkında pek fazla bilgi bulamıyorum. En iyi kaynak "Direct3D 11 ile Pratik Çözümleme ve Hesaplama" idi ve ne yazık ki çok fazla yardım değildi. Bazı teorileri anlamama yardımcı oldu ama hala nasıl bir şey uygulayacağımı bilmiyorum.Gölgelendiricileri hesaplayın, boru hattına nerede oturuyorlar?
Bu kitapta oluşturulan parçacık sistemine benzer bir şey üzerinde çalışıyorum. Parçacık sistemim hariç, temel olarak sadece 3 boyutlu bir ızgarada (yerçekimi/kuvvetler/vb. Gibi) görünen parçacıklar olacaktır. Bu eğitim amaçlıdır, eğer bu çalışmayı yaparsam, geri kalanını ben halledebilirim.
Neyi anlamadığım, bilgi işlem gölgelendiricisinin boru hattına nasıl sığdığıdır. Ne yapmam gerektiğini anladığımı düşünüyorum ama nasıl çalıştığımı bilmiyorum.
Bir şekilde hesaplama gölgelendiricisini tüm parçacık konumlarıyla dolu bir tamponla doldurmam gerekiyor. (1024x1024x1 tamponu). Daha sonra, her bir konum vertex shader'ım için bir köşe noktası olarak çıktılamak için bu hesaplama gölgelendiricisine ihtiyacım var ve boru hattının geri kalanı da bundan sonra standarttır (vertex shader tüm dönüşümleri yapar, geometri gölgelendiricim bir dörtlü ve köşelerimdeki pikselleri genişletir) shader bunu yapar).
Bunun doğru olup olmadığını bilmiyorum, ama doğru görünüyor. Ve olsa bile, bunu yapmak için nasıl gideceğime dair hiçbir fikrim yok. Hesaplama gölgelendiricinin çıktısını köşe gölgelendiricisine nasıl aktarabilirim? Başlangıçta hesaplama gölgelendiricisini nasıl başlamalıyım? Compute shader'ın parçacıkların tamponunu atmamasını nasıl sağlarım? (Aksi takdirde, partikülleri her seferinde tedarik etmek zorunda kalırdım, bu da (sonunda) hareket eden parçacıklarla bir parçacık sistemi yapmanın amacını, vb., CPU üzerinde yapmak zorunda olduğum gibi)
Pek çok bilinmeyen var ve bu gölgelendiricilere yazmaya bile başlamamı beklediğimi sanıyordum. Adım taşları bulamıyorum.
Doğrudan boru hattının geri kalanına sığmaz, bağımsız bir şeydir. Arayüz, açık nedenlerle olsa da, aynı şeylerin çoğunu kullanır. Sonuçlar ve girdiler, boru hattının kullandığı ve aynı zamanda boru hattı ile birlikte kullanılmasını çok iyi hale getiren grafik kartı nesneleridir. – jcoder
Bilgisayar gölgelendiricileriyle, herhangi bir grafik öğesinden bağımsız olarak, yalnızca iki arabelleği sayı dizileriyle doldurarak ve toplamlarını içeren bir üçüncü sayı oluşturmak için bir hesaplama gölgelendiricisi oluşturan ve bunu yazdırmak için CPU'ya geri okuyarak, basit bir işlem yapmaya başladım ... Bir parçacık yükünün konumlarını güncellemek için bunu nasıl uzatabileceğinizi görebiliyorsunuz - ve bu pozisyonları CPU'ya geri okumak gerekmeyecek, grafik pipleline programı verileri doğrudan girdi olarak kullanabiliyor. – jcoder
Bu kitap gibi bir şey http://www.amazon.co.uk/Introduction-Game-Programming-DirectX-ebook/dp/B0085CDJY4 gibi tam olarak ihtiyacınız örneklerini içerdiğinden tavsiye ederim. (Bazen bazı adımları atıyor gibi gözükse de, iyi bir kitap buldum) – jcoder