《DirectX编程技术学习指南》.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《DirectX编程技术学习指南》.doc

DirectX编程技术学习指南 绪论 在如今的计算机世界,所承载的已经不仅仅是字符,现在两大显卡厂商的每一次吵架都引领着新的图形时代的变迁,计算机图形学已经越来越亲近于我们。 21世纪以后,3D绘图程序设计已经能让程序员轻松调用显卡来进行各种各样的操作,这都归咎于前任留下的强大的图形技术,现在你将看到的是一款微软的魔鬼杰作----DirectX图形库。 简介 DirectX,(Direct eXtension,简称DX)是创建的多媒体编程接口。由C++编程语言实现,遵循COM。被广泛使用于Microsoft Windows、Microsoft Xbox和Microsoft Xbox 360电子游戏开发,并且只能支持这些平台。必威体育精装版版本,创建在必威体育精装版的Windows 7上。顶点着色器也可以通过顶点进行光照,着色等等,但是限于网格的三角形面片的限制,着色和光照效果并不好。 (顶点着色器的光照有很严重的网格感,很不真实) (像素着色器通过像素值计算,可以呈现很棒的光照) 像素着色器,就是来解决这个问题的关键,像素着色器,可以不考虑网格的精细度,通过所占的像素值来计算颜色精度,所以,用像素着色器计算颜色值会非常棒。 GeometryShader(几何着色器)是DX10的最重要的新增功能之一,在绘图流程中被分配到了顶点着色器之后,像素着色器之前,它的功能是用来组合基本的点线面几何图形,没有GeometryShader的年代,几何图形数量和组合方法都通过参数来决定,调用D3D9的DrawPrimitive 和DrawIndexPrimtive时候,所传入的参数就决定了几何图形的种类,数量和排列方法,D3D10可以通过GeometryShader(几何着色器)自行重新排列顶点,甚至改变几何图形的数量。 DX11又新增了两种着色器,准确的来说是三种着色器,分别是: 外壳着色器(Hull Shader),域着色器(Domain Shader)以及(Compute Shader)计算着色器。 但是Hull Shader和Domain Shader是绑定的,所以合作一个,主要用于的是细分镶嵌,这是一种非常强大的网格细分技术,可以把很粗糙的网格变得非常精细。Hull Shader(外壳着色器)用来控制自动生成顶点的数量和算法,也就是Tessellator的细分级别,然后交给Tesselator进行镶嵌处理,最后由Domain Shader(域着色器)按照程序要求生成所需曲面,并自动进行法线平移、置换贴图,产生新的模型。 计算着色器(Compute Shader)是一种类似于CPU中线程的着色器,其主要目的是让GPU完全能够胜任CPU的大部分工作,包括数据存储,线程管理等等,可以让GPU编程更加的清晰。而且有了计算着色器可以让原本需要花费很复杂算法而且也要考虑运行效率的LOD技术,得到大规模的使用(Levels of Detail,意为多细节层次,LOD技术指根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。) 优势与弱势 1、从技术本身考虑 弱势:DirectX并不是工业标准,也就是他有局限性,他是微软的标准,也就是说,他只能在Windows相关平台上进行开发,比如Windows操作系统,XBox360,WindwosPhone上。他与OpenGL不同,OpenGL是工业标准,也就是说OpenGL只要是在有图形显示的硬件上都支持的图形库。也就是说,从使用的广泛度和兼容性来说,DirectX略差于OpengL 优势:相对于OpenGL的兼容性,DirectX出色的高效性和库整洁性是完全胜于OpenGL的,OpenGL毕竟是一群组织在开发,库的规范还有整洁性都逊于DX,而且,DX的版本更新很快,其必威体育精装版技术基本已经把OpenGL甩在了后面。 2、从我们学习角度考虑 弱势:DirectX并不是易于上手的技术,因为他要设计很多线性代数,高数等数学知识,如果你从DX9开始学,一开始繁琐的API和绘制条件设置绝对能让一个新手晕头转向,但是如果你从DX10开始学,那么恭喜你,你学的线性代数马上就有用的了,至于够不够用那得看你的理解能力。总体来说,这是一门不好上手的技术。 优势:如果一个人学OpenGL入门,一个人学DX入门,两个人学习能力相似,一般是学OpenGL的人要快一些入门,但是到了后期,学DX的同学会在很多图形渲染方面都略强于学OpenGL的同学,因为到了后期,OpenGL的代码库会越来越乱,DX的还是和以前一样严谨。所以,学到后期,学习DX的同学会更加的顺手。不过两者都有共同的缺点,越到高层资料越少,而且这种技术是不太能有视频教学的。 学习例程 10个人学同一种技术或许也会出现10

文档评论(0)

ucut + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档