シェーダすごい!

シェーダに初めて触れました。
配属されたものの、まだ特に仕事を与えられていません。とりあえずPCをいじってみたらDirectXSDKがインストールされていたので、サンプルを適当に見てみました。Tutorialを一通りいじってからOpenGLに逃げた人間なので、一応どんなことをやっているのかはわかります。DXUTがGLUTっぽくてよさげかと思いきや、GLUTに比べると細かいことができそうな分いろいろとめんどうでがっかり。
BasicHLSLというサンプルでシェーダを使っているとのことで実行してみたのですが、モデルのスケーリング以外特別なことをやっていないように見えます。なぜシェーダなのだろうと思いながらfxファイルを見てみたら……ライティングの計算を自分でやっているのかっ!! ライトの情報と頂点法線を元に、頂点ごとの色をfxファイル内で求めていました。単純な計算です。単純な計算ですが、まさかこれを自分でやれてしまうとは。。。
シェーダという存在自体は知っていましたが、知っているようで実は今日まで何もわかっていなかったのだなとわかってしまいました。なるほど、こういうことに使えるのですね。HLSLもかなりCライクで難しくありません。……熱い!熱すぎる! ものすごく簡単にこんなことができてしまうとは、シェーダはなんと熱い奴なんでしょう!
そんなわけで、帰りに本屋に寄ってさっそく参考になりそうな本を買ってきました。

DirectX 9 シェーダプログラミングブック

DirectX 9 シェーダプログラミングブック

このような日本語の本が2年半も前に発売されていることを考えると、僕は相当時代遅れな人間なのですね。なぜ今までシェーダに手を出そうと思わなかったのだろう。そう思いながら家でDirectXSDKをインストールし、サンプルを動かした時、その理由を思い出しました。……僕のPCでは頂点シェーダでさえサポートされていないんだった...org HELなので動作もカクカクです(涙
新しいPCを買うまでは、本を読んで妄想を膨らませておきたいと思います。明日も会社で自由にいじれたらいいなぁ。