Pixel-Fillrate

  “填充率“以每秒钟填充的像素点为单位,“三角形(多边形)生成速度“则表示每秒钟三角形(多边形)生成个数。现在的3D显卡的性能也主要看着两项指标,这两项指标的数值越大,显卡三维图像的处理能力就越强,显卡的档次也就越高。

  

填充率的故事

  谈到3D加速卡,最常用的一个词就是填充率。各大厂商在介绍和推广自己的产品时,填充率总是作为一个重要指标而大肆宣扬。甚至一场宣传战的争夺焦点也是填充率。那么,填充率到底意味着什么?为什么有些公司用texels(纹理填充率)而另一些用pixels(像素填充率)来定义呢?

  首先让我们来看看厂商们对填充率相关的声明:

  “ATi的下一代Rage 128 GL图形芯片将为高端PC市场提供最好的性能和功能,Rage 128 GL具有超标量渲染引擎和单通道多纹理技术,将是第一个突破1 G texel/s大关的3D芯片。”

  -引自ATI的多年前的一次产品宣传

  “nVIDIA Geforce 2,历史上第一款填充率破G的图形芯片!(1.0 Gigapixels)”

  nVIDIA当年的的新闻声明:

  

[理论峰值填充率]

  大多数公司所谓的填充率实际指的是理论峰值填充率,那么那些填充率的数值是怎么得来的呢?要获得一块显卡的填充率的前提条件是必须知道3D芯片的时钟。将芯片时钟、像素渲染管线的数目相乘,即可得到芯片的填充率数值。下面的几个例子有助于理解:

  3dfx Banshee处理器通常在100MHz下运行。它只有一条像素渲染管线,(这样每个周期它只能计算出一个双线性过滤像素并在屏幕上显示出来)。根据填充率的定义,Banshee的理论峰值填充率就是100MHzX1=100M pixels/s。

  nVIDIA RIVA TNT有两条像素渲染管线,芯片时钟为90MHz,很容易算出TNT的理论填充率为180M pixels/s。

  

  

  nVIDIA Geforce FX 5800 Ultra处理器通常在500MHz下运行。它有八条像素渲染管线,每条管线一个纹理单元。根据填充率的定义,Geforce FX 5800 Ultra的理论峰值填充率就是

  500MHzX8X1=4000M pixels/s。

  ATi Radeon 9700 Pro处理器通常在325MHz下运行。它有八条像素渲染管线,每条管线一个纹理单元。根据填充率的定义,Radeon 9700 Pro的理论峰值填充率就是325MHzX8X1=2600M pixels/s。

  原来如此,我明白了!先别太得意,事情可不是想的那么简单。上面的填充率都是在极端的条件下得到的。某些图形处理器面临限制,它们的像素渲染管线只能为同一个屏幕像素工作,如果像素为单纹理的话,那么第二个像素渲染管线就只好闲置了,这时填充率实际上很低。这里我要告诉大家的主要问题是:在不同的条件下,填充率可能有所不同。理论峰值填充率是3D芯片时钟与像素渲染管线数目的乘积。但这种填充率是在特定的工作环境下获得的,要求像素渲染管线可以同时工作。

  让我们来体验一个复杂些的情况:试着计算一下nVIDIA Geforce Ti 4600的填充率,Ti 4600有四条像素渲染管线,每条管线两个纹理单元,芯片时钟为300MHz, Geforce Ti 4600的理论峰值填充率怎么计算?300MHzX4X2=2400M pixels/s?嗯,算来不错,可实际上呢?300MHzX4=1200M pixels/s,这才是正确的计算!那么300MHzX4X2=2400M是什么呢?答案就是:2400M texels /s。这里,texels /s这个英文就是我们下面要讲的——纹理填充率。

  

[纹理填充率与像素填充率]

  为什么有的厂商广告词中填充率的数字怎么比理论填充率还要高?难道是厂商骗人吗?这里你所看到的填充率很可能就是纹理填充率而不是理论填充率!

  纹理填充率是指一秒钟内纹理渲染的数目,计算公式同理论填充率相似:3D芯片时钟x像素渲染管线数目x单个纹理使用的texel数目。

  哇,太难受了!不要紧,我们还是举例子:

  ATi Rage 128GL原打算设计为125MHz,有两条像素渲染管线。每条管线可以为一个双线性过滤像素上色,而双线性过滤需要4个texles。因此Rage 128GL纹理填充率为:125(时钟)X 2(像素渲染管线条数)x 4(texels)= 1000 Mtexels/s或1G texels/s。

  让我们回首上文那段新闻稿:

  “ATi Rage 128 GL图形芯片将为PC市场提供最好的性能和功能,Rage 128 GL具有超标量渲染引擎和单通道多纹理技术,将是第一个突破1 G texel/s大关的3D芯片。”

  许多人都迷惑不解,因为他们认为上面所说的1G texels是理论峰值填充率,我个人认为不应该使用纹理填充率,那样做的唯一目的就是欺骗和愚弄人们。所以当你看到一个近似天文数字或比同一代其他显卡高的多的填充率,你应当意识到那很可能是纹理填充率而不是理论峰值填充率。

  这里,我们要注意的是,纹理填充率从来都是以Mtexels表示,而不用Mpixels!

参考:http://blog.csdn.net/pizi0475/article/details/7565067

(转)Pixel-Fillrate显卡像素填充率的更多相关文章

  1. unity 读取外部exe程序控制台信息

    由于需要获取显卡信息,但是unity的自带函数,只能输出1个显卡 c#倒是可以但是引用了一个下载的dll   System.Management.dll 这个dll放到unity用不了,因为mono不 ...

  2. MTK平台 GPU 相关知识

    一.什么是Render script,以及mtk平台GPU support情况 [DESCRIPTION] 1.什么是RenderScript ? 2.RenderScript 干什么? 3.MTK平 ...

  3. LeetCode 533. Lonely Pixel II (孤独的像素之二) $

    Given a picture consisting of black and white pixels, and a positive integer N, find the number of b ...

  4. Fillrate

    http://xionggf.com/articles/graphic/misc/mobile_gpu_term.html IMR Immediate Mode Rendering 立即渲染模式 TB ...

  5. CSS像素、物理像素、逻辑像素、设备像素比、PPI、Viewport

    1.PX(CSS pixels) 1.1 定义 虚拟像素,可以理解为“直觉”像素,CSS和JS使用的抽象单位,浏览器内的一切长度都是以CSS像素为单位的,CSS像素的单位是px. 1.2 注意 在CS ...

  6. 移动web开发之像素和DPR

    × 目录 [1]定义 [2]分类 [3]缩放[4]DPR 前面的话 像素在web开发中几乎天天用到,但到底什么是像素,移动端和桌面端的像素有区别吗,缩放对像素有影响吗,视网膜屏幕和像素有什么关系?关于 ...

  7. iOS开发之图片分辨率与像素对齐

    像素对齐的概念 在iOS中,有一个概念叫做像素对齐,如果像素不对齐,那么在GPU渲染时,需要进行插值计算,这个插值计算的过程会有性能损耗. 在模拟器上,有一个选项可以把像素不对齐的部分显示出来.  ...

  8. 深入理解移动web开发之PPI,Pixel,DevicePixelRatio(转)

    如果你是一个开始接触移动Web开发的前端工程师,那么你或许也遇到了和我曾经遇到的过问题:有太多新的概念需要掌握,太多相似的概念需要区分.没关系,我将用两篇文章的篇幅来解决这些问题.上篇文章关于解释和区 ...

  9. 像素,分辨率,PPI(像素密度),BPP 扫盲

    像素于分辨率 像素,又称画素,为图像显示的基本单位,译自英文“pixel”,pix是英语单词picture的常用简写,加上英语单词“元素”element,就得到pixel,故“像素”表示“图像元素”之 ...

随机推荐

  1. AutoMapper实际项目运用

    AutoMapper是对象到对象的映射工具.在完成映射规则之后,AutoMapper可以将源对象转换为目标对象. 配置AutoMapper映射规则 AutoMapper是基于约定的,因此在实用映射之前 ...

  2. 阻止新的csproj工程的dll引用继承

    VisualStudio传统的csproj工程中,引用是没有继承功能的.例如,对于如下一个引用关系 App引用Assembly 1 Assembly 1引用Assembly 2 程序App在没有添加A ...

  3. 关于MongoDB时区问题

    由于MongoDb存储时间按照UTC时间存储的,其官方驱动MongoDB.driver存储时间的时候将本地时间转换为了utc时间,但它有个蛋疼的bug,读取的时候非常蛋疼的是返回的是utc使时间.一个 ...

  4. [Go] 编码规范

    gofmt 大部分的格式问题可以通过 gofmt 解决,gofmt 自动格式化代码,保证所有的Go代码与官方推荐的格式保持一致,于是所有格式有关问题,都以 gofmt 的结果为准. 注释 在编码阶段应 ...

  5. mysqltool :dodba orzdba

    http://www.cnblogs.com/beyang/p/6963306.html

  6. mysql 阿里内核人员

    丁奇 http://dinglin.javaeye.com/ 鸣嵩 @曹伟-鸣嵩 (新浪微博) 彭立勋 http://www.penglixun.com/ 皓庭 http://wqtn22.iteye ...

  7. 清华梦的粉碎—写给清华大学的退学申请(转自王垠Blog)

    清华梦的诞生 小时候,妈妈给我一个梦.她指着一个大哥哥的照片对我说,这是爸爸的学生,他考上了清华大学,他是我们中学的骄傲.长大后,你也要进入清华大学读书,为我们家争光.我不知道清华是什么样子,但是我知 ...

  8. 查看webservice服务下的所有方法和参数类型

    方法:直接在IE浏览器中输入webservice的地址,查看返回的XML数据即可. 效果如下:

  9. 在NDK C++线程中如何调用JAVA API

    from://http://www.eoeandroid.com/thread-150995-1-1.html 在NDK中创建的线程中, 只允许调用静态的Java API. 当在线程中调用env-&g ...

  10. CCConfiguration::sharedConfiguration()->loadConfigFile cocos2d-x 中文乱码问题及国际化解决方案

    from:://http://www.cnblogs.com/sunguangran/archive/2013/07/29/3222660.html 将显示文本单独保存为文本文件 在cocos2d-x ...