Unity Shaders and Effects Cookbook | Packt Publishing
まだ何が書いてあるのかをざっと確認した程度で読み込んではいないが、(少なくとも私にとっては)とても良い本だったので紹介。
Unityのシェーダーを書いてみたいけどリファレンスを見てもいまひとつピンと来ていない人や、UnityのShaderを書いてはいるんだけど理解が足りずUnityのリファレンスとの行ったり来たりが多い人には、とても買いな本だと思う*1。
Unityシェーダーのリファレンス*2の冒頭にも書かれている通り、Unityのシェーダーの記述には大きく分けて3種類の方法がある
Shaders in Unity can be written in one of three different ways:
http://docs.unity3d.com/Documentation/Components/SL-Reference.html
- as surface shaders,
- as vertex and fragment shaders and
- as fixed function shaders.
この本は、基本的には surface shaders の本。fixed function shaders への言及はほぼ無い*3。
vertex shader は Chapter 5: The Lit Sphere lighting model の項や Chapter 7: Vertex Magic などで登場。fragment shader は surface shader のライティング計算が楽ちんになる恩恵がむしろ邪魔になる Chapter 10,11 の Screen Effect を扱うところまで出てこない。surface シェーダーがよくわからないから頂点シェーダーとフラグメントシェーダー書けばいいや、と思っている人も、この本を読めばUnityでシェーダーを書く手間がだいぶ省けるかも?
UnityのShader初級者でも、本の先頭から読み進めていれば、その都度初登場の機能には解説がある安心の構成。もちろん、普通のCookbookのように、実装したものが載っていそうなページだけ読むのも良い。
surface shader って(呼び出しコストが)お高いんでしょう? と思っている人も Chapter 8: Mobile Shader Adjustment を読めばもう安心?
Shader 以外の Unity のスクリプトは C# で書かれている。Chapter 2 で、new Texture() した TextureをShaderに使っていたり、Chapter 4でCubeMap用のカメラを生成する ScriptableWizard を継承したclassのコードがあったりする。
他、Unity のスクリプトも使われている主な部分を目次から抜粋するとこんな感じか?*4
- Chapter 4: Reflecting Your World
- Creating a simple dynamic Cubemap system
- Chapter 6: Transparency
- GUI and transparency
- Chapter 10: Screen Effects with Unity Render Textures
- Chapter 11: Gameplay and Screen Effects
これを書いている時点だと 1英ポンド=150円前後ぐらいのようなので、2300〜2600円ぐらいってところかな? AmazonでKindle版が買えたりもするが、packtpub.com にアカウント作って買ったほうが、epub / pdf / Kindle / PacktLib*5に対応していたり、サンプルコードが同サイトからダウンロードできたりで便利なのではないかと。
個人的には、Unityのリファレンスだけだと混乱していた部分や理解できていない部分が多かったのだが、混乱していた部分がこの本を読んでほぼ解消されたのではないかと思う。中学生以下の英語力しか無い私ですら買ってよかったと思えているので、英語の本だからと敬遠する必要もあまりないんじゃないかと思うのだがどうか*6。
この本を流し読みした後に、UnityのShaderのリファレンスを見なおしていたら、情報が散らばっている事とか、読ませる順番を改善すれば、私のようなへたれプログラマでももっと理解しやすくなるんじゃないかと感じた。私がこんな順番で読みたいUnityのShaderリファレンスのリンクとか作りたいな……*7