Comments
Description
Transcript
「平成27年度「CGレンダリング」学習用プリントの訂正」
○授業の目標 コンピュータで視覚的情報(図形、画像)を有効に取り扱うためには、大別する と、数値データなどの情報を視覚的に表示するための技術(コンピュータ・グラフ ィックス:CG)と、すでに存在する視覚的情報から新たな情報を取り出す技術(画 像処理)が必要となる。 3DCG(3 次元 CG)では、コンピュータ内部に仮想的な 3 次元世界を作成し、こ の中にモデル(物体)を配置してどのように見えるかを計算する。この制作工程は 主にモデリング(形状作成)とレンダリングから成る。 本講義では、このレンダリングとアニメーション及びシミュレーションを学習す る。レンダリングとは、モデリングで作成された 3 次元モデルデータを、ディスプ レイに表示できるように画像データ化することである。また、アニメーションはモ デルに動きを与えることをいう。シミュレーションはアニメーションの一種と見る ことが出来るが、事象を正確に再現することに主眼が置かれている。これらについ て基礎的な理論とアルゴリズムを学習し、更に実際に 3DCG ソフト「POV-Ray」を 用いて 3DCG の制作実習を行う。 ○使用する教科書 ★「コンピュータグラフィックス 改訂新版」公益財団法人画像情報教育振興協会発行 ★鈴木広隆・倉田和夫・佐藤尚著 「POV-Ray による 3 次元 CG 制作―モデリングからアニメーションまで―」 財団法人画像情報教育振興協会発行 ○講義の構成 「コンピュータグラフィックス」の前半部分は「CG モデリング」の講義で学習 する。本講義で学ぶのは、以下の範囲である。 Chapter 4 レンダリング Chapter 5 アニメーション Chapter 6 の内容は、 「ディジタル画像概論」の講義で詳しく扱うので、本講義で は触れない。また、Chapter 7 から Chapter 8 は授業では特に取り扱わないが、最近 の話題や CG システムについて触れているので、是非目を通しておいてほしい。 講義の総まとめとして、3 次元 CG ソフト「POV-Ray」を用いて 3 次元 CG の制作 をしてもらう。POV-Ray はフリーのソフトウェアであるが、レイトレーシング法に よる高品質な画像を作成することができる。インターネットからダウンロードし、 各自のコンピュータにインストールして使うことができる。 ○プリントの使い方 まず最初に、CG でよく利用される数学について簡単にまとめてある。数学に自 信のない人は、この部分に目を通してある程度理解してから先に進んだ方が良いと 思われる。 各 Chapter では、重要項目をある程度まとめたものが載っている。重要な語句は -1- わざと で抜いてあるので、各自教科書をよく読んで、適切な語句をあてはめて ほしい。また、タイトルだけ載せてある部分は、自分で要点や式を書き出してまと めてほしい。なお、見出し番号は必ずしも教科書とは一致しない。 また、殆どの Chapter に演習問題と一部解答を付け加えたので、必ず解いてみる こと。自分の力で解くことによって、初めてきちんと理解できたといえるのである。 ○実習課題を行うときの注意事項 POV-Ray の実習を行うときに気をつけるべきことを、いくつか挙げておく。 ファイル名は半角英数にする。 古いバージョンでは、日本語のフォルダ名・ファイル名が使えないことがある。 (最新のバージョンでは、日本語のファイル名が使える。 ) テクスチャマッピングを行うときは、マッピングする画像ファイルをシーンファ イルと同じフォルダに置く。 テクスチャマッピングのファイル形式の指定では、bmp はうまくいかない。png、 gif を使うとよい。最新のバージョンなら、jpeg も使える。 出来上がった画像は、シーンファイルと同じ名前の bmp ファイルとして保存され ている。 例えば kadai.pov というシーンファイルを作ったのであれば、レンダリングした 結果が kadai.bmp という名前で同じフォルダに保存されているはずである。実習 課題提出の際には、この bmp ファイルを印刷すればよい。(例えばワードに取り 込んで印刷したり、ペイントでこのファイルを開いて印刷する。 ) 日本語のコメントは、ワードやメモ帳を利用して入力できる。 完成したシーンファイルをワードやメモ帳で開き、日本語でコメントを入れると、 わかりやすいレポートが作成できる。 -2- Chapter 0 CG で利用する数学 0-1 三角関数 右図の直角三角形に対し、三角関数は次式で計算できる。 y x sin y sin 、 cos 、 tan r r cos x r y θ x 0-2 ベクトル 3 次元空間内の点の位置は直交座標系の座標値 ( x, y, z ) で表せるが、これは 3 次元 のベクトルである。以下、CG で必要なベクトル計算について簡単に述べる。 ベクトル A(a1, a2 , a3 ) の大きさ | A | (教科書では A )は、次式で表される。 | A | a12 a 2 2 a3 2 特に、大きさが 1 であるベクトルを単位ベクトルという。 2 つのベクトル A (a1 , a2 , a3 ) 、B (b1 , b2 , b3 ) の和 A+B は、次式で定義される。 A B (a1 b1, a2 b2 , a3 b3 ) また、これらのベクトルの内積 A・B は次式で定義される。 A・B a1b1 a2b2 a3b3 また、下図のように 2 つのベクトル A、B 間の角度をθとすると、次の関係が成り 立っている。 A・B | A || B | cos A B A・B θ cos | A || B | すなわち、内積から角度がわかる。特に、内積=0 のとき、直角となる。また、A、 B が単位ベクトルのときは、cosθ=A・B となる。 ベクトルの外積については、教科書 P. 68 の式( 3.2 )を参照すること。平面の法線 ベクトル(平面に垂直なベクトルのこと)が、平面上の 2 本のベクトルの外積から 求められることがわかる。 0-3 平面の方程式 教科書 P.134 の式(4.4)を参照すること。点 Pi と点 P を結んだベクトルは、この平 面上にあるので、法線ベクトルと垂直に交わる。したがって、この 2 ベクトルの内 積は 0 になり、これを表したのが式(4.5)である。 <練習問題> 1.ベクトル A(1,1,0)、B(-1,1,0)に対し、以下のものを求めよ。 (1)|A| (2)A・B (3)A と B のなす角度θ (4)A×B [解](1) 2 (2)0 (3)90 度 (4)(0,0,2) 2.ベクトル(1,2,3)に垂直で、点(1,0,0)を通る平面の方程式を求めよ。 [解]x+2y+3z-1=0 -3- Chapter 4 レンダリング 4-1 写実的表現法 レンダリング…モデリングで作成された 3 次元モデルデータを、ディスプレイに表 示できるように画像データ化すること 4-1-1 写実的表現のレベル …写実的な画像を作成 4-1-2 リアリティの要素 リアリティを向上させる要素 ★あああああああああああ ああああ ★ああああああああああああ あああ ★ああああああああああああ ああ ★ああああああああああああ あああ 4-1-3 写実的表現のためのモデリング 属性(アトリビュート)…レンダリングに必要な形状以外のデータ ☝属性として考えられる項目を列挙してみよう! ★複雑な形状をリアルに表示するためには、モデリングも重要。 4-1-4 レンダリングを構成する処理 図 4.2 → → → あ 4-2 隠面消去 4-2-1 バックフェースカリング の面(面の と 方向へのベクトルのなす角が 除去しておくこと。 [1]表の面と裏の面の判別法 式(4.1) >0: の面 <0: の面 =0:視線に な面 [2]法線ベクトルの算出 → P.67 下から 5 行目~P.68 式(3.2) ★単位法線ベクトル… 式(3.3) -4- である面)を 4-2-2 隠面消去法 アルゴリズム、 つに分類できる。 4-2-3 優先順位アルゴリズム 奥行きソート法…可視性の アルゴリズム、 アルゴリズムの 3 順に重ね描きする方法 4-2-4 スキャンライン法 [1]スキャンライン法のアルゴリズム ☝スキャンライン法のアルゴリズムをまとめておこう! [2]ポリゴンの走査変換 ポリゴンの と との交点を求め、ポリゴンに含まれる画素を求め る。(図 4.11 参照) ★ を用いると、加算のみで交点が求められる。 [3]可視セグメントの決定法 最も の小さいスキャンセグメントを可視とする。 [4]スキャンライン法の特徴 ☝スキャンライン法の特徴をまとめておこう! 4-2-5 Z バッファ法 ごとに奥行きを判定 -5- [1]Z バッファ法のアルゴリズム Z バッファ:画素の を記憶 フレームバッファ:画素の を記憶 ☝Z バッファ法のアルゴリズムをまとめておこう! [2]ポリゴンの奥行き(z 値)の計算 [3]Z バッファ法の特徴 ☝Z バッファ法の特徴をまとめておこう! 4-2-6 レイトレーシング法 [1]レイトレーシング法のアルゴリズム ☝レイトレーシング法のアルゴリズムをまとめておこう! -6- [2]レイと物体との交差判定 → 4-8-2 レイトレーシング法におけるレイと物体との交差判定 ①レイと球の交差判定 → [1]レイと物体との交差判定 ②レイとポリゴンとの交差判定 → [2]レイとポリゴンとの交差判定 [3]レイトレーシング法の高速化 → [2]レイトレーシング法の高速化 ①バウンディングボリュームを用いる方法 各物体を簡単な形状(バウンディングボリューム)で囲い、これとレイとの交点を調 べる。 ②空間分割法 3 次元空間を細かく分割し、各空間に存在する物体を記憶。 ③並列計算による方法←各 に対する処理は独立 [4]レイトレーシング法の特徴 → [3]レイトレーシング法の特徴 ☝レイトレーシング法の特徴をまとめておこう! 4-3 シェーディング 4-3-1 シェーディングの基礎と概要 シェーディング…光の当たり具合による シャドウイング…光が遮られて生じる の変化を表示 の表示 [1]放射量と測光量 [2]シェーディングモデル シェーディングに採用する光の物理モデル。 シェーディングモデル 照明モデル…直射光が対象 照明モデル… 光まで含める ★光源の種類: 、 、 、 あ ★光と物質との相互作用: 光 光— 光、 光、 光 基本のシェーディングモデル=環境光による反射光+ 反射光+ 光(環境光等については次節以降に説明がある。 ) [3]シェーディングモデルの発展 -7- 反射 4-3-2 環境光 まわりの物体からの照り返し。 画面全体に一定の明るさを与える→ 式(4.13) や の領域にも明るさ 4-3-3 拡散反射 物質内の 部分で多重散乱し放射された光。どの 一定。 [1]平行光線 式(4.14) [2]点光源 式(4.15) [3]線光源 [4]面光源 4-3-4 鏡面反射 物質 での直接反射、 を生じる。 ★ 方向に強く反射→視点方向により見え方が違う [1]フォンのモデル 式(4.19) 4-3-5 完全鏡面反射・透過・屈折 [1]レイトレーシング法による反射,透過・屈折の表現 追跡の終了条件 ①あああああああああああああああああああああああああ ②あああああああああああああああああああああああああ [2]正反射方向ベクトル 式(4.23) [3]屈折方向ベクトル 式(4.26) ただし、 式(4.24) 、 式(4.31) [4]反射率と透過率 ★kr はフレネルの式(4.32)より計算できる。 ★kt=1-kr 入射方向へ届く光の強さ: 式(4.34) -8- から見ても、 が 4-3-6 散乱・減衰 4-3-7 スムーズシェーディング 曲面をポリゴンで近似し、ポリゴン内の輝度を一定値にして表示( シ ェーディング)すると、 効果(実際の輝度の差より大きく感じる)のた めゴツゴツ見える。 →スムーズシェーディング…滑らかに輝度を補間 [1]グローのスムーズシェーディング → [1]グローシェーディング を補間する。 手順 ①ポリゴンの各頂点での を求める。 ②ポリゴンの と との交点の輝度を線形補間で求める。 式(4.35) 、 式(4.36) ③ 上で線形補間。 式(4.37) 欠点: が十分に表現できない。 [2]フォンのスムーズシェーディング → [2]フォンシェーディング を補間する。 手順 ①ポリゴンの各頂点での を求める。 ②ポリゴン内の をバイリニア補間より求める。 (グローシェーディングの式の I を で置き換える。) ③求めた を用いてシェーディング。 ※ は増加するが、グローシェーディングより精度良く計算できる。 4-4 影付け 4-4-1 本影と半影 ☝本影と半影の違いは? 4-4-2 平行光線・点光源による影 4-4-3 大きさをもつ光源による影 4-5 大域照明モデル → 4-7 大域照明計算 4-5-1 ラジオシティ法 → 4-7-1 レンダリング方程式,4-7-2 ラジオシティ法 反射を考慮したシェーディング。 -9- 作成された画像の特徴 ①あああああああああああああああああああああああああああああああ ②あああああああああああああああああああああああああああああああ ③あああああああああああああああああああああああああああああああ →間接光がかもしだす 雰囲気を表現 P.183 に 挙 げ てある大域照 明計算の特徴 の 1)と 2) 削除 4-5-2 フォトンマップ法 → 4-7-3 [2]フォトンマッピング法 現象を取り扱え、 現象も取り扱えるよう拡張されている。 4-3-6 のタイトルの最初の言葉 4-6 マッピング(新しい教科書では 4-5) 4-6-1 マッピングの概要 リアルな画像を簡単に作成できる。 4-6-2 テクスチャマッピング 模様(テクスチャ)の貼り付け。 [1]テクスチャの生成 [2]テクスチャマッピングの処理方法 ① による方法 スクリーン上に を配置し、物体面に投影。 ② を用いる方法 ③ を用いる方法 パラメトリック曲面の場合、パラメータをテクスチャの と対応付ける。 ★シェーディングの際に、テクスチャの色を として用いる。 平均色 [3]アンチエイリアシング ①テクスチャの をマッピングする方法 → 6-5-3 ①プリフィルタリング法 ② 法 → 6-5-3 ② 画素内に 点を設け、それに対応するテクスチャの色の あるい は をマッピング。 ③ 法 もとのテクスチャのサイズを繰り返し に して作成したミップマップ を利用。 4-6-3 バンプマッピング 凹凸のマッピング→ ベクトルが変化 →シェーディングによって擬似的に凹凸を表現 4-6-4 環境マッピング 映り込みを表現。 - 10 - 4-6-5 ソリッドテクスチャリング 3 次元関数で与えられるテクスチャの貼り付け、物体内部のテクスチャも表せる。 例:木材、大理石 <練習問題> 1.3 点 P1(1,0,0)、 P2(0,0,-1)、P3(0,1, 0)を通る平面の法線ベクトルと方程式を求め よ。 [解]式(3.2)より、法線ベクトルは(1,1,-1)。よって、平面の方程式は x+y-z+d=0 と いう形になる。ここに P1 の座標を代入すると 1+d=0。これより d=-1 が求まる。 すなわち、平面の方程式は x+y-z-1=0 となる。 2.図 4.27[a]における点 P での拡散反射光の強さを求めよ。ただし、kd=0.8、Ii =10、 N(0,1,0)、L(1,2,0)(単位ベクトルであるとは限らない)とする。 NL 0 1 1 2 0 0 2 [解] cos より | N || L | 1 5 5 2 16 I k d I i cos 0.8 10 7.16 5 5 3.図 4.32 の場合の鏡面反射光を求めよ。ただし、W(α)=0.8、Ii =10、N(0,1,0)、 L(-1,2,0)、V(2,1,0)、n=2 とする。 [解]正反射方向を表すベクトルを R とすると、L(-1,2,0)より R(1,2,0)となる。 RV 1 2 2 1 0 0 4 cos より | R || V | 5 5 5 2 4 I W ( ) I i cosn 0.8 10 5.12 5 4.下図において点 A、B、C、D の座標はそれぞれ(1.4,0.4)、(0.4,-0.6)、(1.7,-0.3)、 (2.7,0.7)であり、輝度はそれぞれ 5、8、7、6 である。また、点Pの座標は(1.6,0) である。このとき、点Pの輝度をグローのスムーズシェーディングを用いて求め なさい。 D [解]走査線 y =0 と辺 AB の交点を L、辺 CD との A 交点を R とすると、 0 (0.6) 0.4 0 xL 1.4 0.4 1 P 0.4 (0.6) 0.4 (0.6) 0 (0.3) 0.7 0 2.7 1.7 2 0.7 (0.3) 0.7 (0.3) 同様にして IL=6.2、 IR=6.7 と求まるので、 式(4.44) より IP=6.5 が得られる。 xR - 11 - C B Chapter 5 アニメーション 5-1 CG アニメーションの構成 5-1-1 アニメーションとは 動いていないものを動いているように見せる映像技術。 ★アニメーションは誇張することもあるが、シミュレーションは ことが目的。 5-1-2 仮現運動とコマ撮り ★少しずつ変化している絵を連続で見ると、 例:映画 24 枚/秒、TV 30 枚/秒 により動いて見える。 5-1-3 さまざまなアニメーションの表現形態 5-2 カメラコントロールによるアニメーション 5-2-1 画角 → 2-3-1 [1]カメラと投影 図 2.26 の画角と視野の関係をよく押さえておく。 5-2-2 カメラワーク → 5-1-5 カメラワーク ☝カメラポジションやアングルの設定にはどのようなものがあるか? ☝フレーミングの設定にはどのようなものがあるか? ☝カメラの動きにはどのようなものがあるか? 5-2-3 モーションブラー 動きにともなう を人為的に作る。 ★ある時間幅内の画像を して作成。 - 12 - に再現する 削除 5-3 キーフレームアニメーション → 5-2 キーフレームアニメーション キーフレーム(原画)…基本フレーム キーフレーム法…中割り画像(キーフレーム間のつなぎの絵)を自動生成 スケルトン法…仮想的な を作り、それに合わせて形状を変化 5-3-2 キーフレームの補間 → 5-2-2 キーフレームの補間 通常は 関数で補間。 5-3-3 アニメーション技法の CG アニメーションへの適用 5-1-4 CG アニメーションに適用される各種アニメーション技法 5-4 特殊効果のアニメーション 5-4-1 光学的な特殊効果 削除 5-4-2 形状変形アニメーション [1]モーフィングとワーピング → 5-2-3 [1]モーフィングとワーピング モーフィング…2 枚の画像 A,B の特徴となる点を対応させて合成画像を生成し、A から B へと変化するアニメーションを作成。 ★同様の処理を 1 枚の画像内で行う手法を という。 [2]パーティクルの応用 → 5-3-3 パーティクルの応用 ☝パーティクルで表現できるものにはどのようなものがあるか? [3]自由形状変形 → 5-2-4 自由形状変形 5-5 手続き型アニメーション 5-5-1 進化・生長のアニメーション → 5-3-1 進化・成長のアニメーション 5-5-2 自然現象 → 5-3-2 自然現象のアニメーション 5-6 キャラクタのアニメーション(新しい教科書では 5-4) 5-6-1 フォワードキネマティクス 関節の角度を直接与える。 5-6-2 インバースキネマティクス 目的位置から関節の角度を自動的に求める。 - 13 - 5-6-3 パスアニメーション 対象を、自動的に を変えながら、パスに沿って移動させる。 5-4-4 モーションキャプチャデータによるアニメーション 5-6-4 モーションキャプチャ 人間の を測定し、そのデータを収集。 以下の内容は、キーワードだけ挙げておきます。各自よく読んでおいてください。 5-6-5 筋肉変形アニメーション 5-6-6 表情のアニメーション リップシンク 5-6-7 布地のアニメーション 5-6-8 髪の毛のアニメーション 5-6-9 群集(フロック)アニメーション 5-7 リアルタイムアニメーション(新しい教科書では 5-6) 5-7-1 リアルタイムアニメーションの手法 ダブルバッファ方式 5-7-2 レンダーマンとリアルタイムシェーダ 5-8 実写画像との合成 → 5-7 実写映像との合成 5-8-1 実写映像との合成時の条件 5-8-2 カメラパラメータの整合 マッチムーブ 5-8-3 照明条件の整合 イメージベーストレンダリング、イメージベーストライティング、HDR image 画像 <練習問題> 1. 下図のような長方形 A1B1C1D1 をキーフレーム 1、長方形 A2B2C2D2 をキーフレー ム 2 とする。このとき、線形補間によって得られるキーフレーム 1,2 の丁度中間 の中割り画像を求めよ。 C2 B2 D1 C1 D2 A2 A1 B1 [解]求め方だけ示す。対応する頂点同士(A1 と A2、B1 と B2、…)を結んだ各直線 の中点を、中割り画像の長方形の頂点とすればよい。 - 14 -