+ All Categories
Home > Documents > CG 基礎、数学的準備 - Kobe University ·...

CG 基礎、数学的準備 - Kobe University ·...

Date post: 20-May-2020
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
59
CG 基礎、数学的準備 情報可視化論 第 03 陰山 聡 神戸大学 システム情報学研究科 計算科学専攻 [情報基盤センター分館 第 1 演習室] 2015.04.28 Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 1 / 59
Transcript
Page 1: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

CG基礎、数学的準備情報可視化論 第 03回

陰山 聡

神戸大学 システム情報学研究科 計算科学専攻[情報基盤センター分館 第 1 演習室]

2015.04.28

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 1 / 59

Page 2: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

環境設定

環境設定

• ログイン確認• WebGL環境オン

• Safari立ち上げ• 環境設定• → メニューバーに開発メニューを表示 にチェック• (開発メニューから “WebGLを有効”)

• 確認• この講義のウェブページ• http://tinyurl.com/kageyama2015a• サンプルをクリック

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 2 / 59

Page 3: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

前回の復習

前回の復習

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 3 / 59

Page 4: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

前回の復習

WebGLとは

WebBL = シェーダを使い、HTML5の canvasに、JavaScriptで 3D CGを書くための API

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 4 / 59

Page 5: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

前回の復習

WebGLの特徴

• スタンドアロンアプリからウェブアプリへの流れ• クロスプラットフォーム• オープンスタンダード• Webで GPUを使ったレンダリングが可能• 開発・利用が容易: プラグイン不要• ソースコードが見える• グラフィックス(OpenGL)と UI(ウィンドウ管理やイベント処理)の分離が明白

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 5 / 59

Page 6: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

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

コンピュータグラフィックス(CG)

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 6 / 59

Page 7: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

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

CGと並列計算

並列計算については学んできたはず。空間を分割して、通信用のメモリを確保して、MPIで通信して・・・並列プログラム作りは結構大変。← 結局同期が大変だから。一方、同期について気にしなくてもよい問題もたくさんある。もともとのアルゴリズムが並列化可能なもの。→ “Embarrassingly” parallel problems

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 7 / 59

Page 8: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

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

CGの処理の多くが embarrassingly parallel

座標変換、テクスチャマップ、シェーディング、ラスタ化、etc.

CG専用並列計算機 → GPU (Graphics Processing Unit)

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 8 / 59

Page 9: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

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

Kepler GeForceの構造Nvidia white paperより引用

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 9 / 59

Page 10: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

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

Kepler GeForceの構造Nvidia white paperより引用

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 10 / 59

Page 11: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

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

グラフィックス レンダリング パイプライン

Graphics rendering pipeline 「パイプライン」

グラフィックス レンダリング

パイプライン

input: カメラ設定、3次元オブジェクト、光源、ライティングモデル、テクスチャoutput: 2次元画像

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 11 / 59

Page 12: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

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

パイプラインの構造

アプリケーション ステージ → ジオメトリ ステージ→ ラスタライザ ステージ

ジオメト

ラスタラ

イザ

アプリケ

ーション

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 12 / 59

Page 13: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

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

アプリケーション ステージ

ソフトウェアオブジェクトの生成、アニメーション、衝突検出、カリング、等々

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 13 / 59

Page 14: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

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

ジオメトリ ステージ

ハードウェア

座標変換ライティ

ング射影

クリッピ

ング

スクリー

ンマッピ

ング

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 14 / 59

Page 15: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

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

ビューボリューム

canonical view volume (標準ビューボリューム)辺の長さ 2の立方体

(−1,−1,−1) ≤ (x, y, z) ≤ (1, 1, 1)

標準ビューボリューム内の座標を正規化デバイス座標 (NormalizedDevice Coordinates, NDC)と呼ぶ。ジオメトリステージの役割は、アプリケーションが設定した CG世界をビューボリュームにマップすること。

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 15 / 59

Page 16: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

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

射影

2種類:・正射影 orthographic projection, 平行投影(parallel projection)・透視射影 perspective projection, 遠近投影視錐台 view frustum

どちらの射影も 4行 4列の行列演算で書ける(後述)。

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 16 / 59

Page 17: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

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

クリップ処理ビューボリュームの外部は描かない。

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 17 / 59

Page 18: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

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

クリップ処理ビューボリュームの表面に新しい辺が自動的にできる。

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 18 / 59

Page 19: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

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

スクリーンマッピング

最終的な画像の大きさ(widthと height)に合わせて、立方体のビューボリュームを x方向と y方向にスケール変換+平行移動させる。z方向には何もしない(−1 ≤ z ≤ 1)

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 19 / 59

Page 20: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

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

パイプラインの構造

再掲

ジオメト

ラスタラ

イザ

アプリケ

ーション

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 20 / 59

Page 21: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

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

ラスタライザステージビューボリューム内のデータ(3D)+テクスチャデータ(2D) → 画像(2D)頂点のデータ → ピクセルの色簡単のため、スクリーンマッピングを省略すると

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 21 / 59

Page 22: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

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

ラスタライザステージ

デプステスト。後述。アルファテストステンシルテストテクスチャマッピング

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 22 / 59

Page 23: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

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

グラフィックスハードウェア

グラフィックスハードウェアの概念図→ 【図】

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 23 / 59

Page 24: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

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

フレームバッファ

カラーバッファZバッファステンシルバッファ

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 24 / 59

Page 25: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

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

カラーバッファ

ピクセル RGBA

16 bits, 23 bits, 32 bits

RGBA32 = R8 + G8 + B8 + A8

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 25 / 59

Page 26: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

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

Zバッファ

Z-buffer

デプステストEdwin Catmullが考案。→ 写真博士論文(1974年)。RenderMan開発(アカデミー賞)ルーカスフィルム → ピクサー設立。ウォルト・ディズニー・アニメーション・スタジオ社長

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 26 / 59

Page 27: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

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

Z-buffer

x

z

za

zb

za < zb

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 27 / 59

Page 28: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

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

Z-buffer

x

z

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 28 / 59

Page 29: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

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

Z-buffer

x

z

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 29 / 59

Page 30: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

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

Z-buffer

za = z1 + (z2 − z1)xs − x1x2 − x1

zb = z2 + (z3 − z2)xs − x2x3 − x2

zp = za + (zb − za)yp − ybyb − xa

x

z

1

2

3

xs

a

b

p

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 30 / 59

Page 31: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

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

デプスマップアルゴリズムシャドウマップアルゴリズムともいう (Williams1978)

光源に視点をおいてレンダリング光源からオブジェクトの各点までの距離 → zバッファ → 2次元データ→ テクスチャ→ テクスチャマッピング

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 31 / 59

Page 32: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

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

ステンシルバッファ

カラーバッファの値を実際に描画するかどうかをピクセル単位で制御「型紙」

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 32 / 59

Page 33: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

数学的準備

数学的準備

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 33 / 59

Page 34: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

数学的準備

同次座標同次座標(homogeneous coordinates)とは 3次元空間中の位置座標 xと、任意のベクトル vをあえて 4成分で表現したもの。3次元空間中の位置座標 xを

xyz1

(1)

ベクトル vは vxvyvz0

(2)

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 34 / 59

Page 35: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

数学的準備

アフィン変換

3次元空間の位置座標 xや、ベクトル vの変換を考える。

x −→ y ≡ F (x). (3)

線形変換=スケール変換+回転+剪断。アフィン変換=線形変換+平行移動。平行移動は 3行 3列の行列では書けない。同次座標と 4行 4列の行列を使えば書ける。

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 35 / 59

Page 36: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

数学的準備

線形代数の復習:内積n次元空間中のベクトルと正方行列ベクトル uの大きさ

u = |u|

内積u · v = uivj = u v cosϕ

u

v

φ

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 36 / 59

Page 37: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

数学的準備

線形代数の復習:正規直交系

ei · ej = δij (クロネッカーのデルタ)

一般のベクトル vと正規直交系 {e0, e1, . . . , en−1}vの i成分

vi = v · ei

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 37 / 59

Page 38: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

数学的準備

線形代数の復習:外積

3次元空間のベクトル

w = u× v wi = ϵijkuj vk (エディントンのイプシロン)

wは uと vの両方に垂直

w = u v sinϕ

u× v = −v × u

u · (v ×w) = (u ·w)v − (u · v)w

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 38 / 59

Page 39: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

数学的準備

線形代数の復習:行列のかけ算

M とN は行列行列M の成分をMij (i, j = 0, 1, . . . , n− 1)

行列N の成分をNij (i, j = 0, 1, . . . , n− 1)

とするとL = MN

の成分は

Lij =

n−1∑k=0

MikNkj = MikNkj

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 39 / 59

Page 40: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

数学的準備

線形代数の復習:行列のかけ算

(LM)N = L (MN)

(L+M)N = LN +MN

MI = IM = M (I:単位行列)

一般には非可換:MN ̸= NM

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 40 / 59

Page 41: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

数学的準備

線形代数の復習:逆行列

正方行列M に対してMN = NM = I

という行列N を逆行列という。逆行列を

M−1

と書く。

一般には逆行列を求めるのは大変(計算量が多い)glMatrix.js(後述)では 4行 4列の逆行列を求める関数が組み込まれている。

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 41 / 59

Page 42: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

数学的準備

線形代数の復習:行列式

正方行列に対してdet (M)

det (I) = 1

det (MN) = det (M) det (N)

det(M t

)= det (M)

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 42 / 59

Page 43: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

数学的準備

線形代数の復習:行列の転置

行列M の成分をMij (i, j = 0, 1, . . . , n− 1)

転置行列をM tと書くaを数、M とN を行列として

(aM)t = aM t

(M +N)t = M t +N t(M t

)t= M

(MN)t = N tM t

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 43 / 59

Page 44: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

数学的準備

線形代数の復習:行列のトレース

tr(M) =n−1∑i=0

Mii

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 44 / 59

Page 45: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

数学的準備

線形代数の復習:直交行列

MM t = M tM = I

を満たす正方行列M を直交行列という。

M t = M−1

det (M) = ±1

M tも直交行列。直交行列はベクトルの長さを変えない:

|Mu| = |u|

直交する二つのベクトルを直交行列で変換しても直交したまま。

u · v = 0 ⇐⇒ (Mu) · (Mv) = 0

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 45 / 59

Page 46: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

数学的準備

3次元空間中の平面

点 pを通り、ベクトル uとベクトル vで張られる平面の式:

x = p+ su+ tv

単位ベクトル n ≡ u× v/|u× v|を使えば、

n · x+ d = 0

nを法線ベクトルという。f(x) = n · x+ dとするとf(x0) = 0 ⇐⇒ 点 x0はこの平面の上f(x0) > 0 ⇐⇒ 点 x0は p+ n側にあるf(x0) < 0 ⇐⇒ 点 x0は p− n側にある

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 46 / 59

Page 47: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

数学的準備

面積

3点 p, q, rを頂点とする 3角形の面積

S =1

2|(p− r)× (q − r)|

x-y平面上におかれた n角形の面積

S =1

2

n−1∑i=0

(xi yi+1 − yi xi+1) =1

2

n−1∑i=0

{xi (yi+1 − yi−1)}

添字は mod (n)をとる。

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 47 / 59

Page 48: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

数学的準備

体積

原点を基点とする 3つのベクトル u,v,wが張る平行 6面体の体積

V = u · (v ×w) = v · (w × u) = w · (u× v)

w

u

v

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 48 / 59

Page 49: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

数学的準備

同次座標

3次元 =⇒ 4次元3次元空間の位置座標 x

yz

=⇒

xyz1

3次元空間のベクトル vx

vyvz

=⇒

vxvyvz0

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 49 / 59

Page 50: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

数学的準備

同次座標

行列

M =

M00 M01 M02 0M10 M11 M12 0M20 M21 M22 00 0 0 1

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 50 / 59

Page 51: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

数学的準備

平行移動

x′

y′

z′

=

x+ txy + tyz + tz

(4)

これを x′

y′

z′

= T (tx, ty, tz)

xyz

(5)

と書けるような 3行 3列の行列 T は存在しない。⇒ 4行 4列にすればOK.

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 51 / 59

Page 52: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

数学的準備

平行移動

平行移動行列

T (tx, ty, tz) =

1 0 0 tx0 1 0 ty0 0 1 tz0 0 0 1

. (6)

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 52 / 59

Page 53: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

数学的準備

回転

z軸の周りの回転

Rz(θ) =

cos θ − sin θ 0 0sin θ cos θ 0 00 0 1 00 0 0 1

. (7)

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 53 / 59

Page 54: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

数学的準備

スケール変換

S(sx, sy, sz) =

sx 0 0 00 sy 0 00 0 sz 00 0 0 1

. (8)

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 54 / 59

Page 55: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

数学的準備

剪断

Hxy(β) =

1 β 0 00 1 0 00 0 1 00 0 0 1

. (9)

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 55 / 59

Page 56: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

数学的準備

座標変換の合成アフィン変換は非可換。一般に

M1M2 ̸= M2M1

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 56 / 59

Page 57: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

数学的準備

座標変換の合成アフィン変換は非可換。一般に

RT ̸= TR

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 57 / 59

Page 58: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

数学的準備

座標変換の合成アフィン変換は非可換

RT ̸= TR

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 58 / 59

Page 59: CG 基礎、数学的準備 - Kobe University · 標準ビューボリューム内の座標を正規化デバイス座標(Normalized Device Coordinates, NDC)と呼ぶ。 ジオメトリステージの役割は、アプリケーションが設定したCG世界を

数学的準備

演習:機能の確認

WebGL公式ページhttp://www.khronos.org/webgl/

デモ集http://www.khronos.org/webgl/wiki/Demo_Repository

Safariでのソースコード表示方法:

• 開発メニュー• → ページのソースを表示

Kageyama (Kobe Univ.) 情報可視化論 2015.04.28 59 / 59


Recommended