GPU-directX的发展历史
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的发展历史的更多相关文章
- Web开发技术发展历史
Web开发技术发展历史 来自:天码营 原文:http://www.tianmaying.com/tutorial/web-history Web的诞生 提到Web,不得不提一个词就是"互 ...
- CentOS以及Oracle数据库发展历史及各版本新功能介绍, 便于构造环境时有个对应关系
CentOS版本历史 版本 CentOS版本号有两个部分,一个主要版本和一个次要版本,主要和次要版本号分别对应于RHEL的主要版本与更新包,CentOS采取从RHEL的源代码包来构建.例如CentOS ...
- .net版本发展历史
最近装上了VS2013,发现好多新特性.新功能,公司办公还在使用VS2005.VS2008,不过用着也很顺手,在最新版Visual Studio中,微软加入了git源码管理工具,和之前的TFS大体上类 ...
- 软件项目发展历史<人月神话>这本书好
几乎是计算机软件开发的发展历史 人月神话,增加人手并不一定能提高开发速度. 原因在于,有些任务是无法分解的,存在先后顺序.无法同步进行. 增加人手,增加的是沟通成本,相互牵制.可以分解的任务就 ...
- [No00002A]26个英语字母的原始象形意义、含义、产生及发展历史
我们都知道汉字是象形文字,但如果说英语也是象形文字,你一定会以为纯是无稽之谈.其实,追根溯源,英语的26个字母确实来自于象形文字.这26个字母最初起源于埃及象形文字,后由腓尼基人改进发明了腓尼基字母, ...
- FPGA技术的发展历史和动向
本文关键字:fpga技术,fpga发展, fpga培训,FPGA应用开发入门与典型实例 一.FPGA技术的发展历史 纵观数字集成电路的发展历史,经历了从电子管.晶体管.小规模集成电路到大规模以及超大规 ...
- python 学习之电脑的发展历史
电脑的发展历史 电脑的学名叫计算机,电脑是用来做计算的.在古时候,人们最早使用的计算工具可能是手指,英文单词“digit”既有“数字”的意思,又有“手指“的意思.古人用石头打猎,所以还有可能是石头来辅 ...
- Hadoop发展历史简介
简介 本篇文章主要介绍了Hadoop系统的发展历史以及商业化现状, 科普文. 如果你喜欢本博客,请点此查看本博客所有文章:http://www.cnblogs.com/xuanku/p/index.h ...
- Objective-C发展历史
Objective-C发展历史 苹果图标由来: 被咬了一口苹果的LOGO是为了纪念计算机科学的创始人阿兰· 麦席森· 图灵.当年图灵由于身为同性恋者,被强行 "治疗",在被迫注射大 ...
随机推荐
- 优秀Swift开源项目推荐
工具类 SwiftyJSON:GitHub上最为开发者认可的JSON解析类 Safe.ijaimi:源码漏洞分析检测工具,一键完成 Dollar.swift:Swift版Lo-Dash(或unders ...
- Automation testing tool comparison - UFT & CodedUITest
Ease of Use - Recording and Playback Functionality UFT provides 4 models to record a new test. Norma ...
- ItemTouchHelper(实现RecyclerView上添加拖动排序与滑动删除的所有事情)
简单介绍: ItemTouchHelper是一个强大的工具,它处理好了关于在RecyclerView上添加拖动排序与滑动删除的所有事情.它是RecyclerView.ItemDecoration的子类 ...
- PostgreSQL+pgpooll+Keepalived双机HA方案
PostgreSQL+pgpooll+Keepalived双机HA方案 (注:本文档中的所有操作在没有说明的情况下都应该使用postgres用户进行操作,postgres用户没有权限的操作方可采用ro ...
- php函数: call_user_func()和call_user_func_array() 使用详解
call_user_func 该函数允许直接调用自己写的函数,可以直接传入一些参数. 使用方法1:给自己写的函数传入参数,一个特别的调用函数的方法. <?php funciotn test1($ ...
- LLDB使用篇(上)
LLDB是个开源的内置于XCode的具有REPL(read-eval-print-loop)特征的Debugger,其可以安装C++或者Python插件. 本系列针对于已经知道何为debugger,且 ...
- Python多版本情况下四种快速进入交互式命令行的操作技巧
因为工作需求或者学习需要等原因,部分小伙伴的电脑中同时安装了Python2和Python3,相信在Python多版本的切换中常常会遇到Python傻傻分不清楚的情况,今天小编整理了四个操作技巧,以帮助 ...
- 【Git 三】生成并添加SSH秘钥
我们在 Windos 或 Linux 上克隆项目的时候, 如果走的是 http 会让输入 username 和 password,每次都要输入是很麻烦的. 为了省事儿.简单,我们可以选择 ssh 方式 ...
- session 存入 memcahce
<?php header('content-type:text/html;charset=utf-8'); class RedisSessionHandler{ public $ttl; //失 ...
- BZOJ4472
某售货员小T要到若干城镇去推销商品,由于该地区是交通不便的山区,任意两个城镇 之间都只有唯一的可能经过其它城镇的路线. 小T 可以准确地估计出在每个城镇停留的净收 益.这些净收益可能是负数,即推销商品 ...