C++ directx 11 SDK kullanarak tek geçişte iki dokuyu oluşturmaya çalışıyorum. Sonuç görüntüsünün her bir pikselinin rengini (bir 3D sahnesi oluştururken normalde ekranda gördüğüm) ve her bir piksel ve derinliğin normalini içerecek başka bir doku (normal ve 1 şamandıra için 3 şamandıra) içeren bir doku istiyorum derinlik için). Şu an üzerinde düşünebildiğim şey, iki oluşturma hedefi oluşturmak ve ilk geçişi renkler olarak oluşturmak, ikincisi ise her bir görüntü oluşturma hedefi için normalleri ve derinliği geçmek. Ancak, bu zaman kaybı gibi görünüyor çünkü ilk pikselde her pikselin rengini, normalini ve derinliğini öğrenebiliyorum. Öyleyse bir şekilde piksel gölgelendiriciyle iki doku çıkışı için bir yol var mı?Tek geçişte birden çok dokuya yönlendirme directx 11
Herhangi bir yardım için teşekkür ederiz.
P.S. Piksel gölgelendiricide RWTexture2D veya RWStructuredBuffer hatları boyunca bir şey düşünüyorum. Biraz arka plan: Bilgi gölgelendiricide daha fazla işlem için iki resme ihtiyacım var. Bu, bir senkronizasyonla ilgili bir yan soruya yol açar: piksel gölgelendirici (hesaplama gölgelendiricisinden farklı olarak) her bir pikselin birer birer birer kez yazılmasından ötürü, piksel gölgelendiricinin ne zaman bittiğini nasıl anlarım ve görüntü işleme işlemini başlatmak için hesaplama gölgelendiricisine ne diyeyim?
Teşekkürler. Özellikle bağlantılar için. Bunun ne kadar yararlı olduğunu hayal etmeye başlayamazsın. Tekrar teşekkürler. Bu arada, "derinlik tamponu" ile piksel gölgelendiricisi için SV_Depth değeri mi demek istiyorsunuz? (Sanırım bunu bir yerlerde okudum ama emin değilim.) +1 ve cevabı kabul etti. – l3utterfly
Probs yok. SV_Depth, kendi derinlik değerinizi yazmak istiyorsanız, bazı durumlarda faydalıdır (PixelShader raytracers'dan elde edilen derinlik veya bazı Doku Dizileri). Demek istediğim, DepthStencil kaynağı Shader Resource View olarak da bağlanabilir, bu yüzden sahnesine bir derinlik tamponu bağlayacağınız için yeniden kullanabilirsiniz, ücretsizdir. – catflier