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. 优秀Swift开源项目推荐

    工具类 SwiftyJSON:GitHub上最为开发者认可的JSON解析类 Safe.ijaimi:源码漏洞分析检测工具,一键完成 Dollar.swift:Swift版Lo-Dash(或unders ...

  2. Automation testing tool comparison - UFT & CodedUITest

    Ease of Use - Recording and Playback Functionality UFT provides 4 models to record a new test. Norma ...

  3. ItemTouchHelper(实现RecyclerView上添加拖动排序与滑动删除的所有事情)

    简单介绍: ItemTouchHelper是一个强大的工具,它处理好了关于在RecyclerView上添加拖动排序与滑动删除的所有事情.它是RecyclerView.ItemDecoration的子类 ...

  4. PostgreSQL+pgpooll+Keepalived双机HA方案

    PostgreSQL+pgpooll+Keepalived双机HA方案 (注:本文档中的所有操作在没有说明的情况下都应该使用postgres用户进行操作,postgres用户没有权限的操作方可采用ro ...

  5. php函数: call_user_func()和call_user_func_array() 使用详解

    call_user_func 该函数允许直接调用自己写的函数,可以直接传入一些参数. 使用方法1:给自己写的函数传入参数,一个特别的调用函数的方法. <?php funciotn test1($ ...

  6. LLDB使用篇(上)

    LLDB是个开源的内置于XCode的具有REPL(read-eval-print-loop)特征的Debugger,其可以安装C++或者Python插件. 本系列针对于已经知道何为debugger,且 ...

  7. Python多版本情况下四种快速进入交互式命令行的操作技巧

    因为工作需求或者学习需要等原因,部分小伙伴的电脑中同时安装了Python2和Python3,相信在Python多版本的切换中常常会遇到Python傻傻分不清楚的情况,今天小编整理了四个操作技巧,以帮助 ...

  8. 【Git 三】生成并添加SSH秘钥

    我们在 Windos 或 Linux 上克隆项目的时候, 如果走的是 http 会让输入 username 和 password,每次都要输入是很麻烦的. 为了省事儿.简单,我们可以选择 ssh 方式 ...

  9. session 存入 memcahce

    <?php header('content-type:text/html;charset=utf-8'); class RedisSessionHandler{ public $ttl; //失 ...

  10. BZOJ4472

    某售货员小T要到若干城镇去推销商品,由于该地区是交通不便的山区,任意两个城镇 之间都只有唯一的可能经过其它城镇的路线. 小T 可以准确地估计出在每个城镇停留的净收 益.这些净收益可能是负数,即推销商品 ...