感觉DirectX做的程序,类似Button压下/鼠标移动这些操作总是没有Windows程序那种流畅感,为什么?
为什么DirectX做的游戏,操作感总是不如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进行渲染(比如窗口的玻璃效果),一样能够得到非常好的体验。
上一篇:LINUX比W7好在哪里?
![](https://ucenter.51cto.com/images/noavatar_middle.gif)
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
为什么乡村旅游项目总是做不好?
为什么乡村旅游项目总是做不好?
产品质量 差异化 市场份额 -
为什么通信就是不如IT?
这些年,通信行业人才转行计算机的趋势越来越明显。尤其是在校的通信专
网络 大数据 编程语言 人工智能 java