在Linux下游戏开发过程中,遇到了画面撕裂(tearing)的问题,一般来说,垂直同步应该是可以解决掉画面撕裂的问题,但是在多屏显示的情况下,即使开启了垂直同步,依然不能解决撕裂问题。
多屏显示是指将2个或者两个以上的屏幕显示游戏界面,比如说,游戏设置为1400×1800的分辨率,分别显示在1400×900的双屏上,这样就会有画面撕裂问题。测试环境为OS Ubuntu(15.10),双显示屏,Nvidia 显卡,Unity3d 5.2
经过了大量的分析调查,这个应该是linux系统本身的问题,其在双屏显示中,如果全屏显示的话,就会关闭垂直同步,其workaround的解决方法参考
http://steamcommunity.com/app/234650/discussions/0/540744935351966611/
大致的步骤如下:
- 安装Openbox 和Compton
- 创建文件~/.config/openbox/autostart, 放入下列内容
# Start up Compton for compositing
compton -b --backend glx --vsync opengl-swc
# Start Steam
steam
- 然后重启,用Openbox作为桌面,启动游戏。。