3D-Desktop 的 3D 虚拟桌面切换是怎么工作的?

3D-Desktop 是一个运行在 Linux 上的 OpenGL 程序,用来以无缝的 3D 方式切换虚拟桌面。它的做法是:当你激活分页器(pager)时,当前桌面会像向空间深处的一个点缩小,同时露出其他虚拟桌面,让你从中选择要切换到的屏幕。整个过程从工作桌面直接过渡到全屏 3D 环境,没有中断感。它提供多种可视化模式,但需要 OpenGL/Mesa、GLX 和 Imlib2 等依赖,且项目已停止开发多年。

切换过程是怎么发生的

根据项目主页的描述,3D-Desktop 的核心机制可以拆成几个连续的步骤:

  1. 当前桌面被映射进全屏 3D 环境。程序把正在使用的桌面作为 3D 场景中的一个平面来呈现,而不是替换掉它。
  2. 激活分页器时,当前桌面缩小。你触发分页器后,当前桌面会向空间中的某个点缩小(zoom out),视觉上像是它退到了远处。
  3. 其他虚拟桌面随之显露。当前桌面缩小后,原本被它遮住的其他虚拟桌面出现在 3D 空间中,供你挑选。
  4. 选择另一个屏幕完成切换。你在这些可见的桌面中选定目标,切换过去。

主页特别强调这个过渡是“无缝的”(seamless)——从工作桌面进入 3D 视图之间没有明显的跳变。它同时说明,要真正理解效果,最好的办法是实际运行体验。

有哪些可视化模式

主页提到 3D-Desktop 提供“几种不同的可视化模式”(Several different visualization modes are available),但没有在给出的资料中列出具体是哪几种。因此这里只能确认“存在多种模式”这一事实,具体模式名称和差异需要查阅项目自带的 README 或实际运行后查看。

运行或编译需要什么

主页给出的依赖要求如下:

依赖 用途
OpenGL/Mesa 3D 渲染基础,强烈建议使用硬件加速
GLX OpenGL 与 X 窗口系统的接口
Imlib2 图像处理库
XFree86-devel 编译时需要,用于 XF86VidMode 扩展
Imlib2-devel 编译时需要

需要注意的几点:

  • 硬件加速被“强烈建议”。没有硬件加速时能否运行、效果如何,资料未说明。
  • 编译需要 -devel 包。主页明确指出编译源码需要 XFree86-devel 和 Imlib2-devel。
  • Imlib2 的获取途径:主页给出了 imlib2 的 rpm、SourceForge 站点和 rpmfind 三个来源。

这个项目现在还能用吗

主页的 News 部分明确写道:3d-desktop 已经有一段时间没有开发了(has not been in development for some time)。项目方转而推荐 Compiz——一个合成窗口管理器,主页称它能以“更加动态、健壮,而且更酷”的方式提供 3D 桌面。

因此,如果你的目标是获得 3D 桌面体验,而不是专门研究 3D-Desktop 这个历史项目,Compiz 是项目方自己给出的替代方向。若你仍想使用 3D-Desktop,需要自行评估它在当前系统上的兼容性——资料中没有给出它支持的发行版或内核版本范围。

从哪里获取更多信息

主页列出了这些入口:Screenshots(截图)、Download(下载)、FAQ、Video(视频)、Setup(安装配置)、Mailing List(邮件列表)、Feedback(反馈)。其中 README 和 Changelog 被特别提及,适合用来了解具体模式、配置方式和版本变化。项目由 Brad Wasson 编写和维护,版权标注为 2002–2004 年。