首页 > 其他分享 >立即渲染(IMR) vs. 基于块渲染(TBR)

立即渲染(IMR) vs. 基于块渲染(TBR)

时间:2022-09-29 17:23:05浏览次数:83  
标签:primitive 渲染 fragment DrawCall TBR vertex vs tile

DrawCall:
CPU指令,用来向GPU传输渲染数据和指令,
在Unity叫SetPassCall

CommandBuffer:
缓存DrawCall

RenderPass:
一次渲染流,有时完成一帧渲染需要多次RenderPass(如阴影)
每次执行RenderPass时,GPU会从CommandBuffer中取出所有的DrawCall,逐一执行。

立即渲染(IMR) vs. 基于块渲染(TBR)
IMR:
在一个RenderPass中,逐一执行DrawCall
----每个DrawCall
--------逐片元逐顶点做顶点变换
--------把变换后的顶点送去做光栅化
--------把光栅化后的片元逐个着色(着色过程中由于片元太大会与DRAM频繁交互,消耗大量带宽)
伪代码
for draw in renderPass:
for primitive in draw:
for vertex in primitive:
execute_vertex_shader(vertex)
for fragment in primitive:
execute_fragment_shader(fragment)

TBR:
pass1:
在一个RenderPass中,逐一执行DrawCall
----每个DrawCall
--------逐片元逐顶点做顶点变换
把所有变换后的顶点收集起来,存在Frame Data中,并且分tile
pass2:
每个tile,单独做光栅化、着色、测试、混合等(由于每个tile的尺寸都不会超过On-Chip 高速缓存的大小,不会消耗大量带宽)
伪代码
# Pass one
for draw in renderPass:
for primitive in draw:
for vertex in primitive:
execute_vertex_shader(vertex)
append_tile_list(primitive)
# Pass two
for tile in renderPass:
for primitive in tile:
for fragment in primitive:
execute_fragment_shader(fragment)


 

 

Tile-based Rendering Architecture(TBR/TBDR) - 简书 (jianshu.com)

Unity Shader学习笔记(一)DrawCall-腾讯游戏学堂 (qq.com)

【GPU】番外篇:从桌面端看移动端GPU架构 - 知乎 (zhihu.com)

(48条消息) 闲聊Framebuffer_认真的柯南的博客-CSDN博客_framebuffer 内存分配

(48条消息) 针对移动端TBDR架构GPU特性的渲染优化_leonwei的博客-CSDN博客

 

标签:primitive,渲染,fragment,DrawCall,TBR,vertex,vs,tile
From: https://www.cnblogs.com/alphaGo/p/16742287.html

相关文章

  • 摆脱鼠标系列 - vscode - Esc 返回时候 强制显示英文输入法 - ahk 脚本 - autoHotKey
    为什么摆脱鼠标系列-vscode-Esc返回时候强制显示英文输入法切换网页的时候,回来还是搜索输入法,就想到按esc,直接强制英文输入法之前vim插件里面用了一个im-sel......
  • Style3D招聘:渲染、CAD、物理仿真
    Style3DBase杭州,年薪30~200w,优秀的可谈,实习生也要滴岗位职责1:从事服装布料渲染引擎开发工作岗位要求:1、熟悉计算机图形学;2、精通C/C++编程,有很强的代码阅读、分析和设计能力;3......
  • VSCode上Git账号的变更处理
    01.进入控制面板> 用户账户  在Windows凭据下 ......
  • Vscode中点击自动eslint格式化和prettier搭配
    eslint规则只是限制我们在写代码时候的标准化,尤其是在团队开发中成员的代码一致性,如果大家都是自己的标准,那么写出的项目将没有办法进行阅读,不利于后期的二次开发vscode自......
  • Cinema 4d R25 C4D Mac版本的Arnold 渲染器 crack.
    官网下载Mac版C4DR25的安装包之后安装:https://wdown.solidangle.com/c4dtoa/C4DtoA-4.4.0-darwin-R25.pkg再下载:链接:https://pan.baidu.com/s/1XSfbps41kDRESHSMpbQiW......
  • lvs负载均衡
    目录基本介绍基本工作原理LVS的组成LVS相关术语lvs三种工作模式NAT原理和特点DR原理和特点Tun原理和特点LVS调度算法实践LVS搭建HTTP负载均衡集群实践LVS的NAT模式基本介......
  • 实验2:Open vSwitch虚拟交换机实践
    (一)基本要求a)/home/用户名/学号/lab2/目录下执行ovs-vsctlshow命令、以及p0和p1连通性测试的执行结果截图;b)/home/用户名/学号/lab2/目录下开启MininetCLI并执行pi......
  • 实验2:Open vSwitch虚拟交换机实践
    实验2:OpenvSwitch虚拟交换机实践一、实验目的能够对OpenvSwitch进行基本操作;能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;能够通过Mininet的Pytho......
  • 实验2:Open vSwitch虚拟交换机实践
    实验2:OpenvSwitch虚拟交换机实践一、实验目的能够对OpenvSwitch进行基本操作;能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;能够通过Mininet的Pyth......
  • QT——vs 中配置qt动态库,无法解析外部命令,解决办法
    vs+qt动态库无法解析外部符号的问题原文链接https://itcn.blog/p/0541664353.html 1、问题描述:无法解析的外部符号解决方案:引用的库没有引用进来,结局方案如下:(1......