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. Linux socket 编程中存在的五个隐患

    前言:         Socket API 是网络应用程序开发中实际应用的标准 API.尽管该 API 简单,但是   开发新手可能会经历一些常见的问题.本文识别一些最常见的隐患并向您显示如何避免它 ...

  2. 一些 <link> 标记分享

    <link rel="alternate" media="handheld" href="#" /> <link rel= ...

  3. Java基础学习(一) -- Java环境搭建、数据类型、分支循环等控制结构、简单一维数组详解

    一:java概述: 1982年,SUN公司诞生于美国斯坦福大学校园,并于1986年上市,在NASDAQ(纳斯达克:是全美证券商协会自动报价系统)的标识为SUNW,2007年改为JAVA. 2009年4 ...

  4. svn回到某个历史版本的做法

    作者:朱金灿 来源:http://blog.csdn.net/clever101 一.在选中的文件上弹出svn的右键菜单,单击"Updateto revision"菜单项,如下图: ...

  5. 关于vsphere的 许可证配置问题

    exsi未获得许可情况: exsi的许可证: vcenter server 未获许可: vcenter server的许可证: 写在最后: 无所不能的中国人,百度一下  许可证 就什么多有了,佩服,佩 ...

  6. 将毫秒时间转换为yyyy-MM-dd HH:mm:ss格式

    /** * 将毫秒时间转换为yyyy-MM-dd HH:mm:ss格式 */ public static String getDateFromTimeMillis(Long timeMillis) { ...

  7. JDOJ 2939: Suffix Automaton 广义后缀自动机_统计子串

    建立广义后缀自动机,对每个节点都建立各自的 $Parent$ 数组. 这样方便统计,不会出现统计错误. 考虑新加入一个字符. 1 这条转移边已经存在,显然对答案没有贡献. 2 这条转移边不存在,贡献即 ...

  8. NodeJS学习笔记 (32)安全加密-tls

    https://github.com/chyingp/nodejs-learning-guide

  9. [NOIP2014普及组]子矩阵

    题目:洛谷P2258.Vijos P1914.codevs 3904. 题目大意:给你一个矩阵,要你找一个r行c列的子矩阵,求最小分值(子矩阵和分值的定义见原题). 解题思路:n和m比较小,考虑暴力. ...

  10. websocket调试工具

    http://www.blue-zero.com/WebSocket/ wss://yy.xxx.com/video/websocket/client.ws