IMR & TBR & TBDR

IMR

Immediate Mode Rendering(即时渲染),是 PC 和主机 GPU 使用的渲染方式

IMR下的渲染示意图

每次渲染,都要读写Frame Buffer和Depth Buffer 

IMR优化

IMR需要大量的带宽和功耗,优化方式是L1、L2 Cache大缓存,不适用于移动GPU

硬件和内存交互的数据流

TBR

TBR (Tile-Based Rendering)分块渲染

核心思想:将帧缓冲分割为一小块一小块,然后逐块进行渲染

TBR是基于Tile(块)的绘制,不能每次来一个物体就提交一次,TBR的处理流程:

几何处理阶段

图下侧表示当前提交的三角形,图下侧显示的是,场景中的每个三角形,被Binned到4x3模式的Frame Buffer中,每一个只显示影响这个Tile的三角形

Rasterization 光栅化

光栅化也是基于Tile进行的,光栅化会等所有三角形完成几何处理才进入本阶段,从图元列表取出三角形列表,然后根据列表对当前tile的所有三角形进行光栅化以及顶点属性的插值。

着色

硬件和内存交互的数据流

 TBDR

TBDR (Tile-Based Deferred Rendering)在硬件层面上增加HSR (隐藏面消除)解决了Overdraw问题

TBDR是PVR的专利,通过硬件增加HSR和Tag Buffer实现DR,解决过渡渲染的问题。

过渡渲染

红色方体和绿色球体其实只需要进行部分渲染,但是过度渲染是把重叠的部分进行了多次渲染

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-07 15:38:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-07 15:38:04       101 阅读
  3. 在Django里面运行非项目文件

    2023-12-07 15:38:04       82 阅读
  4. Python语言-面向对象

    2023-12-07 15:38:04       91 阅读

热门阅读

  1. Python【走出棋盘】

    2023-12-07 15:38:04       50 阅读
  2. entos7系统部署elastic6.4.3版本集群

    2023-12-07 15:38:04       49 阅读
  3. Vue3组件中使用ref解决GetElementById为空的问题

    2023-12-07 15:38:04       58 阅读
  4. Vue中下载不同文件的几种方式

    2023-12-07 15:38:04       67 阅读
  5. 微信小程序中 不同页面如何传递参数

    2023-12-07 15:38:04       61 阅读
  6. STM32关键词提取

    2023-12-07 15:38:04       58 阅读
  7. 1.求两个数最大值

    2023-12-07 15:38:04       57 阅读
  8. Python里的OS模块

    2023-12-07 15:38:04       45 阅读
  9. Rust语言项目实战(九 - 完结) - 胜利与失败

    2023-12-07 15:38:04       52 阅读
  10. Ubuntu 安装高版本FFmpeg

    2023-12-07 15:38:04       64 阅读
  11. CSS选择器看一篇就够了

    2023-12-07 15:38:04       67 阅读
  12. Redis击穿(热点key失效)

    2023-12-07 15:38:04       66 阅读