使用多個渲染目標有沒有意義?在清除目標並再次使用它之前,不能只繪製一個渲染目標並將其存儲到紋理中嗎?指向多個渲染目標
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. 多渲染目標
- 2. 設置OpenGL多個渲染目標
- 3. 金屬中的多個渲染目標
- 4. DirectX9中的多個渲染目標
- 5. Three.js中的多個渲染目標
- 6. 鼠標指針渲染器
- 7. OpenGL中分層渲染和多個渲染目標之間的混淆
- 8. C#XNA渲染目標
- 9. three.js EffectComposer的渲染目標
- 10. React |多個渲染
- 11. 我應該使用多少個渲染目標?
- 12. OpenGL中的多個渲染目標與Cg
- 13. DirectX使用多個渲染目標作爲對方的輸入
- 14. 多個組件如何針對相同的「f:ajax渲染」目標?
- 15. 從多個渲染目標讀取在DirectX
- 16. Unity3d,多個渲染目標 - Direct3D/OpenGl中的不同行爲
- 17. 多個渲染目標不保存數據
- 18. 如何在渲染之前操作光標指向的數據
- 19. 的Nexus 10 - 渲染外部渲染目標只能在景觀
- 20. 有兩個較小的渲染目標或一個較大的渲染目標會更好嗎?
- 21. 渲染帖子與指定的標記
- 22. Angular 2 - 在第一個指令被渲染後停止渲染
- 23. 渲染多個.vue組件
- 24. Jinja多個渲染流
- 25. SDL2多個渲染器?
- 26. ReactJS:渲染多個對象
- 27. ReactJS渲染多個孩子
- 28. 我可以爲每個渲染目標指定一個視口嗎?
- 29. 將窗體渲染爲多步向導
- 30. libGDX渲染TextureRegion渲染得太多