4K屏终于不“糊” Windows 10高DPI新特性尝鲜
- 来源:微型计算机 smarty:if $article.tag?>
- 关键字:Windows 10,DPI smarty:/if?>
- 发布时间:2017-03-17 15:34
对于采用高分屏的笔记本电脑用户和采用4K以上高分辨率显示器的台式PC用户而言,Windows对高分屏的适配多年没有彻底改观,很多用户甚至因此选用屏幕视觉效果更清晰的苹果Mac电脑(笔者身边就有这样的朋友)。进入2017年,微软正式为Insiders快速用户推送了2017年Windows 10的首个新版本—Build15002,并带来大量改进和新功能。其中与“游戏模式”、VR专门选项等重磅更新一样引人注目的是,Build15002终于对于高分辨率显示器进行了有针对性的显示性能优化,饱受诟病的Windows高分屏显示模糊问题终于有了一个立竿见影的解决办法?
高DPI清晰显示:Mac易、Windows“老大难”早在几年前高分屏Windows 10设备(如Surface Pro、联想YOGA、戴尔XPS、雷蛇Blade)已成为流行趋势,但高DPI缩放导致程序字体和界面在视觉上严重的模糊感。这种情况以传统Win32程序最为明显,毕竟Windows的生态现状注定了其无法像苹果macOS(APPStore)那样对开发者有强大约束力。具体而言,为什么会造成这样的情况呢?
首先,我们知道在屏幕尺寸相同的情况下,分辨率越高、像素密度越大,也就是说像素更多。那么,系统中的文字、图标如果单纯跟随屏幕分辨率而提升分辨率的话,就会出现一个现象:它们变小了。举个例子:在1366×768、1920×1080以及3840×2160(4K)三款不同分辨率的显示器上,打开Windows内置的应用,由于应用的图标分辨率是固定的,所以分辨率越高,它的可视面积就越小。那么,Windows系统是如何解决这种问题的呢?早在Windows 8时代,系统可以支持最大200%的DPI缩放,另外一些应用还支持自定义DPI缩放(如浏览器),能够在一定程度上解决高分辨率屏幕显示元素过小、看起来费劲的问题。但Windows显示缩放容易遇到三个常见问题,文本和UI组件变得模糊、应用程序的尺寸变得不正确(过大或过小)、应用程序大小正确也不模糊但有其它布局上的问题(比如文本或其它UI组件显示不全)。上述问题经常在用户改变了显示比例、或者从一台显示器切换到另一台时发生。模糊的区域不少都出现在NCA(非客户端区域)部分,这部分显示对象被缩放后的锯齿等问题对观感影响巨大。
MacOSX是如何解决高分辨率屏幕的问题呢?与iOS设备相似,苹果采用了像素合并的优化形式,如使用四个像素点来显示一个像素点,另外图标素材的分辨率(有玩家在macOS中提取出过800×800像素的图标文件)也更高,所以看起来更加清晰。另外,不管是系统还是硬件,苹果基本上都是自产自销,所以可以针对特定产品进行更好的优化。但是,Windows是一个更加开放式的系统,需要与各大电脑厂商合作推出硬件,不仅PC厂商、品牌众多,每个厂商又拥有众多定位不同的产品,主流的屏幕分辨率包括1366×768、1600×900、1920×1080、2560×1440、3200×1080等等,微软显然不可能像苹果那样,专门为每种分辨率设置专门的优化或是图标分辨率。另外一个问题,便是生态系统导致的软件问题。与第一个原因类似,软件厂商没办法针对各种Windows笔记本的分辨率配备专门的图标等素材,所以在高分辨率屏幕上,仅仅通过DPI缩放的低分辨率软件,会出现锯齿、模糊等现象。其实,这种情况与移动平台的Android很相似,毕竟硬件的分辨率等级太多,软件厂商需要考虑开发成本。与iOS平台相似,苹果也为Mac配备了Mac App Store,软件应用需要经过严格的审核,苹果也在积极鼓励软件厂商开发retina适配应用,因此虽然物理分辨并不是最高的,但Retina屏幕看上去格外那么清晰。
从开发者到用户:消灭模糊
Windows 10在2016年发布的周年更新中,微软为我们带来了DPI缩放功能的大幅改进。Ask the Core Team开发者平台高级项目经理Peter Felts在一篇博客文章中详细介绍了显示缩放的技术、优化和改进,包括如何处理旧软件的缩放和兼顾UWA性能、以及一些设计样式的调整。在Widnows 10周年更新之前,如果应用程序开发者试图更新他们的桌面应用以迎合显示缩放因素的变动,他将很快发现变更后的NCA无法调整大小,这意味着他们的应用程序会出现显示过小或标题栏过大的问题。在Windows 10周年更新之后,通过全新的“EnableNonClientDpiScaling”API,系统已支持NCA自动缩放。下一步,微软还将使用“混合模式DPI缩放”来打破既有的约束,以便开发者为窗口准备不同的缩放模式。换言之,开发者将能够专注于开发关键部分的UI,而Windows会帮助处理其它状况。其它方面的改进还包括让Office和Windows展示框架(WPF)支持“Enable Non ClientDpScaling”和“Mixe-Mode DPI”。对于开发者而言,NCA—例如标题栏、滚动条、控件等,这些内容依靠系统本身进行调节,一周年更新已经对这些内容进行了优化,开发者无需操心。混合模式DPI缩放—开发者可以告诉系统自己的应用可以动态缩放,或者直接依靠系统进行缩放,只不过没有混合选项。在一周年更新版中,软件可以在混合脚本中工作,应用本身可以控制某些重要窗口缩放,而其他内容可以交给系统处理。Office程序在一周年更新版中在缩放上优化更好,可以适应任何屏幕尺寸和分辨率。Windows显示基础(WPF)—这是一种重要框架,已经被大量桌面应用所采用,在一周年更新中WPF已经成为系统的一部分来支持上述改进。微软在新版Win10中的改进值得肯定,但高DPI缩放问题由来已久,而且情况复杂,不是一劳永逸的问题。所以微软和开发者还得继续努力,争取早日完全解决,让用户能够顺心、舒心地使用软件。
对于一些开发进度十分缓慢乃至停滞的软件,采用高分屏的用户只能忍受NCA显示模糊、锯齿了吗?非也。2017年1月份早早就推出的Build 15002是首个支持高DPI的版本,系统字体更加清晰,同时用户还可以为某个应用程序制定是否启用高DPI选项。具体方法是在应用程序.exe文件上右键打开“属性”选项,在“兼容性”选项卡当中打开“系统(增强)DPI缩放”,然后点击确定。同时,Build 15002当中调整窗口大小时,动画效果会更加的平滑。对于经常在高分辨率和低分辨率显示器之间切换的用户来说,Build 15002对于DPI的优化能够使桌面图标的缩放和呈现效果变的更加智能,包括图标的排列方式、布局以及清晰度都有更加舒服的体验。可以说新版Win10对高DPI提供了更好的支持,升级后的性能检测器(Perfmon)能够为高DPI设备提供更加清晰的显示画质。此外你会发现,在每一个桌面应用的兼容性标签下,也多出了一项“Override high DPI scaling behavior Scaling performnd by:”选项,点击菜单后,用户可以在“System(Enhanced)”、“Application”、“System”三项中来回切换。
4K屏上老程序实测效果
笔者将自己的笔记本电脑系统升级至了比15002更新的Windows 10 Build 15025,并连接至4K显示器。在初始状态下,由于系统采取的是100%显示缩放,因此在3840×2160分辨率下笔者常用的不少程序—比如CPUZ的界面、文字部分都显得十分小,难以看清。于是我像往常一样在显示设置中将文本、界面等项目的缩放调节至了300%,这时CPUZ软件的界面显示变为正常可视大小了,但文字部分有严重的锯齿感。于是笔者关闭了GPUZ,点击右键在其兼容性标签下找到“Override high DPI scalingbehavior Scaling performnd by:”选项切换到“Application”并保存。经过这番操作之后,CPUZ这款没有经过特别适配的Win32程序在高达300%的缩放等级下也能显示出清晰、锐利的效果了,观感上与日常的1080p显示器上的正常状态相比甚至更胜一筹,大家可以根据本文配图感受一下这份变化。
小结
Windows RedStone 2预计将于今年4月发布,有消息表示在1月底微软已经锁定功能,不再添加新功能转而将精力集中到BUG修复和后台性能调整方面。这表明我们前文分析和实测过的高DPI下的各种优化在接下来的正式版Windows 10中应该会得以保留,Windows 10终于有望摆脱在4K屏等高DPI场景下观感不如苹果MACRetina屏的窘境。在“PC寒冬”呼声不断的今天,高端Windows设备若能一个个地解决类似高DPI下显示效果“糊”这种问题,对于捍卫自己“桌面霸主”的地位、促进消费者选购相关产品想必是有帮助的。
文、图/王喜碧