3D-Desktop 的 3D 虚拟桌面切换是怎么工作的?
3D-Desktop 是一个运行在 Linux 上的 OpenGL 程序,用来以无缝的 3D 方式切换虚拟桌面。它的做法是:当你激活分页器(pager)时,当前桌面会像向空间深处的一个点缩小,同时露出其他虚拟桌面,让你从中选择要切换到的屏幕。整个过程从工作桌面直接过渡到全屏 3D 环境,没有中断感。它提供多种可视化模式,但需要 OpenGL/Mesa、GLX 和 Imlib2 等依赖,且项目已停止开发多年。
切换过程是怎么发生的
根据项目主页的描述,3D-Desktop 的核心机制可以拆成几个连续的步骤:
- 当前桌面被映射进全屏 3D 环境。程序把正在使用的桌面作为 3D 场景中的一个平面来呈现,而不是替换掉它。
- 激活分页器时,当前桌面缩小。你触发分页器后,当前桌面会向空间中的某个点缩小(zoom out),视觉上像是它退到了远处。
- 其他虚拟桌面随之显露。当前桌面缩小后,原本被它遮住的其他虚拟桌面出现在 3D 空间中,供你挑选。
- 选择另一个屏幕完成切换。你在这些可见的桌面中选定目标,切换过去。
主页特别强调这个过渡是“无缝的”(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 年。