左顾右盼
很是活动颈椎。
Emacs 23 的 org-mode 自动折行
当发现 Emacs 23 在 org-mode 中的文本无法自动折行时,试试在 .emacs 中添加:
(add-hook 'org-mode-hook
(lambda () (setq truncate-lines nil)))
用 qhull 计算三维点集的凸包
在计算几何领域,qhull 是个很强大的程序,它可以计算 2 维、3 维,以及4 维以上维度点集的凸包、Delaunay 网格、Voronoi 图,并且 Matlab 和 Octave 都基于它来提供计算几何功能,Mathematica 使用它实现 Delaunay 网格构造。不过,也正是因为它过于强大,所以我在它的源代码中逡巡了好久,也没有看懂。现在我能做到的,就是找个梯子先爬上这个黑箱子。
GtkGLExt 有了新的维护者
早先,我一直造抱怨 GtkGLExt 项目的半死不活,也不被 GTK+ 开发组接受,见拙文:"GTK+中的 OpenGL"。
现在 GtkGLExt 的主页已经更新了,看上去非常的 http://gtk.org!这昭示着这个项目将会持久地运作下去。我原本打算,如果今年它依然半死不活,就研究一下,接过来。现在,看来是没这个必要了。
GtkGLExt was originally written by Naofumi Yasufuku (安福尚文). It is currently maintained by Stéphane Brunet, Ralf Corsépius, and Braden McDaniel.
原始作者,应该是位日本同学。现在的维护人员有三位,估计对付这个包是绰绰有余啊。很好。
给 GtkGLExt 打上支持 OpenGL 多重采样的补丁
至于为什么打这个补丁,可阅读 http://wiki.gnashdev.org/Anti-aliasing.
打补丁的具体过程如下:
- 从 http://sourceforge.net/project/showfiles.php?group_id=54333 下载 GtkGLExt 的源码包;
- 从 http://sourceforge.net/tracker/?atid=473436&group_id=54333&func=browse 获取 "1968044 Multisample (aka FSAA) patch" 补丁文件 gtkglext-multisample.patch;
- 执行 "tar jxvf gtkglext-1.2.0.tar.bz2" 命令解开 GtkGLExt 源码包,得到 gtkglext-1.2.0 源文件目录;
- 将 gtkglext-multisample.patch 文件复制到 gtkglext-1.2.0 目录;
- 在终端中进入 gtkglext-1.2.0 目录,执行 "patch -p1 < gtkglext-multisample.patch" 命令;
- 编译安装 gtkglext 即可获得多重采样支持。
在 Gentoo 中,可以通过修改 gtkglext-1.2.0.ebuild 文件,利用 epatch 为源码包打补丁。我修改过的 ebuild 点此下载,使用时需要开启 gtkglext 的 "fsaa" USE 标识。
下图展示了一个 gtkglext 程序在未使用多重采样与使用多重采样的对比效果。
另外,即使 gtkglext 不具备多重采样支持,也是可以通过打开显卡三维硬件加速驱动的默认反走样支持来改善图形渲染质量的,譬如,下图所示的 Nvidia 的反走样设置,只是这种方式会作用于所有的三维 OpenGL 程序,即便有的程序为了追求运行效率不希望开启反走样支持。
X Window 的 OpenGL 扩展 —— GLX
本文对这段时间在查询 GLX 的资料的过程中所遇到的一些概念进行比较粗浅地总结,并制作了一个简单的程序示例。
对 GtkGLExt 的粗浅认识
GtkGLExt 项目主页上对 GtkGLExt 给出的简介如下:“GtkGLExt 是面向 GTK+ 2.0 或其更新版本的 OpenGL 扩展,最初由 Naofumi Yasufuku 所写,它提供了额外的 GDK 对象,用于实现 GTK+ 对 OpenGL 渲染的支持;另外提供了相关的 GtkWidget API,可用于实现兼容 OpenGL 的 GTK+ widget。”
GTK+ 中的 OpenGL
在 Gtk+ 窗口中调用 OpenGL 库进行三维图形渲染的资料少而又少,遍索 Google,非但也没有找到一份像样点的文档,反而让我不断感慨 GTK+ 对 OpenGL 支持的孱弱。