GPU发展历史:

GPU之前的基础:

1962

麻省理工学院的博士伊凡•苏泽兰发表的论文以及他的画板程序奠定了计算机图形学的基础。

1962-1984

没有专门图形处理硬件,由CPU完成

1984

专门的图形处理硬件(图形加速器):SGI公司推出了面向专业领域的高端图形工作站。

1984-1995

SGI又不断研发出了一系列性能更好的图形工作站。由于价格昂贵,无法面向消费级市场。在消费级领域,还没有专门的图形处理硬件,只有一些2D加速卡(用显示芯片来代替 CPU,整块整块的移动显存里的数据)。

1995

第一块消费级3D显卡:3dfx公司发布的3D图形加速卡voodoo。

随后几年

AMD公司和ATI公司分别发布了自己的TNT系列与Rage系列显卡。它们已经从硬件上实现了Z缓存和双缓存,可以进行光栅化之类的操作,同时也实现了DirectX 6的特征集。

CPU终于从繁重的像素填充任务中解脱出来。但是当时顶点变换还是必须在CPU中完成,光栅化之后的像素操作也很有限。

GPU的出现:

1999

八月,NVIDIA公司发布了一款代号为NV10的图形芯片Geforce 256,是第一款提出GPU概念的产品。

Geforce 256所采用的核心技术有“T&L”(translateand lighting)硬件、立方环境材质贴图和顶点混合、纹理压缩和凹凸映射贴图、双重纹理四像素256位渲染引擎等。

同时期的OpenGL和DirectX7都提供了硬件顶点变换编程接口。
2001

微软公司发布DirectX8,包含了Shader Model(优化渲染引擎模式)1.0标准。

遵循ShaderModel的GPU可以具备顶点和像素的可编程性。

同年,NVIDIA发布了Geforce3,ATI发布了Radeon8500,这两种GPU支持顶点编程。但是这一时期的GPU都不支持像素编程,只是提供了简单的配置功能。 
2002

年底,微软发布DirectX9.0b,Shader Model2.0版本

2003年开始,NVIDIA和ATI发布的新产品都同时具备了可编程顶点处理和可编程像素处理器,具备了良好的可编程性。

从此,GPU具备了可编程属性,也叫做可编程图形处理单元。 
2006

包含与DirectX10的 Shader Model4.0发布

这一版本的Shader Model采用统一渲染架构,而不是单独的可编程顶点处理器和可编程像素处理器,是使用统一的流处理器。

传统的架构中,两类处理器很难实现负载均衡,工作效率不高。在统一渲染架构下,流处理器可以执行不同的渲染指令,工作效率大幅提升,同时便于GPU开始由单纯的渲染转向通用计算领域。

这一时期,比较有代表性的GPU有NVIDIA的Geforce9600和ATI的Radeon 3850。

directX发展历史:

在DirectX诞生之初,业界已经有众多标准,其中有两个重要的标准:OpenGL和Glide

DirectX 1.0:

DirectX 2.0:

2.0最大的改善是在Direct Draw,DirectX2.0的D3D雏形基本完成

Direct X3.0:

1997年发布,2.0的简单升级版

DirectX 5.0:

微软没有发布DirectX4.0。首次引入了雾化的支持,让3D游戏更有空间真实感。除此以外在游戏系统的兼容性方面作了很大改善。

DirectX 6.0:

可以渲染出高分辨率下的32位色的3D效果,体现出AGP总线结构对PCI总线的优越性

DirectX 7.0:

最大的特色就是支持T&L。T&L让GPU来计算原来用CPU计算的位置转换和灯光。

DirectX 8.0

Shader Model 1.0

2001年微软发布,首次引入了“像素渲染”概念,同时具备像素渲染引擎(Vertex Shader)与顶点渲染引擎(Pixel Shader),实现动态光影效果。

DirectX 9.0:

2002年底微软发布,PS和VS的2.0版本,

增加对浮点数据的处理功能。取消了传统的硬件T&L单元

PS具备完全可编程的架构;增加硬件指令数量,同时操纵的材质数量;

VS通过增加Vertex程序的灵活性,显著提高了性能;

DirectX 9.0b:

Shader Model 2.0

DirectX 9.0c:

Shader Model 3.0

DirectX 9.0的改进版本,提升为Shader Model 3.0,像素渲染引擎3.0和顶点渲染引擎3.0的最大指令数分别从上一代的256个和96个提升到65535个

DirectX 10.0:

Shader Model 4.0

放弃之前版本中分离的像素渲染引擎以及顶点渲染引擎架构,而是通过统一渲染架构实现像素或者顶点渲染的功能,大幅度地提高GPU的资源利用率。

加入了新的几何渲染引擎,首次允许GPU动态创建或者删除图

提供了两种新的32bit浮点HDR格式,使得高动态范围比DirectX 9.0c更大,而且解决了HDR与AA两种特效之间的兼容性,同时还能够有效地节约显存带宽的消耗;

提供了对纹理阵列的支持,能够支持最高为8192×8192分辨率的贴图,同时访问的纹理数量达到了128个。

用于GPU通用计算应用程序接口DirectComputer诞生,Direct Computer 4.0。让GPU处理图形数据之外的其他数据。

DirectX 10.1:

Shader Model 4.1

由于当时的GPU无法承受10.0版本的负担,10.1改进大多集中在提高GPU的资源利用率,同时降低对GPU的负担

DirectComputer 4.1

DirectX 11.0:

Shader Model 5.0

在指令集方面进行了扩充和改进

以往的DirectX不能支持高动态范围图像(HDR)的纹理压缩,开启了HDR会使显卡的显存占用率上升到很高的水平,DirectX 11采用了针对HDR的BC6H压缩算法和针对RGB的BC7压缩算法。

提供了多线程处理技术,通过引入延迟执行这一指令,将一个渲染进程拆分成多个线程,并且根据处理器的核心或者线程数量设置延迟执行内容的数目,从而实现了多线程处理一个渲染进程的效果。

OIT(透明独立叠加)乱序透明技术,可以准确地判定多个透明物体之间的层次关系,实现多个不同透明物体的快速混合

Tessellation细分曲面技术,利用GPU硬件加速,将现有3D模型的三角形拆分得更细小、更细致,也就是大大增加三角形数量,使得渲染对象的表面和边缘更平滑、更精细。

Direct Computer 5.0

GPU-directX的发展历史的更多相关文章

  1. Web开发技术发展历史

    Web开发技术发展历史   来自:天码营 原文:http://www.tianmaying.com/tutorial/web-history Web的诞生 提到Web,不得不提一个词就是"互 ...

  2. CentOS以及Oracle数据库发展历史及各版本新功能介绍, 便于构造环境时有个对应关系

    CentOS版本历史 版本 CentOS版本号有两个部分,一个主要版本和一个次要版本,主要和次要版本号分别对应于RHEL的主要版本与更新包,CentOS采取从RHEL的源代码包来构建.例如CentOS ...

  3. .net版本发展历史

    最近装上了VS2013,发现好多新特性.新功能,公司办公还在使用VS2005.VS2008,不过用着也很顺手,在最新版Visual Studio中,微软加入了git源码管理工具,和之前的TFS大体上类 ...

  4. 软件项目发展历史<人月神话>这本书好

    几乎是计算机软件开发的发展历史     人月神话,增加人手并不一定能提高开发速度. 原因在于,有些任务是无法分解的,存在先后顺序.无法同步进行. 增加人手,增加的是沟通成本,相互牵制.可以分解的任务就 ...

  5. [No00002A]26个英语字母的原始象形意义、含义、产生及发展历史

    我们都知道汉字是象形文字,但如果说英语也是象形文字,你一定会以为纯是无稽之谈.其实,追根溯源,英语的26个字母确实来自于象形文字.这26个字母最初起源于埃及象形文字,后由腓尼基人改进发明了腓尼基字母, ...

  6. FPGA技术的发展历史和动向

    本文关键字:fpga技术,fpga发展, fpga培训,FPGA应用开发入门与典型实例 一.FPGA技术的发展历史 纵观数字集成电路的发展历史,经历了从电子管.晶体管.小规模集成电路到大规模以及超大规 ...

  7. python 学习之电脑的发展历史

    电脑的发展历史 电脑的学名叫计算机,电脑是用来做计算的.在古时候,人们最早使用的计算工具可能是手指,英文单词“digit”既有“数字”的意思,又有“手指“的意思.古人用石头打猎,所以还有可能是石头来辅 ...

  8. Hadoop发展历史简介

    简介 本篇文章主要介绍了Hadoop系统的发展历史以及商业化现状, 科普文. 如果你喜欢本博客,请点此查看本博客所有文章:http://www.cnblogs.com/xuanku/p/index.h ...

  9. Objective-C发展历史

    Objective-C发展历史 苹果图标由来: 被咬了一口苹果的LOGO是为了纪念计算机科学的创始人阿兰· 麦席森· 图灵.当年图灵由于身为同性恋者,被强行 "治疗",在被迫注射大 ...

随机推荐

  1. 成都磨子桥技工学校 / 2016届练习区 0003:jubeeeeeat

    0003:jubeeeeeat 总时间限制:  1000ms 内存限制:  256000kB 描述 众所周知,LZF很喜欢打一个叫Jubeat的游戏.这是个音乐游戏,游戏界面是4×4的方阵,会根据音乐 ...

  2. Qt之QDesktopServices

    简述 QDesktopServices类提供的函数用于访问常见的桌面服务. 许多桌面环境都会提供一系列服务,可以通过应用程序来执行常见任务,如:以用户应用程序首选项的方式,打开一个网页. 此类包含为服 ...

  3. 实现图像剪裁 jquery.Jcrop

       配合 jquery.Jcrop 实现上传图片进行剪裁保存功能    <script src="js/jquery.min.js"></script> ...

  4. hadoop-14-进行libtirpc的rpm包安装

    hadoop-14-进行libtirpc的rpm包安装 安装过程中出现了这个问题,进行安装: yum localinstall --nogpgcheck libtirpc-0.2.1-13.el6.x ...

  5. MAVEN自己主动部署到tomcat

    前面几篇文章maven生成的war包都是手动部署到tomcat,显然这样是非常麻烦的.那么这一篇文章就来介绍一个怎样使用maven高速自己主动的部署项目到tomcat容器中. 1.首先我们须要配置to ...

  6. Java 深拷贝和浅拷贝 利用序列化实现深拷贝

    Java 深拷贝和浅拷贝 转自:http://www.cnblogs.com/mengdd/archive/2013/02/20/2917971.html 深拷贝(deep clone)与浅拷贝(sh ...

  7. sass06 mixin

    scss @mixin cont{ //mixin是关键字 color:red; } body{ @include cont; //使用默认值 } @mixin cont($color: red ){ ...

  8. django笔记10 cookie整理

    感谢武沛齐老师 Alex老师 cookie 没有cookie所有的网站都登录不上 客户端浏览器上的一个文件 {'user':'ljc'} {"user":'zpt'} reques ...

  9. List<List<model>>如何更快捷的取里面的model?

    访问接口返回数据类型为List<List<model>>,现在想将其中的model插入数据库,感觉一点点循环有点傻,0.0...,各位有没有其他的方法? List<Lis ...

  10. PostgreSQL相关总结

    源码安装PostgreSQL总结 简明安装步骤(其中prefix指定PostgreSQL的安装目录,该目录与数据目录pgdata和PostgreSQL的源代码包目录均无关) yum -y instal ...