使用多個渲染目標有沒有意義?在清除目標並再次使用它之前,不能只繪製一個渲染目標並將其存儲到紋理中嗎?指向多個渲染目標
Q
指向多個渲染目標
2
A
回答
1
當您想渲染一個幾何體並將不同的輸出收集到單獨的渲染目標中時,會使用多個渲染目標。
今天,這項技術主要用於實現延期着色。在延遲着色中,多個渲染目標存儲照明信息,例如表面法線,鏡面顏色和鏡面指數,以及深度和漫反射顏色信息。該組合的渲染目標被稱爲G緩衝區。對於延期着色和G緩衝區的引物,參見6800 Leagues Under the Sea (Hargreaves & Harris 2004)。
4
瞭解MRT的關鍵在於,您並未向所有渲染目標繪製完全相同的數據。
像素着色器只能輸出4個浮點值,通常您會使用這4個值在給定點處生成顏色。但是,您可能想要輸出深度數據或普通數據,因此您可以使用這4個浮點值來表示其他可能需要的信息。
與MRT相比,您只需繪製場景一次並輸出到各個渲染目標,因此在一個渲染過程中,您可以輸出到一個渲染目標,它將接收漫反射顏色數據,另一個渲染目標將會收到正常數據和第三個渲染目標會收到深度數據。請參閱下文,更好地瞭解我的意思:
這是真的RGBA值成爲其他東西的情況下,例如RGB,因爲X,Y,正常的多邊形之中的ž畫。
有一些使用MRT的漁獲物,比如所有的渲染目標必須具有相同的位深度,並且你開始用它來推動你的GPU紋理填充率,但總的來說優點超過了這些陷阱。
相關問題
- 1. DirectX9中的多個渲染目標
- 2. 設置OpenGL多個渲染目標
- 3. 鼠標指針渲染器
- 4. React |多個渲染
- 5. Unity3d,多個渲染目標 - Direct3D/OpenGl中的不同行爲
- 6. 從多個渲染目標讀取在DirectX
- 7. Angular 2 - 在第一個指令被渲染後停止渲染
- 8. ReactJS渲染多個孩子
- 9. 渲染多個.vue組件
- 10. Jinja多個渲染流
- 11. 我可以爲每個渲染目標指定一個視口嗎?
- 12. libGDX渲染TextureRegion渲染得太多
- 13. XNA規模和渲染目標
- 14. 重用渲染目標「溢出油漆」?
- 15. 如何綁定渲染目標?
- 16. Poppler:以目標分辨率渲染
- 17. 創建WIC位圖渲染目標
- 18. HTML標記渲染
- 19. CSS標記渲染
- 20. MonoTouch:MonoTouch.Dialog渲染標題
- 21. PHP渲染標籤
- 22. 渲染多頁PDF
- 23. 一個DataGrid的項目渲染多個列
- 24. 重定向然後渲染
- 25. SceneKit視圖向後渲染
- 26. DirectX:渲染到屏幕緩衝區而不使用渲染目標
- 27. 支持視頻卡的低端Pixel Shader 2.0支持多少個渲染目標?
- 28. Magento活動。捕捉靜態塊渲染或指定塊渲染
- 29. 「服務器端渲染」是指雙方渲染?
- 30. 渲染:收集包裝每個項目?