【PConline 杂谈】不知不觉,高分辨率屏幕对于消费者来说,已经是日常随处可见的光景。自从iPhone4推出视网膜屏幕这概念后,手机的分辨率一路狂飙,现在甚至已经出现了量产市售的4K分辨率手机。但和手机相比,屏幕尺寸更大的PC,却在分辨率方面举步维艰。在市面上,使用1080p规格以下屏幕的电脑仍比比皆是,2K以上屏幕的PC仍是凤毛麟角;不但如此,在高分辨率屏幕上,PC系统的显示效果也难以令人满意。
为什么就算是Win10,在高分辨率下某些软件还是会UI模糊?
在手机上,高分辨率屏幕带来的视觉效果是赏心悦目的,但PC却不然。很多朋友都发现,在Windows系统中,一旦分辨率过高,软件UI很容易就出现各种蛋疼的显示情况,例如模糊、UI错位、字体/UI过小等等,就算是最新的Windows10,这些情况也屡见不鲜。但是,这类情况在手机或者同为桌面平台的Mac中,却很少出现。为什么时至今日,4K电视都已经卖到白菜价,Win系统在高分辨率的表现下仍如此糟糕?这究竟是系统的错还是软件的锅?今天就一起来谈谈这个问题吧。
Win系统对高分辨率真的手足无措?
在很多朋友的印象中,Win似乎对高分辨率、高DPI显示并不在行。但是实际上并非如此,Win有着比较完善的高分辨率UI缩放机制。针对高分辨率屏幕,Win系统大致提供了两种方法进行UI缩放。
第一种是比较传统的缩放方法,会加大字号以及拉大UI的框架,Win7及以前的系统多使用这种方法。这方法带来的问题是,一旦UI太过特殊,不按照Win的规范编写,那就很容易出现错位、变形的情况。
Win7以前的系统会使用这种方法缩放DPI匹配高分辨率,但如果软件UI布局不规范会错乱
第二种方法是基于虚拟分辨率的缩放,这个很好理解,就相当于把整个软件的界面从低分辨率拉伸到高分辨率,例如200%的缩放就会把一个像素拉伸到4个像素显示,机理类似位图的拉伸。这种方法主要用于Win8以后的系统,避免了软件界面因为缩放而错乱的问题,但会造成模糊、锯齿。
基于虚拟分辨率的缩放会强制拉伸软件UI,UI不会错乱,但会出现模糊、锯齿
针对不同的DPI设置,Win系统还采取过不同的缩放模式的策略,例如在125%以下的DPI缩放就用第一种方法缩放,以上就使用第二种缩放,所以有的朋友在高分辨率下想要保持软件UI清晰,会把DPI设置为124%。而在最新的Win系统中,微软还引入了混合缩放的模式。例如一个软件它的按钮、标题栏、菜单等元素是符合Win规范的,那就会按照第一种方法缩放,其他部分则会作分辨率拉伸以保证UI的可用性。
新版Win系统中的混合缩放,可以看到软件标题是清晰的,但菜单、按钮、主界面是模糊的
可见,Win在高分辨率、高DPI下提供的缩放方案是比较完备的,这主要是因为Win要考虑到软件的兼容性,让老软件也能工作在高分辨率屏幕中。对于新软件来说,这些缩放方法并不很重要,实际上如果一个软件按照Win的最新规范(例如WPF)编写,那它在高分辨率下显示会比例正确而又清晰——微软自家最新的Office以及一票UWP软件,就是很好的例子。
为什么Win在高分辨率下还是糊了?
·第三方软件不匹配新的开发规范
一般来说,在高分辨率下表现得蛋疼的软件,都是比较老旧的软件。这些软件没有对高分辨率进行优化,必须通过Win的系统方案强行缩放。在Win7之前,这类软件就很容易出现排版错乱的问题,在Win8、Win10中则容易出现模糊的问题。简而言之,这些高分辨率下不完美的显示效果,是由于软件没有对Win的新规范适配而造成的——十年前的软件仍可跑在最新的系统上已经相当了不起了,要求它们也完美显示的确有点强人所难。
因此,Win软件在高分辨率下显示效果差,主要还是软件方面的问题,Win系统自身的高分辨率适配方案并没有人们印象中的那么糟糕。实际上,Android、iOS和macOS的系统缩放方案和Win的也没有本质上的区别,它们也存在虚拟分辨率缩放之类的机制——如果你曾经在iPad上运行过iPhone版App,就会发现一旦App没有对特定分辨率进行优化,那么iOS App的高分辨率下的表现也不过如此。
iPhone应用没对iPad匹配,在iPad运行一样会出现黑边、拉伸,UI问题还是软件的锅比较多
那么为什么高分辨率显示糟糕的问题在手机、Mac电脑中很少见?这主要还是它们不需要兼容海量的老软件。安卓、iOS和macOS系统升级后旧版App死一大片的情况不要太多——这是Win系统这些年万万不敢做的,Vista的教训还历历在目呢。而由于Win强大的向下兼容性,很多新软件也干脆不用新的规范开发,反正都能跑起来,UI漂亮不漂亮关系并不是那么的大,用新规范开发又得花额外的精力。于是,这些软件就在高分辨率下出现了模糊之类的情况,微软对此也无可奈何。
·Win系统本身的一些显示问题
第三方软件的确给高分辨率下的PC带来了很多显示方面的问题,但Windows系统自身的表现也真的无懈可击吗?并非如此。在高分辨率下,就算是最新的Win10 1709,一样会有不完美的显示效果,具体如下。
首先,Win系统自身也并非每个模块都匹配了高DPI。例如计算机管理等界面,可以看到图标在高DPI下显示仍有锯齿,这是万万不应该的。微软都这么不上心,第三方软件不积极匹配高分辨率也情有可原了。
Win10最新版仍不是处处匹配好高分辨率,可以看到图标有锯齿
其次,Win系统的字体特别是中文字体,并不适合在高分辨率、高DPI下显示。很多朋友都发现,Win的雅黑字体在高分辨率屏幕渲染的时候,可能会出现杂色轮廓或者扭曲。这主要是微软在渲染字体的时候,考虑到低分辨率的适配问题,为了让字体在低分辨率下显示也清晰可辨,对字体作了一定程度的变形。这种变形在高分辨率屏幕中,就起到了负面作用。现在低分辨率屏幕越来越少,按照大趋势,微软也是时候来修改字体渲染方案了。
Win的字体渲染侧重于低分辨率的清晰度,高分辨率下效果一般,字形保持不好
再者,Win系统在接入多屏幕的时候,对DPI缩放的处理仍不够好。例如笔记本自身分辨率不高,但同时接入了高分辨率显示器,两个屏幕使用的DPI高低不一。这时候,即使是UWP应用乃至Win系统本身,也会在两个屏幕中交杂使用一些不适配的DPI方案。你会发现,某个UI在两个DPI不同的屏幕中,DPI是一样的,这会让高分辨率屏幕显示这UI特别小,或者低分辨率屏幕显示这UI特别大。
所幸的是,微软正在解决这些显示问题。例如Win10 RS4会使用全新字体,届时高分辨率下的字体表现会大大改善,希望Win能够越来越完善吧。
Win10 RS4使用了新字体(蓝色部分为新,灰色轮廓为旧),不再会出现参差不齐的情况
总结
总的来说,限于兼容和Win系统本身的一些问题,Win在高分辨率下的显示体验的确仍有不如意之处。如果想要更好的显示效果,可以尽量尝试使用整数倍的DPI缩放,例如200%的DPI等等,这可以减轻UI模糊、变形的概率。在这里,也呼吁PC厂商推出更多高分辨率屏幕的产品,彻底淘汰掉1366×768等低分辨率,推动Win系统和软件的高分辨率适配,希望Win系统的显示效果能越来越完美吧!