API的—小步图形工业的一大步管窥Directx 11与通用计算技术

来源 :微型计算机 | 被引量 : 0次 | 上传用户:yuswe
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  从Directx 9到DirectX 10,微软几乎将API打破重来以构建全新的渲染体系,Directx 10也成为了第一种影响硬件设计的图形API——统一渲染架构代替传统的分离渲染,从而赋予GPU更高的渲染效率和可编程能力,也为通用计算提供良好的基础,之后的DirectX10.1就属于功能上的小升级。而到DirectX 11,微软引入了更多的新技术,但同时又保有DirectX 10.1的全部特性,换句话说,DirectX 11实际上就是DirectX 10.1的扩展集,所有DirectX 10.1硬件所遵循的API对于DirectX 11同样适用。
  对用户而言,这样的设计在兼容方面很有好处:无论软件还是硬件,都可以完美地向后兼容。现行的Directx 10游戏,在Directx 11环境下都可以正常运行。而对软件开发者来说,包容的设计使他们能够非常平滑地过渡到DirectX 11,而不需要像DirectX 9到DirectX lO过渡那样突兀和漫长。这样一来,软件厂商可以直接转入DirectX 11技术体系,这对于后续产品开发是非常有利的。不过,DirectX 11不仅只是简单的升级,它带来相当多的新颖特性,比如引入通用计算着色器(Compute Shader),允许GPI以事更多的通用计算工作,而不仅仅是3D运算,这可以鼓励开发人员更好地将GPU作为并行处理器使用。还有就是引入多线程渲染、提高GPU的工作效率t新增的镶嵌技术(tessellation)可以帮助开发人员创建出更为细腻流畅的模型,实现高质量实时渲染和预渲染场景。
  首先我们来看DirectX 10体系的渲染架构,DirectX 10加/LGeometry Shader(几何着色器,简称GS单元)设计’让GPU可以直接处理模板阴影特效(Stencfl Shadows)、动态法向量图(Dynamic cube maps)及位移贴图(Displacement mapping)等操作——过去这些操作是由CPU来完成的。此外,Geometry Shader最高可支持1024个顶点处理,同时可把不必要的顶点数据删除,这两项功能使得绘图运算将较以往更具效率。除了纳入几何着色器外,DirectX 10的渲染流程其实并没有改变,顶点渲染与像素渲染依次进行,只是在硬件层级上,渲染工作不再由独立的顶点着色器、像素着色器进行,而交给通用的统一着色器(或者说统一渲染单元)。
  现在我们接着来看看DirectX 11的渲染管线。最引人注目的变化就是:在顶点渲染之后,DirectX 11新增了外壳着色器(Hull Shade~简称HS)、镶嵌器(Tessellator)和域着色器(Domain Shader)三个新的管线;而在像素渲染环节,DirectX 11则新增了计算着色器(Computer Shade,简称CS),这些新增的部分也就是DirectX 1l的关键所在。
  在DirectX 11中,新增的Compute Shader(Cs)计算着色器拥有核心地位。与DXl0中引入的GSYh何着色器不同的是,CS并不是渲染管线的一部分,它的主要用途在于增强GPU的通用计算能力。
  我们知道,现在的GPU能够被应用于某些通用计算工作,譬如在高并行计算应用中,GPU就表现出十倍于CPU的卓越能力。对游戏开发者而言,经常出于某种需要希望GPU能执行通用计算指令,但以往的渲染结构却对GPU制造了诸多障碍——比如说,程序员可以在一个像素着色程序中强行加入通用算法,但却无法随意利用诸如树形结构之类的数据结构,这就给程序员带来很大的麻烦。因为要在像素间共享数据的过程非常繁琐,先绘制三角数据结构、再加入贴图是唯一的解决方案,但这将严重影响GPU的渲染性能。而在DirectX 11和CS着色器的帮助下,未来的游戏开发者将不再受困于此,他们可以直接越过复杂的数据结构、并在这些数据结构中运行更多的通用算法。而这些算法将由CS着色器专门负责,不会给渲染单元带来额外的负担。
  CS代码可以做到高度灵活,它们可以支持随机读写、不规则列阵(而不是简单的流体或者固定大小的2D列阵)、多重输出,并可根据程序员的需要直接调用单线程或多线程应用。CS体系中拥有32Kb容量的共享寄存器和线程组管理系统,具备可执行无序Io运算的能力。总之,CS可以带来几乎无限的新型应用,关键在于开发者能够在多大程度发挥它的功效。
  在获得灵活性的同时,CS也会带来一些性能损失。由于单线程任务现在无法以像素为单位,所以这些线程将会丧失几何集合功能。从技术上讲:虽然CS程序依然可以利用纹理取样功能,但是原本的“自动三线LOD计算”将会丧失自动功能,程序员必须指定LOD指令。另外,一些并不重要的普通数据的深度拣选l(depthculling)、抗锯齿(anti-aliasiug)、a混合(aIpha blending)和其它运算不能在一个CS程序中被执行。
  CS可以为开发者带来多种多样的灵活渲染,这项先进技术应该正中游戏开发商们的下怀:它们的兴趣大多是寻求先进技术来增强游戏引擎,比如增强抗锯齿性能或无规则透明度的性能,带来更先进的DeferredSh8ding(延迟着色)技术、后处理效果(post processing effect)等等,CS都可以大放异彩。除T_k述这些特殊的渲染应用,游戏开发者可能还希望让GPU完成诸如IKnnversekinematics,逆运动学)、物理计算、人工智能计算等过去由CPU完成的通用计算,而利用CS在GPU I-执行这些算法时,可以获得非常理想的效率。
  早在XBOX 360平台上,ATI就带来了一项名为“Tessellation(镶嵌化)”的新技术。这项技术的用途就是提升硬件的利用效率、用最低的资源获得最好的渲染效果——简单点说,我们可以将它比作数据传输中的压缩技术。
  Tessellator可以将原始的图形分成很多更小的图形,然后它还可以将这些小图形组合到—起、形成一个新的几何图形,这种几何图形更复杂,当然也更为逼真。打个比亢Tessellator技术可以让某个图形变成立方体,并通过旋转让其从底部看起来像是个球形,而这两者实际上都使用相同的数据,达到节省资源的目的。
  在DirectX 11系统中,Tessellation处理过程包括外壳着色器(Hull Shader,简称HS)、镶嵌器(Tessellator)和域着色器(DomainShader)三个组件,其中HS外壳着色器负责接收琐碎的图形数据和资料,镶嵌器(Tessellator)只负责分块处 理,它根据HS的指令要求生成大批量的、确定数量的点,然后将数据传送给域着色器(Domain Shader),再由它来将这些点转换成3D处理中的顶点,最终就生成了相应的曲线和多边形。
  如果开发者能够娴熟地运用镶嵌化技术,那么就能够极大程度提升游戏性能、或者说在保有当前性能的条件下显著提升画面品质。这一点我们可以从下面的对比中看出来:在采用传统高细节模型渲染时,原始模型需要动用巨量的三角形,数据量十分之大,最终获得354fps的渲染性能。而采用低细节模型和Tessellation技术来生成相同的效果,所需的数据量与前者简直不成比例,渲染性能可达到821.41fps,两者对比非常悬殊。然而,镶嵌化技术也不是万能的:其使用的是一项完全固定的单元,不具备任何可编程能力,这就意味着开发者没有丝毫回旋余地。这一点看起来与图形技术的发展方向背道而驰。微软之所以在DirectX 11中纳入这项技术,很大原因就是因为Tessellation确实具有显著的效果,以至于微软无法拒绝。
  双核处理器早已经成为PC系统的标准配备,三核、四核更是进入主流市场,然而,现在只有为数不多的游戏产品能够对多核平台提供良好的支持,原因在于为多核平台编程十分困难,只有高水准的开发者才能够胜任,但显然并不是所有的游戏公司都有这样的一流好手。因此,直到今天为主,仍有很多数游戏都还只能在单线程下工作,即只能支持CPU的单核运作,其它核心的计算力无法得到充分发掘。
  只要开发者采用DirectX 11作为开发平台,那么代码本身就能直接支持多核平台,DirectX ll在底层接管了多核平台的资源分派问题。DirectX 11预示着多线程游戏真正步人现实,我们才可以说多核心处理器被真正派上了用场。对于一套四核游戏平台,当某个渲染场景中有^像和它的三个镜像,DirectX 11就会启动四个线程进行并行处理,效率显然要比目前单线程处理的方式快上数倍!而更令人兴奋的是:多线程技术不仅适用于DirectX ll平台,它同时也能够让现有的DirectX10硬件受益。比如说基于DirectX 11开发的新款游戏,可以很好支持多线程,而当它在DirectX 10硬件平台上运行时,多核优化的机能依然有效,前提是AMD和NVIDIA必须为各自的DXl0硬件开发出相应的驱动软件才行——就目前看来,这项工作的进展非常顺利。
其他文献
《变形金刚2》电影在中国的票房表现也让人惊叹。继首日票房达到创纪录的3371万人民币后,《变形金刚2》更是成功击沉《泰坦尼克号》,用了19天突破3"4亿元的票房收入,成为国内最为卖座的电影。毫不夸张地说,无论是汽车人还是霸天虎,无论是擎天柱还是威震天,在导演迈克尔贝的电影里都有一个隐藏的变身技——印钞机。  事实上,在《变形金刚2》开拍时就引入了大量夺人眼球的卖点,机器人数量从前作的12个增加到现
【摘要】内容依托式外语教学(CBI)重视对语言内容和语言技能的训练。根据CBI理论,教师对语言材料进行解读,创设语言交际情境,使学生运用语言内容完成交际任务,实现语言内化。所以CBI视角下主题式听说教学提出教师在听说教学中应以教学内容为基础,创设主题语境,帮助学生在主题语境中使用英语,从而实现听与说的融合,帮助学生提高英语的实践应用能力。  【关键词】 CBI;主题式;听说教学  【作者简介】严琦
在TPc大行其道的潮流下,McE也顺势而上成为不少HTPc的标配系统。虽说微软正版wndows。P Mc都有遥篓器附送,但是对于那些喜欢自己DlY McE或是不慎将原装遥控器搞丢了的玩家来说,要想随心所欲地玩McE,就有些困难了。实,没有原装遥控器也不要紧,我们还有很多替代产品可以选择而且成本还很低!    目前,我们在市面上能找到两种“官方”的MCE遥控器,其一是随微软Windows MCE零售
【摘要】小学英语教学已经成为小学教学中非常重要的一门学科。随着新时代的教学教育,人们已经对英语这门课程非常重视。英语口语也是英语教学的基础,在英语中占一定的比重,所以小学英语教师应该关注英语口语的教学,必须创新教学方式,培养学生学习兴趣,在英语教学中增添色彩,使学生更积极自主地学习英语口语。英语教学生活化是学生接触英语的一种新的教学模式,也是学生学习英语的一种新模式。本文针对小学英语口语教学生活化
【Abstract】With the development of modern educational reform and the increasing requirements of improving teaching quality of English in high schools, small-class teaching mode is becoming a more and m
【摘要】大量课外英语阅读是提高英语水平的首要学习途径。本文以三本院校武汉工商学院英语专业2011级学生为调查对象,采用问卷和访谈的方式,分析了目前三本院校英语专业学生的课外阅读情况,探讨了与其他一本院校英语专业学生及非英语专业英语学生的情况异同,有助于三本院校专业英语教师对学生阅读情况的深入了解,提升教师引导学生进行课外阅读的有效性。  【关键词】英语课外阅读 三本院校 英语专业  一、引言  大
【摘要】教育是培养人的社会活动,以人为本是社会主义教育的基本价值取向。教材是重要的课程资源,是促进学生全面和谐发展的教学依据。以学生为本、以学生发展为本是人教版小学英语教材编写的基本理念,基于人本视角,以学生为切入点分析故事文本的情节、语境、文本再现和人文内涵等特征,可以让学生更好地掌握英语语言基础知识和基本技能,形成良好的文化品格,促使学生初步形成综合语言运用能力,提升综合人文素养。  【关键词
【摘要】在素质教育深入推进的背景下,批判性思维作为一种新世纪学生必须具备的思维能力受到教育界的广泛关注。由于我国高中英语教育受到应试教育的影响,英语阅读教学注重语言知识和技能的培养,批判性思维作为一种重要的素质没有得到足够的重视。针对这一情况,笔者在本文中结合自身教学经验就如何在高中英语阅读教学培养学生批判性思维进行简要分析。  【关键词】高中英语 阅读教学 批判性思维  素质教育的深入贯彻和社会
【Abstrac】With the development of society and globalization, interpretation as a tool also accelerates the process of the intercultural communication. By comparison, the differences between these modes
我是一名教师,是电脑应用和音乐的初级发烧友,只是作为一名教师,经济实力有限,所以在这两方面只能量力而行。我曾于2005年9月购入了一台4999元的联想旭日C510系列(具体型号已经记不清了),用起来相当好,只是今年3月份在办公室里被盗。由于有了使用联想笔记本电脑的经验,所以在网上多方了解后,最后又把目标锁定在了联想旭日C430M-E X,今年4月,这款机型的市场价为3999元,但在一名学生经销商的