『フルスクラッチによるグラフィックスプログラミング入門』
須崎 亮太郎・荻野 友隆・内村 創 (著)
2004年
秀和システム
☆☆☆☆
OSのAPIや既存のライブラリを使わずに一からグラフィックプログラムを書いてみよう!という本。WindowsAPIを鼻歌まじりに使えるプログラミング中上級者向け。サンプルプログラムはC++で記述されている(開発環境としては、C++BuilderとVisual Studio.NET 2003が用いられている)。
数年前に本屋で見かけ、その心意気に惚れて買ってはみたものの、そのまま読まずにいた本。表紙の印象から、理系の大学教科書のようなお堅い本を想像していたが、読んでみると意外とオタク的なプログラミング本だった。
構成としては、画面上にビットマップや図形を描画する方法を考えながらプログラムを開発していく「グラフィックプログラミング」パート(第3・4章)と、HDR画像、レベル補正・ガンマ補正、オプティカルフロー、ハフ変換、直交変換・ウェーブレット変換、等を扱っている「画像解析」パート(第5章)が、本書の中心となっている(おそらく、執筆担当者が違う)。これに、Windowsでのグラフィックプログラミングの基礎(第2章)や、各種画像ファイルを読み書きするライブラリ(第6章)、その他(第7章)の情報が付加されている。
著者らは、主にゲーム開発や2D CGに関わっている、まだ若いプログラマのようだ。「図形の『内側』を塗りつぶす」ために「そもそも『内側』かどうかをどうやって判定するのか!?」とベクトルの内積・外積の話になったり、「色」について語るために視神経の錐体細胞・杆体細胞の話になったり…と、この紙数ならではの遠回りが楽しい。
もともとコンピュータに興味をもったキッカケがコンピュータグラフィックスだったこともあり、Adobeのグラフィックソフトや3D CG・CADソフトを使って綺麗なCGを描きましょう、というのではなく、CGソフトそのものを自作してしまいましょう、というこの本のコンセプトにたまらなく惹かれてしまった。ちょっとした工夫でプログラムの高速化を実現したり、曲線を滑らかに表示するために様々なアイデアを絞り出していく様には大いに勇気づけられた。また、2次元画像の直交変換やウェーブレット変換の原理が腰が抜けるほど簡単なことにも驚いた。
本書には余計な情報がたっぷり詰まっている(何と、使いもしないのにミニ「アセンブラ入門」の節まであるのだ!)。「車輪の再発明」も厭わず、というスピリットに共感できる人なら面白く読めるだろうと思う。
本文540ページ程度。

0