移动GPU渲染原理的流派——IMR、TBR及TBDR
移动GPU渲染原理的流派——IMR、TBR及TBDR
移动GPU相对桌面级的GPU仅仅能算是未长大的小孩子,尽管小孩子在某些场合也能比成人更有优势(比方杂技、柔术之类的表演)。但在力量上还是有先天的区别,主要表如今理论性能和带宽上。
与桌面GPU动辄256bit甚至384bit的位宽、1.2-1.5GHz的高频显存相比。移动GPU不仅要和CPU共享内存带宽,并且普遍使用的是双32bit位宽、LPDDR2-800或1066左右的内存系统。总带宽普遍在10GB/s以内。悲催的Tegra 3使用的还是单通道内存模式,搭配DDR3L的带宽只是6.4GB/s。

眼下GPU性能最强大的iPad 4带宽也只是17GB/s(图片源于Anandtech)
移动处理器中内存带宽最高的是iPad 3/4。由于他们使用Retina屏幕。2048x1536的高分辨率对GPU带宽要求更高,只是就算是这两款产品,17GB/s的带宽与PC显卡上动辄200GB/s以上的带宽相比还是小儿科了。
没有高带宽就没有大容量纹理数据,也就不会有高画质。虽然带宽不是制约移动GPU发展的唯一因素。可是在眼下的限制下。移动GPU厂商关心的头等大事就是怎样在尽可能小的带宽需求下提升GPU性能及画质,前面介绍的纹理压缩是一个方法,另一种就是使用不同的渲染方式。主要有IMR、TBR及TBDR等。
伤不起的“马上渲染模式”——IMR

IMR(Immediate Mode Rendering)就如字面意思一样——提交的每一个渲染要求都会马上開始,这是一种简单而又粗暴的思路。长处缺点都非常明显。假设不用为性能担忧,这样的方式会非常省事。可是IMR的渲染实行的是无区别对待,那些遮蔽处理的部分依旧会被渲染处理器。这也导致无意义的读写操作很多其它。浪费了大量性能和带宽。
总之,IMR这样的渲染方式在移动GPU上的评价仅仅能是“负分,滚粗!
”。
变聪明了的“贴图渲染”——TBR

IMR傻大粗的做法不可取,那就来一个聪明点的方式——TBR(Tile Based Rendering,贴图渲染),它将须要渲染的画面分成一个个的区块(tile),每一个区块的坐标通过中间缓冲器以列表形式保存在系统内存中。
这样的渲染方式的优点就是相对IMR降低了不必要的渲染任务。缺点就是遮蔽碎片依旧会少量存在,并且须要中间缓冲器。

TBR渲染将游戏画面分为不同的区块
再次进化的渲染方式登场——TBDR

TBR尽管比IMR聪明多了。只是还是存在不少缺陷,TBDR(Tile Based Deferred Rendering,贴图延迟渲染)闪亮登场,它跟TBR原理相似,可是使用的是延迟渲染(Deferred Rendering),合并了完美像素。通过HSR(Hidden Surface Removal,隐藏面消除)等进一步降低了不须要渲染的过程,降低了带宽需求。实际上这些改变和PC上的渲染有些相似。

TBDR渲染的一个关键是延迟渲染
其它几家厂商用的都是TBR技术,TBDR主要是Imagination在使用,这也是他们最大的筹码之中的一个。
在微软的DX11.1升级中也有提到支持TBDR,由于Windows 8系统还专门为平板和触控优化,对TBDR这样的移动平台经常使用的技术加以优化也是必定的。
移动GPU渲染原理的流派——IMR、TBR及TBDR的更多相关文章
- 【Web动画】CSS3 3D 行星运转 && 浏览器渲染原理
承接上一篇:[CSS3进阶]酷炫的3D旋转透视 . 最近入坑 Web 动画,所以把自己的学习过程记录一下分享给大家. CSS3 3D 行星运转 demo 页面请戳:Demo.(建议使用Chrome打开 ...
- (转)简述47种Shader Map的渲染原理与制作方法
在Shader中会使用各种不同图参与渲染,所以简单地总结下各种图的渲染原理.制作方法,最后面几种是程序生成图. 1. Albedo 2. Diffuse(Photographic) 从上图可以看出来, ...
- 通过OpenGL理解前端渲染原理(1)
一.OpenGL OpenGL,是一套绘制3D图形的API,当然它也可以用来绘制2D的物体.OpenGL有一大套可以用来操作模型和图片的函数,通常编写OpenGL库的人是显卡的制造者.我们买的显卡都支 ...
- iOS 图像渲染原理
http://chuquan.me/2018/09/25/ios-graphics-render-principle/ 通过 图形渲染原理 一文,大致能够了解图形渲染过程中硬件相关的原理.本文将进一步 ...
- [原]关于flash GPU渲染的一些不完全测试(wmode,ie,chrome)
关于flash GPU渲染的一些不完全测试(wmode,ie,chrome) 测试环境: 随意取一段优酷超清视频,在本地以网页最大化方式播放,分辨率约1080P左右. 观察不同wmode值下,flas ...
- react渲染原理深度解析
https://mp.weixin.qq.com/s/aM-SkTsQrgruuf5wy3xVmQ 原文件地址 [第1392期]React从渲染原理到性能优化(二)-- 更新渲染 黄琼 前端早读课 ...
- WPF 渲染原理
原文:WPF 渲染原理 在 WPF 最主要的就是渲染,因为 WPF 是一个界面框架.想用一篇博客就能告诉大家完整的 WPF 渲染原理是不可能的.本文告诉大家 WPF 从开发者告诉如何画图像到在屏幕显示 ...
- [GEiv]第七章:着色器 高效GPU渲染方案
第七章:着色器 高效GPU渲染方案 本章介绍着色器的基本知识以及Geiv下对其提供的支持接口.并以"渐变高斯模糊"为线索进行实例的演示解说. [背景信息] [计算机中央处理器的局限 ...
- Tile based Rendering 二 tbr and tbdr 优化建议tiled based deferred rendering
http://www.seas.upenn.edu/~pcozzi/OpenGLInsights/OpenGLInsights-TileBasedArchitectures.pdf tbr 和tbdr ...
随机推荐
- NYOJ 104 最大和
最大和 时间限制:1000 ms | 内存限制:65535 KB 难度:5 描述 给定一个由整数组成二维矩阵(r*c),现在需要找出它的一个子矩阵,使得这个子矩阵内的所有元素之和最大,并把这个 ...
- matalb sum函数和sum变量的用法
在对矩阵或者向量求和要用到sum函数的时候代码里面千万不要出现将sum作为变量名
- 卷积层feature map输出到文本
本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/52166388 以VGG_16的网络为例 ...
- nodemailer发送邮件遇到的一些问题
使用nodemailer发送邮件一直困惑了我好几天,百度谷歌都没有找到的几个问题,方便大家排查. 我使用的是0.7.1版本,其他的版本好像报错,就没用. 错误信息:Mail from command ...
- BZOJ 4128 Matrix ——BSGS
矩阵的BSGS. 只需要哈希一下存起来就可以了. 也并不需要求逆. #include <map> #include <cmath> #include <cstdio> ...
- 算法复习——数位dp(不要62HUD2089)
题目 题目描述 杭州人称那些傻乎乎粘嗒嗒的人为 62(音:laoer). 杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可以消除个别的士司 ...
- cf493E Vasya and Polynomial
Vasya is studying in the last class of school and soon he will take exams. He decided to study polyn ...
- 虚拟机搭建--hyper-V使用教程
http://jingyan.baidu.com/article/4e5b3e19695d9f91901e24bb.html
- 转载 cc、gcc、g++、CC的区别概括
gcc是C编译器:g++是C++编译器:linux下cc一般是一个符号连接,指向gcc:gcc和g++都是GUN(组织)的编译器.而CC则一般是makefile里面的一个名字,即宏定义,嘿,因为Lin ...
- iOS开发中16进制颜色(html颜色值)字符串转为UIColor
//16进制颜色(html颜色值)字符串转为UIColor +(UIColor *) hexStringToColor: (NSString *) stringToConvert { NSString ...