30
1 ボリュームレンダリングを 学ぶ 教科書 11

ボリュームレンダリングを 学ぶ - ocw.nagoya-u.jpocw.nagoya-u.jp/files/34/CS13.pdf · 4 ボリュームビジュアライゼーション zボリュームデータから断面の画像を描くことや内

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ボリュームレンダリングを 学ぶ - ocw.nagoya-u.jpocw.nagoya-u.jp/files/34/CS13.pdf · 4 ボリュームビジュアライゼーション zボリュームデータから断面の画像を描くことや内

1

ボリュームレンダリングを学ぶ

教科書 11章

Page 2: ボリュームレンダリングを 学ぶ - ocw.nagoya-u.jpocw.nagoya-u.jp/files/34/CS13.pdf · 4 ボリュームビジュアライゼーション zボリュームデータから断面の画像を描くことや内

2

ボリュームデータ

3次元空間に分布するデータを離散的に計測あるいは計算された3次元格子点 (x,y,z)=(x0,y0,z0), (x1,y0,z0),…, (xL,yM,zN) における属性値 v(x,y,z) をボリュームデータあ

るいはボクセルデータと呼ぶ.属性値には,X線吸収量,密度,濃度,熱,圧力などのスカラー

値関数や速度などのベクトル値関数が選ばれる.

周期的に配置された立方体の単体をセル(cell)と呼ぶ.

一方,画像を構成する微小正方形を画素(pixel)と呼んだのに対して,3次元空間を構成する微小立方体のことをボクセル(voxel)と呼ぶ.

Page 3: ボリュームレンダリングを 学ぶ - ocw.nagoya-u.jpocw.nagoya-u.jp/files/34/CS13.pdf · 4 ボリュームビジュアライゼーション zボリュームデータから断面の画像を描くことや内

3

ボリュームデータ(cont.)

ボリュームデータは,セル内の属性値の分布を平均化した値をボクセルの属性値に割り当てたデータ構造と考えることができる.

ボクセルのイメージ

セル

Page 4: ボリュームレンダリングを 学ぶ - ocw.nagoya-u.jpocw.nagoya-u.jp/files/34/CS13.pdf · 4 ボリュームビジュアライゼーション zボリュームデータから断面の画像を描くことや内

4

ボリュームビジュアライゼーション

ボリュームデータから断面の画像を描くことや内部を透視する技術をボリュームビジュアライゼーション(volume visualization)と呼ぶ.

ボリュームレンダリング

サーフェイスレンダリング

Page 5: ボリュームレンダリングを 学ぶ - ocw.nagoya-u.jpocw.nagoya-u.jp/files/34/CS13.pdf · 4 ボリュームビジュアライゼーション zボリュームデータから断面の画像を描くことや内

5

ボリュームレンダリング

視点からの光線(レイ)がボリュームを通過する際の減衰を考慮して光を追跡する方法をボリュームレンダリング(volume rendering)と呼ぶ.

ボリュームレンダリングのアルゴリズム

ボリュームデータと色および不透明度の関係(式あるいはテーブル)を定義する.

ボリュームデータの値

不透明度

ボリュームデータの値3原色の強度 R G B

Page 6: ボリュームレンダリングを 学ぶ - ocw.nagoya-u.jpocw.nagoya-u.jp/files/34/CS13.pdf · 4 ボリュームビジュアライゼーション zボリュームデータから断面の画像を描くことや内

6

ボリュームレンダリング(cont.)ボリュームレンダリングのアルゴリズム(cont.)

レイの方向に輝度を計算していくためのサンプリング点におけるボリュームデータ v(x,y,z) を格子点のデータから補間する.

レイの方向に輝度を計算していくサンプリング間隔は,一般に,ボリュームデータの格子間隔よりも小さく取られる.

通常,3重線形補間が用いられる.

ただし,Li(x,y,z) は格子点 i で1,それ以外の格子点で0となる

x,y,z の線形関数

サンプリング点

ボクセル

( ) ( )8

1, , , ,i i

iv x y z v L x y z

=

=∑

Page 7: ボリュームレンダリングを 学ぶ - ocw.nagoya-u.jpocw.nagoya-u.jp/files/34/CS13.pdf · 4 ボリュームビジュアライゼーション zボリュームデータから断面の画像を描くことや内

7

ボリュームレンダリング(cont.)

ボリュームレンダリングのアルゴリズム(cont.)レイの方向にサンプリング点 i の不透明度 αi を足していき,∑i=1

m αi =1 となるか,あるいは格子がなくなったときのサンプリング点の数を m として,次のアルゴリズムで(3原色ごとに)輝度を計算する.

( ) ( )

( )( ) ( ) ( )

:for 1 to 1 do

: 1

I I m mi m

I I i I i i

α

α α

=

= −

= − +

Page 8: ボリュームレンダリングを 学ぶ - ocw.nagoya-u.jpocw.nagoya-u.jp/files/34/CS13.pdf · 4 ボリュームビジュアライゼーション zボリュームデータから断面の画像を描くことや内

8

ボリュームレンダリング(cont.)

勾配を利用したボリュームレンダリングボリュームデータの勾配(格子点データ)は x,y,z 方向

の差分によって計算できる.

( )( ) ( )( ) ( )( ) ( )

1 1

1 1

1 1

, , , ,1, , , , , ,2

, , , ,

i j k i j k

i j k i j k i j k

i j k i j k

v x y z v x y z

v x y z v x y z v x y z

v x y z v x y z

+ −

+ −

+ −

⎧ ⎫−⎪ ⎪⎪ ⎪∇ = −⎨ ⎬⎪ ⎪

−⎪ ⎪⎩ ⎭

Page 9: ボリュームレンダリングを 学ぶ - ocw.nagoya-u.jpocw.nagoya-u.jp/files/34/CS13.pdf · 4 ボリュームビジュアライゼーション zボリュームデータから断面の画像を描くことや内

9

ボリュームレンダリング(cont.)

勾配を利用したボリュームレンダリング(cont.)格子 i の不透明度 αi を次式で計算することで異なる成分 va, αa と vb, αbの境界を強調することができる.

フォンのシェーディングモデルI= Id+ Is+ Ia

= Iin Kd cosθ + Iin Ks (cosα)n+ Iamp Ka

( )

( )

0 ,

i a b ii b a a i b

b a b ai

a b

v v v vv v v vv v v v

v v v v

α αα

⎧ ⎛ ⎞− −∇ + ≤ ≤⎪ ⎜ ⎟− −= ⎨ ⎝ ⎠

⎪ < >⎩

Page 10: ボリュームレンダリングを 学ぶ - ocw.nagoya-u.jpocw.nagoya-u.jp/files/34/CS13.pdf · 4 ボリュームビジュアライゼーション zボリュームデータから断面の画像を描くことや内

10

サーフェイスレンダリング

ボリュームデータから等値面(isosurface)を求め

て,通常のレンダリングを行う.

マーチングキューブ法

アルゴリズムが簡単である.

再構成表面が滑らかである.

パッチの欠落が生じる可能性を有する.

Page 11: ボリュームレンダリングを 学ぶ - ocw.nagoya-u.jpocw.nagoya-u.jp/files/34/CS13.pdf · 4 ボリュームビジュアライゼーション zボリュームデータから断面の画像を描くことや内

11

サーフェイスレンダリング(cont.)

マーチングキューブ法

ボリュームデータ(格子点データ)から格子内部の等値面を基本パターンへの場合分けに基づいて求める方法をマーチングキューブ法(marching cubes method)と呼ぶ.

1格子を構成する 8 節点で,求めようとする等値面の閾値を基準にして,(−,0,+) の3通りの場合があることから,パターンの総数は 28=256 となる.

位相の同じパターンを整理すると

14 となる.

Page 12: ボリュームレンダリングを 学ぶ - ocw.nagoya-u.jpocw.nagoya-u.jp/files/34/CS13.pdf · 4 ボリュームビジュアライゼーション zボリュームデータから断面の画像を描くことや内

12

サーフェイスレンダリング(cont.)

マーチングキューブ法(cont.)1格子ごとに 8 節点の格子点データからマッチングす

る基本パターンと基本パターンの移動情報を求める

基本パターンで必要となる交点を計算する.

Page 13: ボリュームレンダリングを 学ぶ - ocw.nagoya-u.jpocw.nagoya-u.jp/files/34/CS13.pdf · 4 ボリュームビジュアライゼーション zボリュームデータから断面の画像を描くことや内

13

アニメーションと変形を学ぶ

教科書 12章

Page 14: ボリュームレンダリングを 学ぶ - ocw.nagoya-u.jpocw.nagoya-u.jp/files/34/CS13.pdf · 4 ボリュームビジュアライゼーション zボリュームデータから断面の画像を描くことや内

14

アニメーションとは

短い時間間隔で異なる図形あるいは立体を連続的に表示することで図形あるいは立体の動画を表現する方法をアニメーション(animation)と呼

ぶ.狭義のアニメーション(2+1次元)

3Dアニメーション

Page 15: ボリュームレンダリングを 学ぶ - ocw.nagoya-u.jpocw.nagoya-u.jp/files/34/CS13.pdf · 4 ボリュームビジュアライゼーション zボリュームデータから断面の画像を描くことや内

15

アニメーションの仕組み

アニメーションの仕組み

残像効果

人間の視覚系は連続した動きをもつ静止画を短い時間間隔で逐次見せられると,あたかも動いているように感じる.

1秒間に 8~10 枚以上であれば滑らかな動きに感じる.

映画: 24フレーム/秒テレビ: 30フレーム/秒手書きアニメーション: 8 あるいは 12 フレーム/秒CGアニメーション: 24 あるいは 30 フレーム/秒

Page 16: ボリュームレンダリングを 学ぶ - ocw.nagoya-u.jpocw.nagoya-u.jp/files/34/CS13.pdf · 4 ボリュームビジュアライゼーション zボリュームデータから断面の画像を描くことや内

16

アニメーションの仕組み(cont.)

アニメーション制作の流れ 全体企画

シナリオキャラクタデザイン

場面設定絵コンテ

原画中割

トレース彩色撮影

モデリング動きの設定レンダリングビデオ出力

編集/音楽・効果/合成

完成

セルアニメーション

CGアニ

メーション

Page 17: ボリュームレンダリングを 学ぶ - ocw.nagoya-u.jpocw.nagoya-u.jp/files/34/CS13.pdf · 4 ボリュームビジュアライゼーション zボリュームデータから断面の画像を描くことや内

17

キーフレーム法

動きのポイントとなるフレーム(キーフレーム)が与えられた場合,それらを繋ぐフレーム(中割)をコンピュータの補間計算によって生成する方法をキーフレーム法(key frame method) と呼ぶ.

キーフレーム キーフレーム中割 中割 中割

Page 18: ボリュームレンダリングを 学ぶ - ocw.nagoya-u.jpocw.nagoya-u.jp/files/34/CS13.pdf · 4 ボリュームビジュアライゼーション zボリュームデータから断面の画像を描くことや内

18

キーフレーム法

2次元CGデジタル化された画像をキーフレームとして用い,対応点間の色の補間によって中間の画像を生成する.

3次元CGキーフレームのモデリングデータを補間して,中間フレームのモデリングデータを生成し,フレームごとにレンダリングを行う.

Page 19: ボリュームレンダリングを 学ぶ - ocw.nagoya-u.jpocw.nagoya-u.jp/files/34/CS13.pdf · 4 ボリュームビジュアライゼーション zボリュームデータから断面の画像を描くことや内

19

動きの設定方法

通常はアニメータ(制作者)が直感に基づいて動きの設定を行うが,それをサポートする方法が開発されている.

関数を用いた動きの生成

回転,振動,等加速度運動,弾性体の衝突のような物理法則に従う単純な動きを関数を使って生成する.

Page 20: ボリュームレンダリングを 学ぶ - ocw.nagoya-u.jpocw.nagoya-u.jp/files/34/CS13.pdf · 4 ボリュームビジュアライゼーション zボリュームデータから断面の画像を描くことや内

20

動きの設定方法(cont.)

動きの設定をサポートする方法(cont.)スケルトン法

対象モデル上にスケルトン(骨格)を設定し,対象モデルの表面はスケルトンに連動して動くように関連付けておき,スケルトンを動かすことで全体の動きを生成する.

Page 21: ボリュームレンダリングを 学ぶ - ocw.nagoya-u.jpocw.nagoya-u.jp/files/34/CS13.pdf · 4 ボリュームビジュアライゼーション zボリュームデータから断面の画像を描くことや内

21

動きの設定方法(cont.)

動きの設定をサポートする方法(cont.)運動学

対象モデルの幾何学的データと拘束条件から,対象モデルの制御パラメータ(アクチュエータの変位や角変位など)を与えて一般化変位の適合条件式から対象モデルの姿勢パラメータ(モデリングデータ)を計算する方法を順運動学(forward kinematics)による方法と呼ぶ.

一方,姿勢パラメータを与えて制御パラメータを一般化変位の適合条件式の逆計算によって求める方法を逆運動学(inverse kinematics)による方法と呼ぶ.

Page 22: ボリュームレンダリングを 学ぶ - ocw.nagoya-u.jpocw.nagoya-u.jp/files/34/CS13.pdf · 4 ボリュームビジュアライゼーション zボリュームデータから断面の画像を描くことや内

22

動きの設定方法(cont.)

動きの設定をサポートする方法(cont.)動力学

対象モデルの物理量(質量,剛性,減衰係数)と駆動力,変位の初期値を与えて,運動方程式から対象モデルの姿勢パラメータ(モデリングデータ)の時間変化(変位,速度,加速度)を計算する方法を順動力学(forward dynamics)による方法と呼ぶ.

一方,姿勢パラメータの時間変化(変位,速度,加速度)を与えて駆動力を計算する方法を逆動力学(inverse dynamics)による方法と呼ぶ.

Page 23: ボリュームレンダリングを 学ぶ - ocw.nagoya-u.jpocw.nagoya-u.jp/files/34/CS13.pdf · 4 ボリュームビジュアライゼーション zボリュームデータから断面の画像を描くことや内

23

微粒子法

煙や雲の流れ,燃焼のような物理現象を,場の方程式(偏微分方程式)を解くことで個々の粒子の動きを求める方法を微粒子法(particle method)と呼ぶ.

一般には何らかの近似を行う場合が多い.

Page 24: ボリュームレンダリングを 学ぶ - ocw.nagoya-u.jpocw.nagoya-u.jp/files/34/CS13.pdf · 4 ボリュームビジュアライゼーション zボリュームデータから断面の画像を描くことや内

24

変形

モーフィング

2つの対象モデル間の対応点を決めておいて,中間のフレームを形状や色を変えながら補間・変形する方法をモーフィング(morphing)と呼ぶ.

語源は metamorphosis (変形)である.

Page 25: ボリュームレンダリングを 学ぶ - ocw.nagoya-u.jpocw.nagoya-u.jp/files/34/CS13.pdf · 4 ボリュームビジュアライゼーション zボリュームデータから断面の画像を描くことや内

25

変形(cont.)

モーフィング(cont.)対象モデルの制御点を動かすとその周囲の頂点が動く関係を設定しておいて,変形を制御する方法もモーフィングと呼ばれる.

Page 26: ボリュームレンダリングを 学ぶ - ocw.nagoya-u.jpocw.nagoya-u.jp/files/34/CS13.pdf · 4 ボリュームビジュアライゼーション zボリュームデータから断面の画像を描くことや内

26

変形

自由形状変形

対象モデルの周囲の空間をゆがめることで対象モデルを変形させる方法を自由形状変形(free form deformation)と呼ぶ.

制御点 Pijk,空間内の点 X

( ) ( ) ( ) ( )

( ) ( )0 0 0

, ,

1

l m nl m ni j k ijk

i j k

l il ii n l

s t u B s B t B u

B s C s s

= = =

=

= −

∑∑∑X P

Page 27: ボリュームレンダリングを 学ぶ - ocw.nagoya-u.jpocw.nagoya-u.jp/files/34/CS13.pdf · 4 ボリュームビジュアライゼーション zボリュームデータから断面の画像を描くことや内

27

動きの入力法

モーションキャプチャリング実物の人間や動物の動きを装着したマーカーごとに計測して,そのデータを用いて対象モデルの動きを制作する方法をモーションキャプチャリング(motion capturing)と呼ぶ.

光学方式マーカーを複数のビデオカメラで撮影し,

三角測量の原理で位置を計算する.

センサ式空間位置や関節の曲げ角を装着したセ

ンサにより計測する.

Page 28: ボリュームレンダリングを 学ぶ - ocw.nagoya-u.jpocw.nagoya-u.jp/files/34/CS13.pdf · 4 ボリュームビジュアライゼーション zボリュームデータから断面の画像を描くことや内

28

動きの入力法(cont.)

モーションコントロールカメラ

模型の動きを視点を動かしながら撮影するときに用いられるビデオカメラをモーションコントロールカメラ(motion controlled camera)と呼ぶ.

実写映像に合わせてCGアニ

メーションを合成する際に必要

となるビデオカメラの同期が可

能となる.

Page 29: ボリュームレンダリングを 学ぶ - ocw.nagoya-u.jpocw.nagoya-u.jp/files/34/CS13.pdf · 4 ボリュームビジュアライゼーション zボリュームデータから断面の画像を描くことや内

29

モーションブラー

フレーム間でのモデルの変位が大きくなるとちらつきが生ずる.そのような場合に,動く物体を故意に残像を描くことで動きをスムーズに見せる方法をモーションブラー(motion blur)と呼ぶ.

Page 30: ボリュームレンダリングを 学ぶ - ocw.nagoya-u.jpocw.nagoya-u.jp/files/34/CS13.pdf · 4 ボリュームビジュアライゼーション zボリュームデータから断面の画像を描くことや内

30

参考文献

1. コンピュータグラフィックス, 前川佳徳(編著), オーム社, 2001.

2. 3次元CGの基礎と応用, 千葉則茂,土井章男著, サイエンス社, 2004.