3Dゲームプログラミングをしているといずれ手に出すことになるシェーディング。そのシェーディングを基礎から学べる「HLSLシェーダーの魔導書」を購入してみた。
どんな本?
名前の通り3Dゲームのグラフィック表現に欠かせないシェーダーについて基礎からしっかりと学ぶことができる本。2021年6月に発売と割と最近に出た本。お値段は5000円ほど(Kindle版だともう少し安い)。
この本では以下の内容をサンプルコードを通じて学ぶ事ができる(本当はもっとありますが書ききれないので一部を抜粋)。
- 絵がどのように表示されるまでの流れ(レンダリングパイプライン)
- 頂点シェーダー、ピクセルシェーダー
- ライティング(光)
- テクスチャ(法線マップ、スペキュラマップなど)
- 物理ベースレンダリング
- 2D描画
- ポストエフェクト(ブラー、ブルームなど)
- シャドウイング(影)
- コンピュートシェーダー
- レイトレーシングの基礎
シェーダーに関する情報を扱っているサイトや本は多くあれどどれも断片的だったりするため、独学で基礎からしっかり学べるという意味ではこの本は実に貴重。「もっと早く出版されていればよかったのに…」という声多数。
サンプルコードはVisual Studio2019とC++の環境で動かすことが前提となっているため他の環境(Unityなど)では実行できない。が、読むだけでも価値は十分にある。ECサイトのレビューなどを見るとUnity使いの人も愛用していることが多い。
シェーディングでつまづいているなら買うべき
これからグラフィック関連の基礎を学びたい人はもちろんゲーム制作・映像制作問わずシェーディングでつまづいている人は購入しておくべき。
先人達が残していったシェーディングのコードを元にいじってるけどいまいち内容がわかってない、どこか抜けててつまづいている人には特に刺さる内容だと思う。
ブログ主の場合、DXライブラリ置き場にあるサンプルコードを元にシェーディングに挑戦したことがあるが最低限の処理の流れしか書いてなくて理解に苦しんだ。何も知らずに飛び込んだのだから当然ではあるのだが、シェーダーの基礎から網羅的に学べるサイトというのが見つからなかったためなかなか先に進まなかった。内積で光の強さを計算するとかはまあわかるんだけど、シェーダー全体の流れはふわっとしたままだったしセマンティクス(TEXCORD0とかのあれ)やregisterの意味が結局わからず…
そんな時にこの本を見つけて買ったのだが自分がつまづいていた部分全てが説明されていて一気に視界が開けた。欲しかった情報が全部載っている。ネットであれやこれやと検索してた日々一体なんだったのか…。
2024年8月現在、この本の代替えになるものは存在しないといっても過言ではないのであれこれネットで検索する前に買ってしまうのが一番早い。
注意点
この本の注意点だがまずタイトルにあるHLSL(言語の1つ)そのものについて学ぶ本ではないこと。あくまでもシェーディングの基礎がメインでHLSLの文法は各自で自習していく形になる。
2つ目はトゥーンレンダリングについては学べないこと(画像で数枚紹介してる程度)。原神みたいなシェーディングを目指してる人は自分で情報収集する必要がある。まあこの本を読んでいればアルゴリズムで難しいところはないはず。
最後はこの本はある程度プログラミングをしている人向けの本なのでプログラミング初心者がいきなり手を出すと火傷しがち。数学の知識(ベクトルや行列)も必要なので
コメント