×

directx 3d c rec

directx 3d(Directx 3D的发展历史)

admin admin 发表于2023-09-26 06:57:52 浏览34 评论0

抢沙发发表评论

本文目录

Directx 3D的发展历史

OpenGL是近几年发展起来的一个性能卓越的三维图形标准,它是在SGI等多家世界闻名的计算机公司的倡导下,以SGI的GL三维图形库为基础制定的一个通用共享的开放式三维图形标准。目前,包括Microsoft、SGI、IBM、DEC、SUN、HP等大公司都采用了OpenGL做为三维图形标准,许多软件厂商也纷纷以OpenGL为基础开发出自己的产品,其中比较著名的产品包括动画制作软件Soft Image和3D Studio MAX、仿真软件Open Inventor、VR软件World Tool Kit、CAM软件ProEngineer、GIS软ARC/INFO等等。Direct3D (D3D):是微软为提高3D 游戏在Windows中的显示性能而开发的显示程序,目前已经升级到10.0版本,它提供了丰富的3D功能库,是游戏广泛采用的标准。

Directx 3D的介绍

DirectX 3DDirectX是一种应用程序的接口(API),它可让以windows为平台的游戏或多媒体程序获得更高的执行效率,加强3d图形和声音的效果,并提供设计人员一个共同的硬件驱动标准,让游戏开发者不必为每一品牌的硬件来写不同的驱动程序,也降低用户安装及设置硬件的复杂度。这样说是不是有点不太明白,其实从字面意义上说,Direct就是直接的意思,而后边的X则代表了很多的意思,从这一点上我们就可以看出DirectX的出现就是为了为众多软件提供直接服务的。

Directx3D安装方法

1.使用安装DirectX随意卸2.01(一定要使用注册版,可以在本版附件中下载)(1)在本站下载安装该软件,并且注册以使用将要用到的功能(2)启动软件后选择“备份/回滚”(3)选择“备份WindowsXP原始的directx8.1”中间需要插入winxp安装光盘。安装过程中出现系统文件保护对话框,不用理会。(4)重启以后,提示建议在安全模式下,再次执行卸载操作,以彻底清除未能删除的系统文件,不用理会,取消就行。(5)再次运行DirectX随意卸2.01选择“备份/回滚”中的红色的第一项:为windowsxpsp2安装DX9.0c,点击“浏览”指向硬盘中已经解压好的directx9c安装文件目录,就可以正常安装directx9c了。(6)再次重启系统,安装运行需要directx9c支持的游戏与软件(sim2与极品飞车),呵,一切ok。2.有网友指出,在还原到directx8.1后,把directx9.0c所有文件,全部解压到directx9.0b的安装目录下,再执行安装directx9b,也可以安装成diectx9.0c。3.如果你是正版xp,上网更新方便的话,可以通updata自动更新到最新版的sp2,其中自动集成到directx9c.4.还有人说到可以通过修改注册表的方法解决该问题,记得电脑报上曾经有过技术文章与之类似,希望知道方法的同志指教一下哈。5.由于DirectX9.0c的安装包里有两个程序(dsetup32.dll和dsetup.dll)负责在每次安装前检测系统的DX版本,如果与自己的版本相同或更高就不继续安装,但不知为何它安装的时候无法正确检测WinXP的DX版本,所以才出现了的安装完成的画面。而我们也就将计就计地骗了XP一下,将DirectX9.0c中的这两个文件替换为9.0b的,这样安装程序就能正常检测安装了

Directx 3D的DirectX进化之路

在directx诞生之初,业界已经有众多标准,其中有两个重要的标准:OpenGL和Glide,特别是前者,它被用于图形、影像服务器,制作电影、科教片等等,随着技术逐渐成熟,越来越普及,如当时大名鼎鼎的Quake 3游戏就是基于这个标准的。而当时的DirectX,很多硬件、主流游戏都不支持它,没有游戏、没有硬件,即使再有好的标准也是没有意义的,DirectX的魅力一直没有的到表现。但是它有微软的支持推广,它就有希望。 那么DirectX的发展,都经历了哪些版本呢?DirectX是目前民用市场的主流APIDirectX 1.0:第一代的DirectX很不成功,推出时众多的硬件均不支持,当时基本都采用专业图形API-OpenGL,缺乏硬件的支持成了其流行的最大障碍。DirectX 1.0版本是第一个可以直接对硬件信息进行读取的程序,它提供了更为直接的读取图形硬件的性能(比如:显示卡上的块移动功能)以及基本的声音和输入设备功能(函数),使开发的游戏能实现对二维(2D)图像进行加速。这时候的DirectX不包括现在所有的3D功能,还处于一个初级阶段。DirectX 2.0:DirectX 2.0在二维图形方面做了些改进,增加了一些动态效果,采用了Direct 3D的技术。这样DirectX 2.0与DirectX 1.0有了相当大的不同。在DirectX 2.0中,采用了“平滑模拟和RGB模拟”两种模拟方式对三维(3D)图像进行加速计算的。DirectX 2.0同时也采用了更加友好的用户设置程序并更正了应用程序接口的许多问题。从DirectX 2.0开始,整个DirectX的设计架构雏形就已基本完成。Quake 2DirectX 3.0:DirectX 3.0的推出是在1997年最后一个版本的Windows95发布后不久,此时3D游戏开始深入人心,DirectX也逐渐得到软硬件厂商的认可,97年时应用程序接口标准共有三个,分别是专业的OpenGL接口,微软的DirectX D接口和3dfx公司的Glide接口。而那时的3dfx公司是最为强大的显卡制造商,它的Glide接口自然也受到最广泛的应用,但随着3dfx公司被NVIDIA的收购、Voodoo显卡的衰败,Glide接口逐渐从人们眼中消失了。古墓丽影 2DirectX 5.0:令人奇怪的是,微软公司并没有如期推出DirectX 4.0,而是直接将DirectX版本升级到了5.0。此版本对Direct3D做出了很大的改动,加入了雾化效果、Alpha混合等3D特效,使3D游戏中的空间感和真实感得以增强,还加入了S3的纹理压缩技术。 同时,DirectX 5.0在其它各组件方面也有加强,在声卡、游戏控制器方面均做了改进,支持了更多的设备。因此,DirectX发展到DirectX 5.0才真正走向了成熟。此时的DirectX性能完全不逊色于其它3D API,而且大有后来居上之势。极品飞车3DirectX 6.0:DirectX 6.0推出时,其最大的竞争对手之一Glide走向了没落,而DirectX则得到了大多数厂商的认可和支持。DirectX 6.0中加入了双线性过滤、三线性过滤等优化3D图像质量的技术,游戏中的3D技术逐渐走入成熟阶段。这个时期具有代表性的产品是NVIDIA Riva TNT2系列。DirectX 7.0:DirectX 7.0最大的特色就是支持T&L,该技术中文名称是“坐标转换和光源”。3D游戏中的任何一个物体都有一个坐标,当此物体运动时,它的坐标发生变化,这指的就是坐标转换。在T&L问世之前,位置转换和灯光都需要CPU来计算,CPU速度越快,游戏表现越流畅。使用了T&L功能后,这两种效果的计算用显示卡的GPU来计算,这样就可以把CPU从繁忙的劳动中解脱出来。换句话说,拥有T&L显示卡,使用DirectX 7.0,即使没有高速的CPU,同样能流畅的跑3D游戏。 这个时代的代表性产品是GeForce 2系列和GeForce4 MX系列。Counter-StrikeDirectX 8.0:DirectX 8.0的推出引发了一场显卡革命,它首次引入了像素渲染引擎(Vertex Shader)与顶点渲染引擎(Pixel Shader)的概念,反映在特效上就是动态光影效果。同硬件T&L仅仅实现的固定光影转换相比,VS和PS单元的灵活性更大,它使GPU真正成为了可编程的处理器。这意味着程序员可通过它们实现3D场景构建的难度大大降低。通过VS和PS的渲染,可以很容易的宁造出真实的水面动态波纹光影效果。此时DirectX的权威地位终于建成,代表产品:GeForce4 Ti系列。极品飞车6DirectX 9.0:2002年底,微软正式发布DirectX9.0,DirectX 9中PS单元的渲染精度已达到浮点精度,传统的硬件T&L单元也被取消。全新的VertexShader(顶点着色引擎)编程将比以前复杂得多,新的VertexShader标准增加了流程控制,更多的常量,每个程序的着色指令增加到了1024条。另外,DX9增加对浮点数据的处理功能,以前只能对整数进行处理,突破了以前限制PC图形图象质量在数学上的精度障碍,它的每条渲染流水线都升级为128位浮点颜色,让游戏程序设计师们更容易更轻松的创造出更漂亮的效果,让程序员编程更容易。那么,即将从幕后走想台前的新一代DirectX 10又将给我们带来什么呢?  ·DirectX 10技术详解上1、统一渲染架构相对于其他方面的技术革新,微软在Shader Model 4.0中引入的统一着色架构才是DX10最大的看点。我们都知道,微软在directx 9中引入的了2.0/2.X/3.0三个版本的Vertex Shader(顶点着色引擎)以及Pixel Shader(像素着色引擎)。其中支持2.0版的着色引擎是DirectX 9的GPU的最低标准,而当前主流的显卡已经都硬件支持加入了拥有更多高级处理功能的3.0版本着色引擎。不过,即便是DirectX9.0c,对于功能相仿的Vertex Shader、Pixel Shader来说,目前图形芯片厂商仍需要在GPU中划分两个区域来存放Vertex Shader阵列和Pixel Shader贴图流水线。这无疑是一种资源冗余,而且这也加重GPU的设计难度及成本。当Direct X10把渲染流程更细分为Vertex Shader、Geometry Shader及Pixel Shader,这个情况将会更为明显。那么,有没有可能把这两者整合在一起呢?答案就是肯定的!统一渲染架构是一项极具创新意义的作法。要知道,在很多时候如果我们处理的一个场景注意是以Pixel Shader计算为主,Vertex Shader计算仅占一小部分的时候,如果采用分离Shader设计的显示核心,就可能存在Vertex Shader计算单元空闲,但Pixel Shader单元过渡计算的现象。同样的也可能存在Pixel Shader数据比较少,但Vertex Shader计算数据过多的问题。这就往往造成了一方面着色单元闲置,另一方着色单元资源紧缺的情况。统一渲染架构能更有效地利用显卡资源比如在《上古卷轴4:湮没》中,7900GTX在1600×1200+HDR的环境下,FPS仅为14~50帧左右。这是因为独立渲染的草丛或者树叶是由庞大数量的多边形构成,对GPU的顶点渲染提出了严酷的要求,相对来说并不需要太多像素操作,如此一来大规模的像素渲染被闲置而顶点模块处于不堪重负状态。而统一渲染架构则可以帮我们解决硬件资源上的限制----你能够不受限制地使用纹理资源,并可以使用任意长度的着色指令,如果能够将闲置的像素单元用来处理顶点,那么游戏速度就不会如此可怜了!此外,统一渲染架构将令GPU的角色由单纯为Game Rendering提升至Game Computing的理念,Unified Shading引擎设计更适合异类运算工作(Heterogeneous Computing),例如Physics运算、影像编码运算等,让显卡的应用范畴大幅提升。2、虚拟显存技术众所周知,在286/386时代,人们为了利用更多的内存,发明了虚拟寻址技术,今天,这项技术被用到显存身上,将如同当年般震撼,彻底地把显存的利用带到了全新的层次。以往,GPU采用直接内存调用法则,无论是纹理、顶点、多边形、光影,都需要占用显存空间,这些数据的运算量越大,占据的空间也越多。为了避免每次都需要重新计算,人们想到了MIP-MAP纹理映射的方法。当时,纹理贴图的尺寸很小、3D场景亦没有这么复杂,MIP-MAP能够显著地减少GPU计算量和显存的占用。然而,随着3D游戏复杂性的增加,仅靠显存已经无法存储这些数据,不得不开发出AGP总线,利用部分内存作为AGP显存,来暂时存储纹理和顶点数据、补充显存容量的不足。但别说以前的AGP 8X,即使是今天带宽更大的PCI Express X16,亦远远不能与显存带宽相比。更为严重的问题是,为了同步处理,GPU会降低显存的工作速度,使之与显卡显存顺利传输,所以一旦动用显存,系统速度会大为下降。从这方面看,在游戏中提升纹理调节的时候,必须注意自己的显存容量,比如你要玩FarCry、战地1942、等游戏,没有256MB显存,就别想把画质设置到最高,否则会大大地影响游戏速度。因此,微软根据虚拟内存管理方法将在DirectX 10中引入虚拟显存技术。它可以很好的解决以上所提到的问题,所有的纹理、着色等都分成“小块”数据即使在低速总线上也能流畅传输。例如,一个4KB大小的页面相当于一个32×32×32bit大小的纹理贴图,这样大小的纹理贴图已经可以满足需要,这样在需要纹理渲染时系统就不需要传输太多页面就可以完成相应的工作,而做到这一切几乎不会损失性能。G80的Video Memory执行示意图而且将虚拟显存技术与着色引擎搭配也是一个很具创新性的想法。在显存中,着色器指令是被当作一个抽象的数据块进行处理的,系统并不理会“数据块”能否装得进GPU的指令流水线,一旦着色器被载入,它就会在每个顶点以及象素上操作、直至卸载。因此要想完成更长的着色器指令就需要增加GPU的指令执行管数或利用自动多路形式将指令划分成若干个可管理的小块。由于GPU的指令执行管数在设计之时就固定好,如果要增加执行管数无疑需要重新设计及增加晶体管数,显然第一种方法并不太实用。因此第二种方法较为实用,而这也与我们所提到的虚拟显存系统实际是一样的。为了适应着色器指令的执行应用,虚拟显存被划分为许多相对独立的页面。假定图形处理单元当中设置的指令执行管道可以执行整个页面所包含的指令,那么我们的着色器操作就可以建立起一套流水线式的运作机制,加载一个页面,然后运行,停止下来之后再加载一个新的页面,然后运行,如此反覆指导全部包含指令的页面被加载到处理器当中,此间,执行管道的作用与处理器的L1 Cache相当类似,而整个运作流程和处理器的可以说是一致的。通过虚拟显存技术,着色指令的长度将可以不受指令执行管数的限制,存储系统可以存放的图象纹理可以更多,寻址的方式变得轻松简单,于是我们的DirectX10技术就实现了可用资源“不受限制”的强大功能。当然了,资源的“不受限制”还是受到硬件实际可用资源的限制。指令太长的话,GPU就需要多次加载指令页面,这样也会造成性能大幅度下降;如果纹理数据太多,需要用到系统内存、甚至是硬盘空间进行存储的话,那么整个图形子系统的性能也会下降。针对这个问题,微软为资源限制定了两个门限:只要不超过第一个限定,系统都能够工作;而超过第二个限定时,系统就不能够正常工作(在640×480分辨率下,fps值不足10)。其实,此前已经有厂商使用了虚拟显存技术,3Dlab的专业级显卡野猫WildCat VP就能调度16GB虚拟显存,16GB哦,在主流显存不过256MB的时代,这是多么振奋人心的事情。很明显当你能完全使用全部16GB时,相信系统瓶颈问题已经不在此了。  ·DirectX 10技术详解中3、整数指令集除了统一渲染架构和虚拟显存,DX10还有不少改进之处,其中最重要的莫过于整数指令集。也许你会觉得奇怪,整数指令集不是所有计算的基础吗?对于CPU而言,这是没错的,但别忘记了,当然为何引入浮点处理器和多媒体指令集,原因是图形运算需要大量的浮点指令。浮点是不精确数据类型,当寻值数据与纹理数据不符合的时候,可以采用近似值和多个数据计算的内插值来代替,对图形最终画面没有影响,此类速度也比整数要快。因此,GPU的基础恰好与CPU相反,是以浮点指令为主的。目前,着色器所处理的所有东西都需要依靠浮点运算所完成(除了静态分支预测试运算之外)。在大多数的图像处理上来说,这种处理方式是没有问题的。但进行动态分支预测或非内插式内存搜索时(比如对顶点缓存器进行定位索引时),这种浮点运算处理方式就存在很大的问题。而DX10中引入整数运算将有许多好处,比如进行动态/静态分支预测、顶点缓存定位、通用内存寻址方面,浮点是无法进行精确计算的。4、直接存取像素着色帧缓存现在的渲染模式,主要是实时渲染,每种渲染工作都是实时完成的,中间无法打断,如果我们想为图像增加数字分级、色彩校正或颜色调节等工作,只能重新进行一次计算,对整体工作造成了延时。事实上,当你读取渲染中图象的纹理数据,大多数的GPU和驱动程序都可以工作。但这属于非法操作(没有经过定义),这样的操作随时可能被中断,而开发人员通常不会使用这项功能。DX9时代的解决方案有二,第一种是使用两个独立的纹理,一个纹理用于正常工作,另一个备用纹理应付那些附加的计算,此方案的最大问题是必须占用两倍显存空间;第二种是在Pixel Shader中通过模拟混合函数的实现以上功能。ATi已经在他们的GPU芯片中加入了类似的做法,他们通过顶点着色引擎来模拟原有的固定顶点处理函数。这样就意味着GPU设计厂商需要在着色引擎上增加额外的晶体管来实现以上的功能。DX10则转向了新思路:使用了像素描影器直接存取帧缓存的方式来部分代替以前的实时渲染,某些情况下,我们可以随时中断渲染,加入我们想要的效果,再继续运算,不对整个渲染过程造成影响,使渲染变得更为灵活和可控。但并不意味着在directx10中进行实时渲染模式就毫无问题,并且厂商可能放弃了对这种技术的支持。那样这项技术很可能以一种备选方案出现,如此一来,程序员可能会忽略这项技术的存在而继续沿用老方法。  ·DirectX 10技术详解下5、增强型图形镶嵌技术在DX8时代,为了提高曲线画面的真实度,显卡厂商增引入了高阶曲面技术,如:nVidia的RT-Patch和ATi的N-Patch。从本质上看,它们把曲线处理带入了一种新纪元,看看现有的真实世界,并不总是以方方正正的多边形存在的,很多地方都由曲面来构建,才使真实的物体种类更为多样,很难想像我们有一个四方头的时候是怎样的恐怖。然而,每次的技术进化总是有一定阻碍,高阶曲面在当时未能完善,甚至导致了画面产生变形。因此不少开发商都这种技术失去了兴趣,而图形芯片厂商最终也放弃对这项技术的硬件支持。直到directx 9引入适应图形镶嵌以及置换贴图技术,这两项技术再次被人们所关注。高阶曲面镶嵌以及置换贴图这两项技术虽然在NVIDIA的GF6/7系列、ATI的X1000系列图形芯片中得到支持,但当前DirectX技术在支持高阶曲面上仍存在一定问题。虽然高阶曲面未能正式流行,而为它的自适应图形镶嵌和置换贴图两项独特的技术却引起了人们的兴趣。自适应图形镶嵌可以按照我们的要求,进行不同的纹理镶嵌,以便取得更佳的视觉效果,将使3D世界进一步拟真化,可是,它们遇到的最大问题,依然是高阶曲面的运算,如何使用最小的运算又不导致画面破损和变形,是DX10极须解决的问题。DX10的硬件将支持各种通用高阶曲面计算:Catmull-Rom曲面、贝赛尔曲线、B-Splines曲线、圆锥曲线,证明高阶曲面回归的时代已经到来,只是要我们去认真地进行优化而己,当然这些也需要图形芯片进行硬件支持。6、Physics(物理加速)技术最近热门的技术就是物理加速及其应用,物理计算是下一代游戏体验当中的关键部分,它将增加游戏的真实感、沉浸感和带来更加有趣的体验。NVIDIA同样对物理加速非常感兴趣,在未来的DX10产品中会加入物理加速的支持。G80已经能从硬件层面支持物理运算虽然,物理加速的概念很早之前就已经提出,但时至今日依然处于概念性阶段——AGEIA的物理加速卡仅有几款游戏能够支持,而ATI的GPU物理加速才刚刚进行完Demo演示,NVIDIA的SLI物理加速也要等待游戏厂商采用Havok FX引擎才能够出台!推广进程如此缓慢因为标准的不统一。AGEIA和Havok两大阵营的物理加速引擎互不兼容、各自为政,这就使得很多游戏仅能支持一种物理引擎,这种情形非常类似于3D时代开荒初期在技术和规范上百花齐放!这一现状有望在DX10推出之后得到改善,有了微软API的支持,无论哪种物理引擎都拥有发挥的空间,相信将会有更多的游戏加入更多的物理运算。未来,DX10 GPU将是更趋向化通用型的处理器,也就是说,原本许多交由CPU进行的3D处理会被转移到GPU上面来,因为强大的GPU比CPU更适合做这些工作,由此游戏性能会大幅提高。微软表示,DX10会开放两个SDK,分别照顾到AGEIA和Havok,其中AGEIA的PPU直接作用于SDK独立进行物理运算,在Havok引擎的调动下NVIDIA的GPU也可以动态的处理物理运算!

DirectX 3D是做什么的

DirectX 3DDirectX是一种应用程序接口(API),它可让以windows为平台的游戏或多媒体程序获得更高的执行效率,加强3d图形和声音效果,并提供设计人员一个共同的硬件驱动标准,让游戏开发者不必为每一品牌的硬件来写不同的驱动程序,也降低用户安装及设置硬件的复杂度。这样说是不是有点不太明白,其实从字面意义上说,Direct就是直接的意思,而后边的X则代表了很多的意思,从这一点上我们就可以看出DirectX的出现就是为了为众多软件提供直接服务的。 举个例子吧,骨灰级玩家(玩游戏比较长的)以前在DOS下玩游戏时,可不像我们现在,安装上就可以玩了,他们往往首先要先设置声卡的品牌和型号,然后还要设置IRQ(中断)、I/O(输入于输出)、DMA(存取模式),如果哪项设置的不对,那么游戏声音就发不出来。这部分的设置不仅让玩家伤透脑筋,而且对游戏开发者来说就更头痛了,因为为了让游戏能够在众多电脑中正确运行,开发者必须在游戏制作之初,便需要把市面上所有声卡硬件数据都收集过来,然后根据不同的 API(应用编程接口)来写不同的驱动程序,这对于游戏制作公司来说,是很难完成的,所以说在当时多媒体游戏很少。微软正是看到了这个问题,为众厂家推出了一个共同的应用程序接口——DirectX,只要这个游戏是依照Directx来开发的,不管你是什么显卡、声卡、统统都能玩,而且还能发挥更佳的效果。当然,前提是你的显卡、声卡的驱动程序也必须支持DirectX才行。

directx3d

1. 如果是做开发, 自然需要初始化dx设备. 如果是程序运行, 则需装上dx的运行时环境即可. 这两个概念要理清楚.2. d3dutility.h是dx8自带的工具集. 从dx9开始, ms使用DXUT代替d3dutility.h (ps.这只是些辅助工具而已, 对学习dx来说,有或无并无大碍)补充.编译书中的例子, 如果它使用到d3dutility的话, 下载对应的声明文件和库文件就可以了.祝你学业有成!

要启用Directx3D.. 得多少以上的显卡

Directx3D是图象加速程序,主要针对的是显示器和显卡的3d功能,对玩大型游戏和专业图象处理的用处很大,你的显卡,可以试一下安装,应该没多大问题,我的是848的板子,照用啊,板子的差异只会影响到3d的一些特殊效果,但总体上板子的影响好象不大,应该试一下,什么都是要自己动手的啊像nVIDIAGeForce6以上级别的显卡或ATI-X1000以上级别的都可以支持DirectX9.0c,但要想流畅的感受DirectX9.0c带来的画面效果,最好选择nVIDIAGeForce6600、GeForce6800、GeForce7300GT以上或ATIX1650以上级别显卡。便宜的显卡有nVIDIAGeForce6200/6600/7100/7300及ATI-X1300/1550/1650Pro