使用多个渲染目标有没有意义?在清除目标并再次使用它之前,不能只绘制一个渲染目标并将其存储到纹理中吗?指向多个渲染目标
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. 渲染:收集包装每个项目?