您的位置:首页 > 职场人生

为什么DirectX做的游戏,操作感总是不如Windows原生程序?

2011-08-24 13:49 513 查看
感觉DirectX做的程序,类似Button压下/鼠标移动这些操作总是没有Windows程序那种流畅感,为什么?

我也知道DirectX程序一般会用某些UI库来实现UI控件,所以我的问题就是这些UI库为什么不如Windows原生UI那么爽,到底差在哪里?
比如,点击Button,Windows程序我有一种button被按下去了的感觉;DirectX程序就让人觉得那个button很硬,摁不动。
用黄卓宜的话说,就是“按键或鼠标移动时有飘浮感”

理论上,通过directX来调用各种设备和IO接口是会比直接通windows接口要慢一点,毕竟多了一层。但这个延迟应该也不是人类能感觉得出来的了。。。另外windows程序的界面大部分也是通过各种界面函数库来实现的,所以应该也是有延迟的。唯一可以解释楼主说directX游戏不流畅的原因,我想可能是因为游戏要加载各种资源文件,需要硬盘读取,如果资源加载算法不好,可能会在操作的时候产生延迟,影响体验。

玩游戏时的确有过类似的感觉,我想有两个可能的原因:
原生程序具有比DirectX更高的执行优先权。毕竟DirectX是跑在系统上的,系统肯定优先执行自己层面的命令,而更表面层的命令则要经过底层执行,因此显得稍慢。不过我认为这块引起的影响比较小,如果不是在系统运行效率比较差的情况下测试,体感应该不明显。
游戏本身为了达到广泛兼容性的需要。我认为更多时候是游戏故意设计让按钮等UI内容反馈稍慢。因为桌面系统是一个开放平台,每个主机之间的性能肯定会有差异,如果在设计的时候让所有UI命令都以最快速度执行,就会影响游戏在不同电脑上的游戏体验,从而造成游戏表现甚至规则上的差异(电脑快的玩家如果每次少显示几帧的UI,累加起来会有大量的时间差异),因此工程师一般会针对这一点做一些限速,以便让各种平台上的体验达到尽量的统一。

之所以会有DirectX,是因为传统GUI无法满足游戏对于速度的要求。DirectX使得游戏能够直接从硬件中获得信息,所以DirectX要比GUI快得多。
但是一些游戏的界面操作感确实没有普通Windows程序好,
其主要原因是普通windows程序的界面渲染(如按下按钮的动画效果)由微软开发。微软在这上面花费了大量的资源进行优化。而DirectX的界面需要游戏公司自己实现,而界面并不是游戏的关键部分,不少公司就不那么认真对待了。
事实上,从windows vista以后, 微软的GUI界面上也大量的使用DirectX进行渲染(比如窗口的玻璃效果),一样能够得到非常好的体验。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  职场 Windows DirectX
相关文章推荐