(この記事でいう「CG技術」とは「CG制作ソフトの使い方・ノウハウ」ではなく、「CG理論・プログラミング技術」を指します)
こないだ、ある人から、「ゲーム作りとかに興味があって、CG技術を効率的に学んでいきたいんですけど、どう手を付けたらいいですかね」と聞かれました。
「他にやることもあるんで、できるだけ無駄なくいきたいんですけど」と。
学問に王道なしとはいうけれど、たしかに社会人で勉強となると、できるだけ無駄なく効率的にやりたい、という要件は切実だと思います。
なので、私なりの考えを助言してみました。
それは
「ライフサイクルの長い知識を最優先に学べ」
ということ。
たとえば、「基本的なレンダリング理論」と「あるメーカーのGPUで特に高速に実装できるグローバルイルミネーション実装法」、
どちらが学んだ内容が、末永く使い続けられるかというと、これはもちろん前者ですね。
後者なんて、現在のZバッファベースリアルタイムレンダリングの枷に縛られた状態で、いかにGIを近似実装できるか、という特殊な話で、
一時的にゲーム業界で需要はあるけれども、いずれまた新しい実装法が出てきたり、そもそも必要なくなったりして、近いうちに必ず陳腐化する知識です。
しかし、「レンダリング理論(レンダリング方程式)」は違います。これを学んでおけば、今後全てのレンダリング技術の修得・実装に役立ちます。
というか、ゲーム業界におけるGIの技術だって、結局はレンダリング方程式を元にしているのです。
レンダリング理論を学んでおけば、現在のZバッファベースのリアルタイムレンダリングでも、今後主流がソフトウェアレンダリングに移っても、対応していけるはずです。
お勧め書籍は倉地さんの「CG MAGIC」
他には、やはり線形代数などの数学。現在のゲームCGでも普通に必要ですが、できればゲームCGで使う以上の知識もちゃんと入れておきたい。
あとは……必要に応じて、
・GPUのリアルタイムレンダリングパイプラインの仕組み
なんだかんだ言って、このレンダリングパイプラインはあと5~10年は使われ続けるでしょう。ただ、このやり方がCGの全てだとは思わないこと。
・OpenGLまたはDirectXの初歩
プログラムして実際に動かせないと実感沸かないはずなので、やはり必要です。
OpenGLについては床井先生のページ・本オススメ。
GLUTによる「手抜き」OpenGL入門
床井研究室
・リアルタイムレンダリングにおける影生成
(これも現在のGPUの制約から始まった技術なので、あまり深追いせずドノーマルなシャドウマップ法を学ぶくらいでいいのでは)
・(やりたいんだったら)キャラクタなどのスキンメッシュアニメーション
レンダリング技術に比べ、こちらは比較的進歩がゆっくりなので安心して学べます。
お勧め書籍「MESH GURU」
こんなところでしょうか。
全般的に勉強したい人は「ビジュアルコンピューティング」もお勧めです。
と、もはやCG研究者とも呼べぬ半端者がえらそーに意見してしまったが、はたしてあの人に対してまともな助言になったのだろうか(汗)