奥行きソートとシェーディング

奥行きソート法

レイトレーシング法(Ray Tracing)


シェーディング

影の種類

光源の種類

光の分類


シェーディングモデル

項目 内容
環境光(Ambient) 周囲からの間接的な光。全体を少し明るくする
拡散反射光(Diffuse) 光が表面に当たり、全方向に散乱する光
鏡面反射光(Specular) 光沢やハイライトのような反射成分

合成光の式

  I(rgb) = Id(rgb) + Is(rgb) + Ia(rgb)

環境光の計算式

I(r,g,b) = Ka(r,g,b) * Ia(r,g,b)

拡散反射の計算

Id = kd * I * cos(α)

鏡面反射(フォンモデル)

Is = W(α) * I * cos^n(γ)

シェーディングモデルの改良系


レイトレーシングの利点と限界

屈折


シェーディングの手法(塗り方)

方法 特徴
[0] コンスタントシェーディング 面ごとに一定の色で塗る。簡単だが不自然に見える
[1] グロー(グーロー)シェーディング 頂点で計算した色を、面内で線形補間する。滑らかだがハイライトが不自然
[2] フォン(Phong)シェーディング 面内で法線を補間し、ピクセル単位で反射計算を行う。より自然で滑らか

ノンフォトリアリスティック表現とプロシージャル技術まとめ

ノンフォトリアリスティック表現(NPR)

* ハッチング(Hatching)

* デジタルハーフトーニング(Digital Halftoning)

* 疑似カラー(Pseudo Color)

プロシージャル技術(手続き型生成)

Proceduralとは?

* 「決まった手順に従って処理する」意味。 * 主に以下のような手順:

1. データを取得する
2. データから特性(範囲など)を分析する
3. 特性に応じて色や形などを生成する
4. それを毎フレーム、またはリアルタイムで行う

\

プロシージャルの応用例

* プロシージャル生成(Procedural Generation)

* プロシージャルテクスチャ

* プロシージャルモデリング

* プロシージャルアニメーション

\

自然現象のシミュレーション

* 対象:炎、煙、水、霧、爆発、雲など * 手法

* AIとの連携

L-System

* 植物の成長過程を再帰的に記述できる形式言語。 * フラクタル的な形状の生成に適している。

\

キャラクターアニメーション技術

\

FFD(自由形状変形)

* Free-Form Deformation:モデル全体を囲む空間を変形させ、形状を間接的に変形。 * 曲げる、ねじるなど複雑な変形を簡単に制御可能。

スケルトンアニメーション

* 骨(スケルトン):関節を持つ階層構造 * スキン:骨に影響を受ける外形(メッシュ)

キネマティクス

* FK(フォワードキネマティクス):根本から順に動かして最終位置を決定 * IK(インバースキネマティクス):手先の位置から関節の角度を逆算

リギング(Rigging)

* モデルに骨(ボーン)を仕込み、アニメーション制御しやすくする設定作業 * ウェイト調整・IK設定・ボーン構造の設計などを含む * 担当者を リガー(Rigger) と呼ぶ

パスアニメーション

* 移動軌跡(パス)を与え、スプライン補間で滑らかな動きを作る

モーションキャプチャ

* 光学式:マーカーをカメラで追跡 * 機械式:加速度センサーなどを使って動きを記録

モーションブレンド

* 2つのモーションの間を補間して、滑らかな遷移を作る * 例:歩く→走る、ジャンプ→着地

特殊なアニメーション技術

表情アニメーション

* ばねモデルなどで筋肉の動きを再現 * リップシンク:音声と口の形を同期(AIで自動生成も可能)

布のアニメーション

* クロスシミュレーション:布の挙動をばねと質点でモデル化

髪の毛(ファー)

* 多数の細いパーティクル * 個別の髪+全体の動き(流体的)をシミュレーション

群衆(フロック)

* 群れのような集団の動きをアルゴリズムで制御

物理ベースアニメーション

* 剛体:変形しない物体(ボールなど) * 弾性体:伸び縮みする物体(ロープ、へびなど) * 数値計算(例:オイラー法)で物理運動を再現

衝突判定(Collision Detection)

* 物体同士が接触したかを調べる処理 * バウンディングボックス(Bounding Box)

合成・実写技術とCG

実写とCGの合成

* ダブルバッファリング:フレームバッファを2枚使って滑らかに表示

VR・ARでの合成

* 実世界の映像とCGをリアルタイム合成 * プログラマブルシェーダ:GPUのシェーディングをカスタマイズ可能

ゲーム物理

* ゲーム内の世界に物理ルールを導入 * 衝突、摩擦、重力などを物理エンジンで再現