Microsoft も Apple も…
学生さんの手持ちのパソコンが OS に Vista を搭載したものに移行しつつあるので、研究室のパソコンの OS もそろそろ Vista への移行を考えないといけないなあと思っているのですが、ほとんどのパソコンはメモリが 512MB しかなく、ビデオカードも古いので、Vista を満足に動かせそうにありません。メモリの増設やビデオカードの交換ということも考えたのですが、CPU 自体古いものが多いので、効果があるかどうかわかりません。Microsoft からは Vista が XP よりいかに優れているかということを訴えるダイレクトメールがくるのですが、その最後には「Vista の性能を活かすには新しいパソコンを買いましょう」みたいなことが平気で書いてあります (-_-#)。そんな余裕があるわけないので、学生さんには当分 XP で我慢してもらうしかないかなぁ。
一方、自宅では Mac を使っているのですが、CPU は未だ PowerPC です。これもリプレースしたいのですが、今の Mac の CPU は Intel なので、手持ちの PowerPC 用ソフトウェアは Rosetta で動かさざるを得ません。これだと数値計算が中心の CG ソフトなんかはちょっと使い物にならないと思います。小遣いを貯めてソフトウェアも Universal 版にアップグレードすればいいのですが、中には Canvas のように Universal 版に移行せずに Mac 版の開発をやめてしまったものもあります。Canvas は Version 3.5 の時代(16年前か!)から使っている私の手に馴染んだソフトウェアなので、これが使えなくなるのはつらいものがあります。私も当分この PowerPC Mac mini を使い続けるしかないのかなぁ。
点を丸くしたい
書き忘れたと思っていたことの二つ目です。GL_POINT で描く点の大きさを glPointSize() で指定すると、点の形が正方形になってしまいます。

Point Sprite を使ってみるでは、点に丸くくり抜くためのアルファチャンネルを付けたテクスチャを貼り付けて、アルファテストを使って丸くしていましたが、テクスチャを使わない場合は点にアンチエリアシングを設定するだけで丸い点を描くことができます。
/* 点にアンチエリアシング処理を行う */
glEnable(GL_POINT_SMOOTH);
これで点は次のような形になります。

本当にアンチエリアシングを有効にする(点の周囲のぎざぎざを取る)には、アルファブレンディングも有効にする必要があります。
/* アンチエリアシング処理の品質を最高にする */
glHint(GL_POINT_SMOOTH_HINT, GL_NICEST);
/* アルファブレンディングを有効にする */
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_BLEND);
ただし、点同士が重なっている場合、点を奥から順番に描かなければ、このアンチエリアシングは正しい結果が得られません(重なっている部分で境界線が見え隠れします)。
