好生猛的“X.1”

  2011年的9月注定是一个不平凡的9月,在这个9月里,微软为我们封上了大量惊艳的甚至是富有开拓性的新作。这其中不仅有极富突破性,甚至打破了wintel联盟的windows8,更有标志着微软正式进军移动领域,同时吹响桌面光栅化革命号角的DirectX 11.1。

  DirectX在过去曾经经历过很多类似的更新,比如引入Pixel Shader1.4的DirectX 8.1;历经前后三次升级,最终成为一代经典并将影响力一直保持到今天的DirectX 9.0C;以及加入诸如光照探针等对后世影响深远的技术,但最终似乎无人问津的DirectX 10.1。


DirectX 9.0C游戏许多都是经典


即便在今天看仍旧很带感的DirectX 9.0C画面效果

  作为DirectX 11的最新子集,同时也是伴随着windows8同时出现的全新图形API,DirectX 11.1究竟给我们带来了哪些激动人心的改进?它又是否能够重现DirectX 9.0C的辉煌呢?下面,就让我们一起来看看DirectX 11.1究竟带来了怎样的改进吧。

产品:GeForce GTX560Ti nVIDIA 显示芯片 

整体构架更新

  ● 整体构架更新

  同以往每个版本的DirectX更新一样,本次DirectX 11.1的更新主要围绕两个方面展开,分别是Debug(除虫,意为除错)和Extended(扩展,包括功能和编译方式的拓展)。本次更新的主要项目如下:


DirectX 11.1更新细节

  •Shader tracing(shader追踪)

  •Direct3D device sharing(D3D设备共享)

  •Check support of new Direct3D 11.1 features and formats(全新D3D特性支持)

  •Create larger constant buffers than a shader can access(允许创建大于shader可访问尺寸的常buffer)

  •Use logical operations in a render target(对渲染目标执行逻辑操作)

  •Force the sample count to create a rasterizer state(为每一个光栅化过程强制样本数)

  •Process video resources with shaders(通过shader处理视频过程)

  •Change subresources with new copy options(通过新的copy选项改进资源体系)

  •Discard resources and resource views(放弃传统的资源管理和资源视图模式)

  •Support a larger number of UAVs(支持大量的UAV[UnorderedAccessViews]操作)

  •Bind a subrange of a constant buffer to a shader(为shader绑定作为子区间的常buffer)

  •Retrieve the subrange of a constant buffer that is bound to a shader(检索每一个绑定常buffer作为子区间的shader的常buffer子区间)

  •Clear all or part of a resource view(清除所有关于资源视图的内容)

  •Map SRVs of dynamic buffers with NO_OVERWRITE(以非overwrite方式为SRVs动态buffer创建地图)

  •Use UAVs at every pipeline stage(在每条渲染管线上使用UAV)


DirectX 11.1更新细节(二)

  大面上来看,这些更新大多数都是针对程序员以及开发者的,像添加各种常buffer或者改进资源体系等等变动可以为编程人员提供更多编程方面的便利,但似乎与最终用户无关。其实每次DirectX的版本更新都是如此,一款面向编程者和开发人员的图形API自然会包含大量针对编程者的细节特性。而我们所要做的,就是从这些细节中发掘出有意义的亮点。

  本次DirectX 11.1更新最大的亮点来自Core Structures部分,包括D3D11 Feature data double的DoublePrecisionFloatShaderOps和D3D11 Feature data arthitecture的TileBasedDeferredRenderer,也就是我们通常所说的DP Shader Ops以及TBDR。

产品:GeForce GTX560Ti nVIDIA 显示芯片 

DP Shader Ops?准备迎接光线追踪吧!

  ● DP Shader Ops?准备迎接光线追踪吧!

  作为DirectX 11.1在桌面部分最引人注目的更新,DP Shader Ops的引入足以引发一场革命,因为它为DP Shader的实用打开了最后一道API端的大门。


DP Shader Ops引入了诸如双精度ADD、mov等诸多指令和操作

  DP shader(Double Precision Float Shader,双精度浮点shader)是微软在DirectX 11中首次引入的shader类型。与传统的常规shader相比,DP shader的最大特点在于在shader处理数据及运算过程中全面引入双精度规则,这让DP shader具备了远高于常规shader的运算精度,配合FMA的应用,DP shader可以称得上桌面应用范围内完全无损的shader类型。


DirectX 11就引入的DP Shader格式

  遗憾的是,DirectX 11中所包含的DP shader部分仅仅是在编程及数据定义规则上进行了扩展,并为引入更多的指令及执行模式。由此可见,要想让DP shader真正走向实用,DP shader Ops的引入是必不可少的。但是,我们为什么非要引入DP shader呢?它对图形效果的处理有哪些好处呢?


光线追踪原理

  在传统的光栅化过程中,全部的浮点shader数据均为单精度,就我们目前的所有应用场合来看,FP32格式的shader数据已经足以保证程序运行精度的需求,DP数据在精度上是多余的。既然单精度FP32精度现在已经够用,引入DP shader的目的何在呢?答案来自一个显赫的名字——光线追踪。光线追踪对图形进步的意义毋庸多言,其精美的效果以及重大意义几乎每天都在被无数人无数次的重复着。按照微软对未来桌面图形处理过程的规划,光线追踪的引入已经迫在眉睫。


通过光线追踪表达的效果

  在光线追踪处理过程中,处理光线交汇的运算部分必须仰仗双精度浮点数据来维持运算过程及结果的正确性。如果使用目前惯用的处理精度,光线在与物体交互作用2次以上之后将会发生不可忽略的数据溢出,如果按照常规处理过程要求的那样让一束光线与物体交互作用最少6~8次,甚至30~50次的话,最终结果必定已经面目全非。由此可见,要保证光线追踪能够实用化并与现阶段的shader体系有机的结合在一起,DP shader的引入是必不可少的。而DirectX 11.1中的DP Shader Ops,正是这一切能够得以实现的基础。

产品:GeForce GTX560Ti nVIDIA 显示芯片 

进军移动的TBDR

  ● 进军移动的TBDR

  与为桌面光栅化发生重大变革打好了基础的DP Shader Ops不同,DirectX 11.1的另一个更新几乎与桌面图形体系完全无关,它就是TileBasedDeferredRenderer。


TileBasedDeferredRenderer更新细节

  Tile-Based Deferred Render是Power VR独特的TBR技术的一种延伸实现手段。TBR/TBDR通过将每一帧画面划分成多个矩形区域,并对区域内的所有像素分别进行Z值检查,在任务进入渲染阶段之前就将被遮挡的不可见像素剔除掉。由于在渲染之前进行Z-culling操作,TBR/TBDR极大地削减了最终被渲染像素的数量,不仅大幅降低了系统对像素的处理压力,更极大的节约了显存带宽及空间的开销。目前广泛采用TBR/TBDR技术的GPU,主要包括Imagination为移动领域提供的SGX Series5系列。


TBDR技术细节

  恩,你猜对了,Tile-Based Deferred Render的前身虽然曾经参与了“上古时代”的桌面图形大战,但现在的TBDR技术已经变成了非常彻底的移动SoC领域的显示技术。它的主要目的,在于通过减少显存带宽需求,让GPU能够以更简单的结构实现更高的性能和更低的功耗。而微软自TBR从桌面市场退出之后,也便坚定地支持目前传统的大数量MC带宽/ROP数量搭配的路线,进而放弃对TBR类功能的支持了。


TBDR技术有助于减轻显存带宽及容量的需求

  现在,通过DirectX 11.1的TileBasedDeferredRenderer重新对TBDR技术进行了支持,图形函数库接口的打开让希望使用TBDR技术的程序员获得了在DirectX环境下即可完成编译程序的机会,这对于平衡性能与功耗之间的关系,进而让程序员在DirectX框架下完成移动设备程序的构造有着重要的意义。

产品:GeForce GTX560Ti nVIDIA 显示芯片 

更新DirectX11.1,微软意欲何为

  ● 更新DirectX11.1,微软意欲何为

  windows8 M3作为开发者预览版,其目的不仅在于为开发者提供一个能够对新操作系统特性进行预览的平台,实际上微软希望通过M3向业界及用户传递的更重要的信息,在于其重整桌面图形业界以及跨平台的未来操作系统及图形API发展趋势。而这种信息的传达,则需要借助DirectX 11.1来进一步强化和实践。


windows8不能没有DirectX 11.1

  传统的光栅化处理过程从出现到今天经历了漫长的历史,它对于整个计算机视觉虚拟现实技术的发展可谓贡献良多。但由于其本身固有的诸多缺陷,比如“本没有光却硬要说这里有光”的欺骗性处理方式,传统光栅化在今天已经成了严重制约显示技术进步以及特效表达的障碍。作为桌面图形界得领导者,微软自然首当其冲的感受到了来自技术端的限制以及需求端的压力。寻找改进甚至替代传统光栅化过程的处理方式,已经成了改进目前桌面图形应用领域停滞不前现状的唯一出路。因此对拥有很大优势的光线追踪技术的追求,也便顺理成章的成了微软面前最好的选择。既然要改革图形处理过程,将光线追踪引入甚至是纳入到光栅化处理过程当中来,为这个过程逐步打下基础并创造条件显然是必要的。通过DirectX 11/11.1出现并逐步完善的DP Shader,其目的便在于此。


光线追踪实现的完美绝伦的真实视觉效果

  而对于跨平台来说,微软的决心则更加坚定。windows8 M3的发布向世人表达了微软继续称霸X86桌面操作系统的决心之外,更向所有人传达了一个明确的信号:微软将以前所未有的决心开始大举进军移动领域。伴随着移动领域极为旺盛的需求增长,微软将注意力转向该领域是理所当然的。然而移动领域不像桌面,这并不是一个微软熟悉并且说了算的地方,这里的天空依旧是属于Open GL ES的,缺乏说话的地位和分量显然是微软极为头疼的问题。如果微软想要快速介入,TBDR这一Imagination在移动领域广为使用的技术显然会是一个很好的突破口。只要将程序员成功地吸引到DirectX的旗下,攻陷移动领域,或者起码能够在该领域获得充分的话语权,进而影响该领域的发展就是迟早的事情了。因此,可以说在本次DirectX 11.1的所有更新中,最引人瞩目的就是TBDR的引入。DirectX 11.1不仅有助于帮助微软进一步在移动领域推广windows8,更能让微软进一步扩大自己的领地和影响力。


移动领域至今仍是OpenGL ES的天下

  综上所述,DirectX 11.1不仅具有着诸多先进的特性,更肩负着之前几乎所有图形API都不曾承担过的重要使命——它将成为人类历史上第一个统一的能够跨平台实现多重影响力,并改变整个图形编程界发展进程的API。仅凭这一条,就足以让DirectX 11.1名留史册了。相信无论成功与否,DirectX 11.1都将为我们留下深刻的印象。至于它能不能复制甚至超越DirectX 9.0C的辉煌,这个问题就交给时间来裁定吧。

微软究竟意欲何为 DirectX 11.1特性解析相关推荐

  1. 力推美团企业版 美团究竟意欲何为?

    已经拥有930万活跃商家的美团公司,正在充分整合自身的"供应链"优势,冲向B端市场. 3月31日,据36氪消息显示,美团将于近期正式上线面向To B市场的业务"美团企业版 ...

  2. 引领真实游戏世界 ——DirectX 11五大技术解析

    谁都不会想到还没有捂热的Di r e c t X 10会如此快地被Di r e c t X 11所取代,而且这一次并不是简单的AP I更迭,游戏业界对D i r e c t X 11的热情超乎寻常.从 ...

  3. 《深入理解C++11:C++ 11新特性解析与应用》——导读

    前 言 为什么要写这本书 相比其他语言的频繁更新,C++语言标准已经有十多年没有真正更新过了.而上一次标准制定,正是面向对象概念开始盛行的时候.较之基于过程的编程语言,基于面向对象.泛型编程等概念的C ...

  4. 另类交易所再次让人跌破眼镜,放权项目方星客究竟意欲何为?

    摘要:春苗计划启动之后新生项目将迎来前所未有的机遇 进入十一月之后,数字货币行业的景象可谓是悲喜两重天,前一天还沉浸在巨大的利好消息中,后一天就又被突如其来的负面消息狠狠打脸.圈子里面上上下下高涨的热 ...

  5. 免除个人提供征信报告!卡尔数科究竟意欲何为?

    来源:金融界百家号 众所周知,汽车融资租赁业务深受当下消费者的热捧,融资租赁方式也为更多的消费者带了切实的便利.而办理汽车金融相关业务的前提是:提供个人征信报告,这是业内公认的一张"通行证& ...

  6. 《深入理解C++11:C++ 11新特性解析与应用》——1.3 C++11特性的分类

    1.3 C++11特性的分类 从设计目标上说,能够让各个特性协同工作是设计C++11/0x中最为关键的部分.委员会总希望通过特性协作取得整体大于个体的效果,但这也是语言设计过程中最困难的一点.因此相比 ...

  7. 《深入理解C++11:C++ 11新特性解析与应用》——2.4 宏__cplusplus

    2.4 宏__cplusplus 类别:部分人 在C与C++混合编写的代码中,我们常常会在头文件里看到如下的声明: #ifdef __cplusplus extern "C" { ...

  8. 《深入理解C++11:C++ 11新特性解析与应用》——3.2 委派构造函数

    3.2 委派构造函数 类别:类作者 与继承构造函数类似的,委派构造函数也是C++11中对C++的构造函数的一项改进,其目的也是为了减少程序员书写构造函数的时间.通过委派其他构造函数,多构造函数的类编写 ...

  9. “双重主要上市”潮流来袭,中通快递“赶时髦”意欲何为?

    "双重主要上市"的风今年悄然在资本市场刮起. 7月26日,阿里巴巴申请将香港新增为主要上市地,7月27日,雷军的金山云递交了港股双重主要上市申请,据不完全统计,已有贝壳.小鹏.理想 ...

最新文章

  1. Python模拟赌博实验,赌博为什么能赌到倾家荡产?
  2. java 执行 cmd 命令(转)
  3. Ubuntu18.04将软件(Eclipse)固定在侧边收藏夹
  4. LeetCode 3. 无重复字符的最长子串(Longest Substring Without Repeating Characters)
  5. node-vue前后端分离记录
  6. Github用户注册流程
  7. [css] 使用纯css来创建一个滑块
  8. 2018 终了,是时候秀出我的 Git 进化日志了!
  9. HTTP 权威指南 第二章 URL 与资源
  10. Java中一个逐渐被遗忘的强大功能,强到你难以置信!
  11. covariance matrix r语言_R语言 第2章 数据对象与数据读写(3)
  12. 组播负载分担、静态组播路由和MBGP技术原理
  13. 龙之谷linux一键端1网段手机可玩,龙之谷手游一键端怎么用
  14. java oop 题目_JavaOOP试题JavaOOP试题.doc
  15. Kafka 发送消息 Idempotent
  16. 浏览器兼容问题及解决方法
  17. 网络编程(2) - 网络通信方式-TCP
  18. windows用运行命令启动程序
  19. 无线便携式脑电-smarting pro
  20. 胡适:赠与今年毕业的大学生

热门文章

  1. 捡苹果(背包+贪心)
  2. 案例研究:设计与方法_案例研究:未来主义与新时代数字艺术作品
  3. Framework 添加新的 系统服务
  4. 服务器raid卡位置,初识服务器RAID 卡
  5. 人眼视觉特性(HVS)
  6. SaveFileDialog设置默认文件名
  7. www.packtpub.com电子书网站
  8. Bentley助力减少大型铁路工地物料运输,显著减少碳排放
  9. 2023大数据面试真题(持续更新)
  10. python实现tui_python 写个简单TUI日记本