SubpassInput由片段着色器隱式尋址。 我想用我自己的紋理Coords來解決輸入問題。 與紋理相似(採樣器,texCoord)有沒有辦法解決Vulkan中的subpassInput問題?
1
A
回答
3
這是不可能的。如果你想品嚐着色器內的圖像,您有(一般)兩種可能性:
您可以使用一個描述符類型採樣圖像或組合圖像採樣的描述符中設置。這樣你可以解決它,只要你喜歡。但是,在渲染過程中充當附件的圖像不能用於同一渲染過程中的這些描述符,而在這些過程中它們被用作附件。爲此,您需要結束渲染通道並啓動另一個渲染通道。在第二次渲染過程中,您可以使用這些圖像並從着色器中對其進行採樣。
如果您想要在渲染過程中使用圖像作爲附件,並且您想要在同一渲染過程中(但在後續子過程中)對這樣的圖像進行採樣,則只能使用輸入附件描述符(着色器內的subpassInput)。這樣您就不需要結束渲染過程並啓動另一個過程,但是您只能對與片段着色器的座標關聯的位置進行採樣。
這個限制來自渲染高度平行的事實。下一個子通道的某些部分可能已經在來自前一個子通道的所有操作完成之前開始處理(考慮平鋪渲染器)。如果您開始從前一個子通道中的圖像中讀取數據,並且該圖像的某些部分尚未完成渲染,則可能會得到不正確的值。這就是爲什麼您只能從渲染過程中的單個位置讀取(使用輸入附件時)。
也許有一個擴展提升了這些約束,但我沒有讀到任何這樣的擴展。核心規格只允許上述兩個選項。
相關問題
- 1. 有沒有辦法解決macports安裝libtool的問題?
- 2. 有沒有辦法解決Python缺乏塊評論的問題?
- 3. 有沒有辦法解決SVGFileDC的GraphicsContext問題
- 4. 有沒有辦法解決pydev PEP-8問題?
- 5. 有沒有解決UpdatePanel + Server.Transfer的問題?
- 6. 有沒有辦法在Vulkan計算着色器中使用clz()?
- 7. 父鍵沒有找到解決辦法
- 8. XmlApplicationContext:有沒有辦法一次瞭解所有配置問題?
- 9. three.js陰影地圖顯示在背面問題。有沒有解決辦法?
- 10. JSON解析問題沒有解決
- 11. 有沒有辦法解決Oracle中的更改通知?
- 12. 有沒有辦法解決共享池中的Oracle查詢
- 13. java.lang.NumberFormatException有沒有更好的解決此問題的方法?
- 14. 有沒有解決'com.apple.product-type.framework'問題的方法?
- 15. 有沒有更好的方法去解決這個問題?
- 16. 有沒有更好的方法來解決這個問題?
- 17. JQuery .forEach在IE8中不受支持。有沒有解決辦法?
- 18. 菜單CSS問題沒有解決
- 19. 有沒有人有解決這個佈局問題在IE中?
- 20. 如何解決「沒有辦法來解決衝突」的錯誤時,有項目中沒有參考?
- 21. 有沒有辦法解決Apple的UITextField Emoji bug?
- 22. 有沒有辦法解決Rails刪除的遷移?
- 23. 有沒有辦法解決.NET代碼之外的程序集?
- 24. Vulkan:有沒有辦法在DirectX12中的不同位置繪製多個對象?
- 25. 沒有辦法解決這個問題而不修改微軟頭文件?
- 26. 在Ruby中,getoptlong破壞性地解析ARGV。有沒有解決的辦法?
- 27. 有沒有辦法讓ASP.NET 5依賴注入解決沒有參考的DbContext?
- 28. 有沒有辦法解決python mayavi錯誤,如下所述?
- 29. 有沒有辦法通過聲明變量來解決poly()?
- 30. 有沒有辦法解決索引索引
我想將2個後期效果應用於我的輸出。第一個後期效果與片段着色器中的渲染輸出一起播放,其中第二後期效果翻轉圖像。通過第一個子通道,我可以實現第一個後期效果。對於第二個子通道是否有辦法實現它?如果我無法解決紋理問題,可以修改我可以將顏色寫入的位置? –
@abhijitjagdale:不,你*必須*打破渲染過程。應該注意的是,當你在OpenGL ES中做了這樣的訣竅時,你幾乎殺死了你的表現。 Vulkan不會讓你想到這是一個便宜的操作。 –
我認爲有一個擴展名允許您反轉視口,從而反轉顯示的圖像。但它只是一個擴展,所以它可能不支持所有設備。使用核心規格您需要啓動新的渲染通道或使用計算着色器反轉圖像。 – Ekzuzy