コンピュータグラフィクスの世界とは
コンピュータグラフィクス分野は、我々が(主に視覚的に)体験できる世界を模擬・構成する方法を研究する学問です。
例えば、机の上にリンゴを置き、横にあるデスクライトを点けると、リンゴに光が当たり、机の上にはリンゴの影ができます。光の挙動をシミュレーションできると、どこが明るくなるか、どこに影ができるか、といったことが予測できます。コンピュータの中で光の挙動をシミュレーションするには、机やリンゴ、ライトといった物体形状を表現する数理モデルがまず必要です。形状表現には、三角形をたくさんつなぎ合わせた三角形メッシュがよく用いられます。
次に、物体の材質を記述するための光の反射モデルが必要で、これは、ある方向から光が入ってきたら、別の方向にどれくらいの光が反射していくかを表すモデルです。これらに加えて、光源から放たれた光の分布が分かると、この光が直進していくとどこに当たるかが計算でき、さらにそこでの材質から、どれくらいの光がどの方向に反射していくか、といったことが計算できるわけです。
現実世界には様々な材質からできた様々な形の物体があり、光の挙動はとても複雑です。光源からの光が壁を照らし、その壁がさらに天井を照らすといった間接照明の効果もあります。この効果があるので、天井に付けられた蛍光灯が直接天井を照らすことがなくても、天井は明るいわけです。
コンピュータグラフィクスでは、こうした光学現象の他に、力学現象についても扱います。例えば、硬い物体同士の衝突・跳ね返り、ゴムやバネのような弾性体の変形、水などの流体の流れや、クリームや餅・プラスチックなどのように弾力がありながらも初期状態にもどらない塑性変形をする弾塑性体など、これらの物体が組み合わさった場合の挙動を扱います(例えば最先端のCG技術では、人の頭髪を数十万から数百万本の弾性ロッドとしてモデル化し、髪の毛同士の摩擦や衝突をシミュレーションします)。
高精度かつ高速に行う方法研究もCG研究の醍醐味
こうした光学や力学といった物理現象を扱うには、理学や工学の分野で開発された物理シミュレーションの方法を活用しますが、コンピュータグラフィクスでは、人が視覚的に知覚できるレベルの高精細な表現が必要で、従来の物理シミュレーション手法では計算が非効率的なことがしばしばあります。新しいアルゴリズム・データ構造・数理モデルを開発して、複雑で大規模な計算を、高精度にかつ高速に行う方法を研究することがコンピュータグラフィクス研究の醍醐味の一つです。
上記に述べたものは、形状等を表す数値データを処理して、ディスプレイに出力するための画像やアニメーションを計算するものでしたが、出力先を2Dのディスプレイから、3Dプリンタに置き換えて、実物の製作を扱う研究もなされています。特定の光学現象を実現する物体形状の最適化法や、荷重下でも崩れない物体形状の設計法など、匠の域にせまるモノづくりのためのデザイン手法も、最近ではコンピュータグラフィクス研究の範疇に含まれています。
なお、上記では主に物理ベースの手法を紹介しましたが、アーティスティックな表現法の研究もたくさんなされています。
The Jungle Book
Walt Disney Pictures
2016年公開の映画。ジョン・ファヴロー監督。コンピュータグラフィクスによる写実的な自然や動物の表現、モーションキャプチャを活用した動物のアニメーション・リップシンク。
Computer Graphics Gems JP 2015
山本醍田、鈴木健太郎、小口貴弘、德吉雄介、白鳥貴亮、向井智彦、五十嵐悠紀、岡部誠、森本有紀、上瀧剛、坂東洋介(ボーンデジタル)
コンピュータグラフィクスの最新技術が、実践的なサンプルコード付きでわかりやすくまとめられている。
ACM Transactions on Graphics
コンピュータグラフィクスの最先端技術が発表される学術専門誌。(専門家向け)
コンピュータグラフィクスでは、シミュレーション等のために、数学や物理をふんだんに使います.高校や大学の教養課程では、何のために数学や物理を学ぶのか、わからなくなる瞬間も(多々)あるかもしれませんが、コンピュータグラフィクスについて学んだり、研究を始めたりすると、こんなにも物理や数学が役に立つのか、と驚くことになるでしょう。
でも、いきなり数学や物理の話から入るのは、とっつきにくかったり、難しかったりすることもあるので、まずは最先端のCGでどういうことができているのか、ということを知るために、CGを利用した映画を鑑賞することをお勧めします。映画は見るだけでも楽しいですが、どの部分が実写でどの部分がCGなのか、推理しながら見るのも楽しいものです。
興味がわいてきたら、『CGWORLD』などの雑誌を通じて、制作の裏側や技術紹介を知るとCG分野の広さを知ることができるでしょう。そうした技術を自分でもプログラミングしてみたい、という方は、『Computer Graphics Gems JP 2015』という本を読むと、より詳しく技術紹介がされており、ソースコード付きの例もあるので、より具体的に学ぶことができます。