コンピュータ・グラフィックス

 

担当:渡部広一(わたべひろかず)

[部屋] YM225 [電話]  [Email] hwatabe@mail.doshisha.ac.jp

[ホームページ] http://indy.doshisha.ac.jp/~watabe

 

<<概要>>

コンピュータ・グラフィックス(CG)とは,「コンピュータによりデータを処理し,画像として出力する技術」,または,「作成された画像そのもの」を指す.本講義では,CGにおける基礎理論,ならびに,画像生成手法,対象物体の表現方法などについて述べる.すなわち,CGにおける基本的考え方の理解が目標である.

 

<<成績評価>>

学期末試験の成績,および,授業期間中のレポートなどにより評価する.

 

<<テキスト>>

千葉則茂・土井章男共著「3次元CGの基礎と応用」(サイエンス社)

 

<<授業計画>>

  1. CGの概要
  2. 物体の表現方法1−ポリゴンモデル
    CGによる画像生成(1.1)
    立体の形状モデル
    (ワイヤ,サーフェイス,ソリッド)
    ポリゴンによる表現
    (1.2)
    B-Reps
  3. ポリゴンの表示と輝度計算
    点を描く
    (2.1)
    線分を描く
    (2.2)
    3角形面を描く
    (2.3)
    透視投影
    (2.4)
    陰影付け
    (輝度計算)(2.5)
  4. 簡単な隠面消去法とスムーズシェーディング
    3角形面の集合
    (ポリゴンモデル)(3.1)
    後面除去
    (3.2)
    ベクトルの外積
    ペインタアルゴリズム
    (3.3)
    グローシェーディング
    (4.2)
    フォンのスムーズシェーディング
    (4.3)
  5. テクスチャマッピング
    テクスチャマッピング
    (5.1)
    バンプマッピング
    (5.2)
    環境マッピング
    (5.3)
    ソリッドテクスチャ
    (5.4)
  6. 高度な隠面消去法
    スキャンライン法
    (6.1)
    Z-バッファ法(6.2)
  7. 座標変換
    座標変換マトリックス
    (7.1,7.2)
    モデリング座標系とワールド座標系
    (7.3,7.4)
    カメラ座標系
    (7.5)
    スクリーン座標系
    (7.6)
  8. 物体の表現方法2−自由曲面
    パラメトリック曲線
    パラメトリック曲面
    (1.4)
  9. 物体の表現方法3−CSGモデル
    高さの場による表現
    (1.5)
    ボクセル
    (1.6)
    8分木
    (1.7)
    メタボール
    (1.8)
    パーティクル
    (1.9)
    CSG(1.10)
  10. レイ・トレーシング法1
    アルゴリズム
    (8.1)
    可視点の輝度計算
  11. レイ・トレーシング法2
    反射と屈折
    (8.3)
    レイと物体との交点
    (8.2)
    曲面の法線ベクトル
  12. 様々な画像生成法1
    ボリュームレンダリング
    (11.1,11.2)
  13. まとめ

 

 

CGとは何か?

「コンピュータによりデータを処理し,画像として出力する技術」とあるように,まずコンピュータを使うということが前提となっています.「データを処理し」とありますが,データとはどんなデータでしょうか?CGで扱う対象は主に形のあるモノなので,ここでのデータは何か形のあるモノを表すためのデータとなります.

いま,この「ペン」をコンピュータの画面に表示したいとします.一番簡単な方法は,デジタルカメラで「ペン」を撮影して,その画像データをコンピュータに送り込んで,適当なソフトを使って表示してやることです.それでは,これから今までにない新しい「ぺン」を作ろうとしていて,それを作る前にコンピュータ画面に表示してみたい場合はどうでしょうか?実物は無いのでカメラで撮影することはできません.

そこでしなければならないことは,まず新しい「ペン」の形をイメージして,それをデータとしてコンピュータに入力します.このとき,対象としている「ペン」は3次元形状なので,3次元形状を表すデータでなければなりません.そして,材質や色などのデータも同様にコンピュータに入力します.要は,人間のイメージ上にあるモノをコンピュータで扱えるデータにする必要があります.

次に,表示,すなわち,コンピュータで表示できる形式の画像データを生成します.コンピュータ画面は2次元であるのに対し,ここで表示しようとしているのは3次元のモノです.3次元のモノは見る向きや光の当たり具合によって見え方が変わるはずです.そこで,光源のデータや見る位置などのデータも入力する必要があります.

さて,これで必要そうなデータはおおよそ揃ったようです.後は定義されたデータを基に,2次元の画像データを生成するためのプログラムを作って,それを実行すれば良いことになります.それでは,どんなプログラムを作れば良いのでしょうか?与えられているのは,形状や色などを表すデータと光源や視線などのデータです.これらのデータは一般的には,数値の並びだったり数式だったりします.どんな形式のデータになっているかによって,当然,作るべきプログラムも違ってきます.

実際,形状を表すためのデータ形式(表現形式)は様々なものが考案されています.また,そのデータ形式に応じた画像生成手法も様々なものが考案されています.他のどれよりも優れたデータ形式や手法といったものは無いので,用途や目的によって使い分けることになります.

この講義の主な内容は,それら様々な形状表現形式や画像生成手法の中から比較的わかりやすいもの,あるいは,よく知られているものを中心に勉強することです.

下の図はCGの概略を示したものです.