はじめに

□ 執筆の動機

 私の本来の専門は人工知能である.しかし,私の研究室の卒業研究のテーマとしてインタラクティブWeb3Dを取り上げてかなりの年月が経過した.そのため,大学において3次元コンピュータグラフィックス(3次元CG)の講義を担当することになり,その準備にとりかかった.まず,私は教科書として使用するCG関係の本を50冊近く買い集めたが,私の望むものに巡り会うことはできなかった.私が集めた本を分類すると,講義用テキスト,特定の言語によるグラフィックプログラミングの解説書,特定のCGソフトの解説書,資格試験対策テキスト,ほとんど画像だけの啓蒙書などである.特に講義用テキストの少なさとわかりづらさには驚いた.たとえば,グローシェーディングとフォンシェーディングの違いを明確に示すサンプル画像はどのテキストにも見あたらなかった.また,3次元座標変換がモデリングやレンダリングのどのような局面で使われるのか,その位置づけを明確にした本も少なかった.特に,レンダリング手法やテクスチャマッピング手法などの体系的な分類がなされておらず,観点の異なる手法が羅列されている状況には愕然とした.最先端を走り続けているCGアーティストや研究者は,急速な進歩を続けている3次元CGの教科書を書いている時間的余裕がないようである.これが本書執筆の動機である.

□ 本書のねらい
 本書は演習を含まない半期の講義で使用することを前提に執筆された.講義主体のCG教育で重要なことは,理論的な説明だけにとどまらず,各種の手法やアルゴリズムが実際の画像や計算時間にどのように反映されるのか,その微妙な違いを具体的サンプルで解説することであろう.講義の合間にプロジェクターを使って実際のレンダリング画像やリアルタイムレンダリングの様子を提示すれば,CGの魅力を実感してもらえるし,息抜きにもなる.CGの原理に加え,その美しさと楽しさが伝われば,早く実際に作ってみたいというインセンティブが湧き上がってくる.それこそが本書のねらいである.センスと根気と緻密さが要求されるモデリングやプログラミングはその次のステップである.動機付けられた学生が実際にCGを始めることができるように,必要なフリーのソフトなどの情報を提供することも忘れてはならない.本書の執筆にあたり注意を払ったもう一つの点は,プロジェクターを用いて図を説明してゆくだけで重要事項をカバーできるようにすることである.その結果,説明用の原理図や概念図が非常に多いテキストになった.これは講義を行うものにとっても,受講するものにとっても極めて有用であろう.

□ 本書の構成
 本書は半期の講義(90分×15回)で使用することを前提にした.15回のうち3回は準備,試験,予備などのために使用することとし,全体を12章に分けて記述した.まず,第1章において3次元CG技術の概要,応用,課題,歴史について述べ,3次元CG の分野全体を鳥瞰する.3次元CG技術はモデリングとレンダリングに大別されるが,これら両者において各種の座標変換は不可欠である.ゆえに,モデリングとレンダリングの説明に先だって,第2章と第3章で3次元座標系と3次元座標変換を取り上げた.ここで注意すべき点は,どのような座標変換がモデリングやレンダリングのどのような局面で使われるかを考えながら学習することである.第4章から第6章はモデリングにさいた.本来なら三つに分ける必要はないが,各章を1回の講義でできる分量にするためである.同様に,第7章から第10章をレンダリングの説明にあてた.第11章ではアニメーションについて,第12章では3次元CGに関連するソフトとハードについて説明した.
 どのような章分けがわかりやすいかは単純でなく,本書で最も苦労した点の一つである.その原因はモデリングとレンダリングという用語が一般に普及しているにもかかわらず,両者の境界が明確でないことにある.たとえば,ほとんどのテキストがテクスチャマッピングをレンダリングの一部として扱っている.しかし,物体のどの部分をどんなテクスチャ画像でモデル化するのか,どのような貼りつけ方をするのかなど,モデリング時の判断や作業が大部分であり,レンダリング時には機械的に貼りつけるだけである.また,細分割曲面やプログレッシブメッシュはモデリングの章で扱われるが,実際の細分割処理やプログレッシブな表示はレンダリング時に行われる.モデリング作業にレンダリングは不可欠であり,逆にレンダリング処理はモデリングに大きく依存しているのである.

□ 演習について
 演習を行うかどうかはそれぞれの事情によるだろう.3次元CGに力点を置いた専門学科であるならば,半期の演習を並行して,あるいは次の半期で行うことが必要である.最初から特定のCGソフトを使ったり,C言語あるいはJava言語によるCGプログラミングを行ったりする学習方法は効率的とは言えない.使用ソフトのメニューやコマンドの意味を推測できない段階では必然的に試行錯誤が多くなり,途中で挫折する確率が高い.また,スキルの習得に時間をとられ,その背後にある原理の理解がおろそかになり,多くの高度な機能を効果的かつ独創的に使いこなすことはできない.一見きれいな作品ができあがるが,自分がどんな手法を使っているのかさえ説明できない学生がでてくる.一方,後者の学習方法では,プログラミング言語の勉強に時間をとられ,肝心の3次元CGを学習する時間が足りなくなってしまう.特に,プログラミングの苦手な人はCGまで嫌いになってしまうという弊害がある.また,グラフィックライブラリを使いこなすには本書の基礎知識は必要不可欠である.グラフィックプログラミングの仕事につく人はごく限られており,講義や演習で取り上げるよりも卒業研究などで個人の研究テーマとして取り組んだほうが良いように思われる.

□ 対象とする読者
 本書が対象としている読者の幅は極めて広い.なぜならば,3次元CGがマルチメディア時代のコアテクノロジーとして今後ますますあらゆる分野に浸透し,さまざまなレベルで3次元CGとの関わりが生じてくるからである.しかし,3次元CGに関する知識は膨大で奥が深い.ゆえに,どんな目的でどこまで学習しようとしているのかを常に意識することがたいせつである.主な学習目的としては次のようなものが考えられるだろう.

 ● マルチメディア時代のキーテクノロジーを一般教養として知っておきたい.
 ● 情報技術者,システムエンジニアとして基礎知識だけは知っておきたい.
 ● 3次元CGソフトの多彩な機能を使いこなせるようになりたい.
 ● CG関係の資格をとりたい.
 ● インタラクティブな3次元Webコンテンツを作れるようになりたい.
 ● Java 3D,DirectX,OpenGLなどを用いたプログラミングができるようになりたい.
 ● 3次元CGを用いたゲームの開発にたずさわりたい.
 ● DirectXやOpenGLなどのようなグラフィックAPIを開発したい.
 ● ビデオカードのドライバソフトを開発したい.
 ● グラフィックチップやビデオカードを設計・開発したい.
 ● 新しい3次元CGアルゴリズムを研究開発したい.


 本書は,これらさまざまなレベルの学習目的をもつ人々に共通に必要となる基礎知識を取り上げ,それらの相互関係を明らかにすることによって,3次元CG技術の全貌を体系的に身につけることができるように配慮されている.大学関係者の中には「3次元CG = ゲームや映画」という偏見をもち,大学教育にはなじまず,専門学校で教えるもの,と思い込んでいる人がいるのは残念である.このような人にもぜひ本書を読んで欲しいものである.
 我々人間にとって画像や映像などから得る視覚情報は,他の感覚器官からの情報に比べ,質/量ともにはるかに多い.ゆえに3次元CGは今後もますます多くの分野で日常的に使用されることは間違いない.本書がその一助になれば幸いである.

□ Webサポート
 3次元CG技術の進歩は速い.また,細心の注意を払ったつもりでも本書に誤りがあるかもしれない.説明がまずく読者から質問が寄せられることも考えられる.これらに改訂版で対応するには時間がかかり過ぎる.そこで思いついたのがホームページでのサポートである.

<本書のホームページ> http://www.fit.ac.jp/~araya/3dCG/

(謝辞)本書の執筆にいろいろな形で貢献してくれた福岡工業大学 情報工学部 荒屋研究室の卒業研究生に感謝する.また,貴重な画像の掲載を快諾してくれた国内外の大学関係者および企業に心より感謝する.特に,Shadeシリーズの開発元であるエクス・ツールス(株)からは多くの画像を提供していただいた.最後に,本書の出版にあたってお世話になった共立出版(株)の佐藤 清俊氏,寿 日出男氏,および大越 隆道氏に感謝する.