小智 18
我正在使用x11vnc远程访问显示器显示的任何内容。x11vnc 与本地 X11 服务器通信,并通过 vnc 将帧缓冲区从服务器复制到客户端。由于本地 X11 服务器使用硬件加速渲染所有内容,因此我通过 VNC 获得硬件加速的 OpenGL,即使具有所有酷炫的桌面效果。这就是我启动 x11vnc 的方式:
x11vnc -rfbauth ~/.vnc/passwd -display :0 -forever -bg -repeat -nowf -o ~/.vnc/x11vnc.log
Run Code Online (Sandbox Code Playgroud)
我认为几乎所有 vnc 查看器都可以使用,但我建议使用 turbovnc 或tigervnc。我首先尝试了 VirtualGL,它运行良好,但不适用于整个桌面,仅适用于单个 OpenGL 应用程序。
甚至可以使用 xrandr 更改显示器/vnc 上的分辨率。例如像这样:
xrandr -q (to see available modes and outputs)
xrandr --output DVI-I-0 --mode "1024x768" (change mode on DVI output)
Run Code Online (Sandbox Code Playgroud)
(如果可用模式不够,可以添加新分辨率,但这不在此处的范围内。)
所以现在我有一个完全 OpenGL 硬件加速和可调整大小的 VNC 会话。
禁用 UltraVNC 使用的特殊 Video Hook 驱动程序,或使用 TightVNC。
由于 UltraVNC 驱动程序用于提高性能,因此它会放弃在视频卡上完成的任何类型的视频处理,例如 OpenGL。
UltraVNC默认安装的视频驱动程序使其无法显示OpenGL图形。请注意,禁用驱动程序将大大降低性能。另请注意,在显示以 OpenGL 渲染的项目时,两端的性能都会受到影响,因为客户端计算机现在有更多的工作要做,并且所需的带宽也更高。不要期望每帧超过 4 秒(不是 4 fps,更像是 0.25 fps)