directinput手柄力反馈编程(dinput与xinput区别)

一、DirectX是什么

DirectX并不是一个单纯的图形API,它是由微软公司开发的用途广泛的API,它包含有Direct Graphics(Direct 3D+Direct Draw)、Direct Input、Direct Play、Direct Sound、Direct Show、Direct Setup、Direct Media Objects等多个组件,它提供了一整套的多媒体接口方案。只是其在3D图形方面的优秀表现,让它的其它方面显得暗淡无光。DirectX开发之初是为了弥补Windows 3.1系统对图形、声音处理能力的不足,而今已发展成为对整个多媒体系统的各个方面都有决定性影响的接口。

DirectX 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的设计架构雏形就已基本完成。

DirectX 3.0

DirectX 3.0的推出是在1997年后一个版本的Windows95发布后不久,此时3D游戏开始深入人心,DirectX也逐渐得到软硬件厂商的认可。97年时应用程序接口标准共有三个,分别是专业的OpenGL接口,微软的DirectX D接口和3DFX公司的Glide接口。而那时的3DFX公司是为强大的显卡制造商,它的Glide接口自然也受到广泛的应用,但随着3DFX公司的没落,Voodoo显卡的衰败,Glide接口才逐渐消失了。

DirectX 3.0是DirectX 2.0的简单升级版,它对DirectX 2.0的改动并不多。包括对DirectSound(针对3D声音功能)和DirectPlay(针对游戏/网络)的一些修改和升级。DirectX 3.0集成了较简单的3D效果,还不是很成熟。

DirectX 5.0

微软公司并没有推出DirectX 4.0,而是直接推出了DirectX 5.0。此版本对Direct3D做出了很大的改动,加入了雾化效果、Alpha混合等3D特效,使3D游戏中的空间感和真实感得以增强,还加入了S3的纹理压缩技术。

同时,DirectX 5.0在其它各组件方面也有加强,在声卡、游戏控制器方面均做了改进,支持了更多的设备。因此,DirectX发展到DirectX 5.0才真正走向了成熟。此时的DirectX性能完全不逊色于其它3D API,而且大有后来居上之势。

DirectX 6.0

DirectX 6.0推出时,其大的竞争对手之一Glide,已逐步走向了没落,而DirectX则得到了大多数厂商的认可。DirectX 6.0中加入了双线性过滤、三线性过滤等优化3D图像质量的技术,游戏中的3D技术逐渐走入成熟阶段。

DirectX 7.0

DirectX 7.0大的特色就是支持T&L,中文名称是“坐标转换和光源”。3D游戏中的任何一个物体都有一个坐标,当此物体运动时,它的坐标发生变化,这指的就是坐标转换;3D游戏中除了场景+物体还需要灯光,没有灯光就没有3D物体的表现,无论是实时3D游戏还是3D影像渲染,加上灯光的3D渲染是消耗资源的。虽然OpenGL中已有相关技术,但此前从未在民用级硬件中出现。

在T&L问世之前,位置转换和灯光都需要CPU来计算,CPU速度越快,游戏表现越流畅。使用了T&L功能后,这两种效果的计算用显示卡的GPU来计算,这样就可以把CPU从繁忙的劳动中解脱出来。换句话说,拥有T&L显示卡,使用DirectX 7.0,即使没有高速的CPU,同样能流畅的跑3D游戏。

DirectX 8.0

DirectX 8.0的推出引发了一场显卡革命,它首次引入了“像素渲染”概念,同时具备像素渲染引擎(Pixel Shader)与顶点渲染引擎(Vertex Shader),反映在特效上就是动态光影效果。同硬件T&L仅仅实现的固定光影转换相比,VS和PS单元的灵活性更大,它使GPU真正成为了可编程的处理器。这意味着程序员可通过它们实现3D场景构建的难度大大降低。通过VS和PS的渲染,可以很容易的宁造出真实的水面动态波纹光影效果。此时DirectX的权威地位终于建成。

DirectX 9.0

2002年底,微软发布DirectX9.0。DirectX 9中PS单元的渲染精度已达到浮点精度,传统的硬件T&L单元也被取消。全新的VertexShader(顶点着色引擎)编程将比以前复杂得多,新的VertexShader标准增加了流程控制,更多的常量,每个程序的着色指令增加到了1024条。

PS 2.0具备完全可编程的架构,能对纹理效果即时演算、动态纹理贴图,还不占用显存,理论上对材质贴图的分辨率的精度提高无限多;另外PS1.4只能支持28个硬件指令,同时*作6个材质,而PS2.0却可以支持160个硬件指令,同时*作16个材质数量,新的高精度浮点数据规格可以使用多重纹理贴图,可*作的指令数可以任意长,电影级别的显示效果轻而易举的实现。

VS 2.0通过增加Vertex程序的灵活性,显著的提高了老版本(DirectX8)的VS性能,新的控制指令,可以用通用的程序代替以前专用的单独着色程序,效率提高许多倍;增加循环*作指令,减少工作时间,提高处理效率;扩展着色指令个数,从128个提升到256个。

增加对浮点数据的处理功能,以前只能对整数进行处理,这样提高渲染精度,使终处理的色彩格式达到电影级别。突破了以前限制PC图形图象质量在数学上的精度障碍,它的每条渲染流水线都升级为128位浮点颜色,让游戏程序设计师们更容易更轻松的创造出更漂亮的效果,让程序员编程更容易。

显卡所支持的DirectX版本已成为评价显卡性能的标准,从显卡支持什么版本的DirectX,用户就可以分辨出显卡的性能高低,从而选择出适合于自己的显卡产品。

二、dinput与xinput区别

这题我会!“dinput”通常表示输入设备,例如键盘、鼠标等。而“xinput”则通常表示X Window系统的输入设备,例如鼠标、键盘等。给大家简单总结了两个词的含义、发音以及用法,先大概的了解一下~

接下来让我们看下“dinput”和“xinput”的其他区别:

一、用法不同

“dinput”通常用于描述一般的输入*作,例如用户输入文本或点击鼠标等。

例如:

The user can provide dinput to the system through a keyboard or mouse.(用户可以通过键盘或鼠标向系统提供输入。)

“xinput”则通常用于描述X Window系统中的特定输入*作,例如鼠标点击或键盘按键等。

例如:

The xinput command can be used to detect and monitor xinput events in the X Window system.(xinput命令可以用于检测和监视X Window系统中的输入**。)

二、兼容性不同

“dinput”是通用的输入术语,可以在各种*作系统和环境中使用。

例如:

The game supports both dinput and xinput controllers on Windows systems.(游戏在Windows系统上支持dinput和xinput控制器。)

“xinput”则通常用于Windows*作系统中的X Input API,在其他*作系统或环境中可能不适用。

例如:

The game only supports xinput on Xbox systems, not on PlayStation systems.(游戏只支持Xbox系统中的xinput,不支持PlayStation系统中的xinput。)

三、设备类型不同

“dinput”可以表示各种类型的输入设备,包括键盘、鼠标、手柄等。

例如:

The system supports a variety of dinput devices, including keyboards, mice, and game controllers.(系统支持各种输入设备,包括键盘、鼠标和游戏控制器。)

“xinput”则通常表示X Input API所支持的设备,如游戏手柄等。

例如:

The xinput command is used to detect and configure xinput devices, such as game controllers.(xinput命令用于检测和配置xinput设备,例如游戏控制器。)

四、使用场景不同

“dinput”通常用于描述一般的输入*作,例如用户在应用程序或游戏中进行输入。

例如:

The user can provide dinput to the system through a keyboard or mouse.(用户可以通过键盘或鼠标向系统提供输入。)

“xinput”则通常用于描述特定的游戏或应用程序中的输入*作,例如在游戏中进行按键或摇杆*作。

例如:

The game console supports both dinput and xinput, allowing players to use either a keyboard or a game controller.(游戏机同时支持dinput和xinput,玩家可以使用键盘或游戏控制器进行游戏。)

总的来说,“dinput”和“xinput”在许多方面上都存在差异。具体使用时需要根据上下文和所需描述的输入*作进行选择。

相关文章

海信电视75英寸好用吗

海信电视75英寸好用吗

很多小伙伴在关注海信电视75英寸怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,为大家推荐一款高性价比的产品,一起来看看吧。...

云腾(YUNTENG)VT-888使用感受分享

云腾(YUNTENG)VT-888使用感受分享

很多小伙伴在关注云腾(YUNTENG)VT-888怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,为大家推荐一款高性价比的产品,一起来看看...

川宇USB3.0高速读卡器多功能二合一tf内存卡sd单反相机读卡器C396使用感受分享

川宇USB3.0高速读卡器多功能二合一tf内存卡sd单反相机读卡器C396使用感受分享

很多小伙伴在关注川宇USB3.0高速读卡器多功能二合一tf内存卡sd单反相机读卡器C396怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,...

小米智能摄像机3质量好不好

小米智能摄像机3质量好不好

很多小伙伴在关注小米智能摄像机3怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,为大家推荐一款高性价比的产品,一起来看看吧。...

AppleWatch价格多少钱

AppleWatch价格多少钱

很多小伙伴在关注AppleWatch怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,为大家推荐一款高性价比的产品,一起来看看吧。...

小值智能摄像头测评分享

小值智能摄像头测评分享

很多小伙伴在关注小值智能摄像头怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,为大家推荐一款高性价比的产品,一起来看看吧。...