Ertelenmiş çıkartmalar normal problem


11

Ertelenmiş bir çıkartma sistemi üzerinde çalışıyorum. Şu ana kadar yansıtma kısmını bitirdim, yani sahnede bir şeyi tıklayabilirim ve nesnenin yüzeyine bir çıkartmayı düzgün şekilde yansıtacaktır.

Bu sisteme eklemek istediğim birkaç şey daha var: normal kırpma ve normal eşlenmiş çıkartmalar. Normal kırpma, keskin bir açı boyunca gerilmiş parçaları attığım zamandır. Burada gördüm . Bunu çözmenin bir yolu, G-Tamponundaki normal ile çıkartmanın normali arasında büyük bir farkı olan parçaları atmaktır. Bunun için G tamponunun normal dokusunun okunması gerekir.

Çıkartma normal eşlemesi yapmak için, çıkartmanın normalini (normal bir haritadan) G tamponunun normaliyle karıştırmam gerekir. G-tamponunun normal dokusuna yazılması gerekir.

Umarım bu iki özelliği desteklemek için, aynı gölgelendirici geçişinde normal dokuyu okumam ve yazmam gerekir. Ne yazık ki, bu tanımsız bir davranış, bu yüzden bu özellikleri uygulamak için başka bir yol olup olmadığını merak ediyorum.

Yanıtlar:


1

Hangi oluşturma sistemini kullanıyorsunuz? Aşağıdaki bilgiler tüm oluşturma sistemleri için geçerli olmalıdır, ancak DX11 veya sonraki OpenGL sürümlerinde İHA'ları kullanarak daha iyi bir çözüm olabilir.

-

Her geçişten önce normal arabelleği kopyalamanız gerekir. Çıkartmaların aynı ekran alanı parçalarını değiştirmediğini bildiğiniz sürece kopyayı güncellemeniz gerekmez.

Ayrıca tüm etiketlerinizi ayrı arabelleklere dönüştürebilir ve tek bir normal arabellek kopyası kullanarak normal ara belleğinize yalnızca bir karışım geçişi yapabilirsiniz. Bu, sahip olduğunuz çıkartma miktarıyla çok daha iyi ölçeklendirilir.

Normal arabelleği yazmadığınız sürece, örneğin yalnızca normal kırpma gerçekleştirin, onu çağırdığınızda, yalnızca orijinal normal arabelleği örnekleyebilirsiniz, ancak bir oluşturma hedefi olarak bağlayamazsınız.

DX9'da, aynı dokuya okuma ve yazma işleminin, yalnızca en yakın nokta filtrelemesini kullandığınız ve şu anda yazmakta olduğunuzdan farklı bir piksel okumadığınız sürece beklenen çıktıyla sonuçlandığını buldum, AMA! Bu tanımlanmamış bir davranış olduğu için, bu şekilde davranmayan sürücüler ve grafik kartları olabilir. DX10, şu anda oluşturma hedefi olarak bağlı dokuları bağlayarak bunu yapmanızı engelleyecektir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.