
マイケル
みなさんこんにちは!
マイケルです!

エレキベア
こんにちクマ〜〜〜

マイケル
突然ですが、今後CG関係の仕事が増えることになったため
CG-ARTSが主催する CGエンジニア検定 エキスパート なる試験を受けてみることにしました。

エレキベア
聞いたことないクマ・・・

マイケル
試験日が近づいてきたため、その教科書となっている
コンピュータグラフィックス
内の用語をまとめてみようと思います!
ざっくりとした内容にはなっていますが、同じく試験を受ける方や気になっている方はご参考ください。

▲CGエンジニア検定の教科書


エレキベア
おお〜〜〜
なんかしっかりしてそうクマ

マイケル
章の構成としては
・CGとディジタルカメラモデル
・座標変換とパイプライン
・モデリング
・レンダリング
・アニメーション
・画像処理
・視覚に訴えるグラフィックス
・CGシステム
となっていて、CG関連の知識について幅広く教科書的な内容で載っています。
普段ゲーム開発を行なっているエンジニアでも知らない情報が混在していると思うので、情報収集や知識を固めるのにおすすめの内容でした。

エレキベア
書店であまり見ないクマが、適当な参考書を読むより全然よさそうくまね

マイケル
今回はモデリング以降の章の内容をピックアップしてまとめています。
座標変換に関しては以前まとめた記事があるので、気になる方はこちらもご参照ください。

【C++】第三回 C++を使ったゲーム開発 〜3Dゲーム開発基礎 OpenGLと座標変換編〜
2021-10-10

エレキベア
座標変換は数学的な部分が大きいクマからね

マイケル
それでは内容について見ていきます。
モデリング

マイケル
まずモデリングについては下記のような内容になっています。
主に3Dモデルの製作手法やその仕組みについて記載されていました。
モデリングに関する用語
種類 | 用語 | 概要 |
---|---|---|
形状表現 | CSG表現 | プリミティブと呼ぶ立体を集合演算によって組み合わせることで表現する |
境界表現 | 頂点、稜線、面のデータと接続関係をグラフで保持することにより立体を表現する(B-reos) | |
スイープ表現 | 立体の断面を表す2次元図形を、決められた軌道に沿って移動した時の軌跡として形状を表現する | |
境界表現 | ウイングドエッジ構造 | 稜線を中心として表すことで、格納する配列の要素を固定長となるように接続関係を管理するもの |
ハーフエッジ構造 | 左右の面に属する場合に、向きが異なる2つの稜線として考える | |
オイラー操作 | 二多様面体 | 近傍が円盤と同じ(穴が空いていない)形状 |
非多様面体 | 二多様面体(穴が空いている)形状 | |
オイラーの公式 | 穴を含まない二多様面体では、面の数f、稜線の数e、頂点の数vの間に下記の関係が成り立つ、という定理 v-e+f=2 実際の3Dモデリングでは、シェル(shell)、穴(hole)、リング(ring)も考慮に入れて公式を拡張したものを使用している v-e+f-r=2(r-h) | |
オイラー操作 | オイラーの公式の関係を保持するように操作する変形操作 MEV、MEFなど | |
曲線・曲面の表現形式 | 陽関数形式 | 1つの座標値をほかの座標値の関数で定める形式 y=f(x)など |
陰関数形式 | F(x,y)=0という形で表された関数 交点計算などに適している | |
パラメータ形式 | 個々の座標をパラメータの関数として表現することにより曲線・曲面を定義する x=f(t)、y=g(t)など | |
曲面の表現方法 | 細分割曲面 | 初期メッシュに単純な分割操作を再帰的に適用して滑らかな曲面を得る |
詳細度制御(LOD) | 表示する画素範囲に合わせて、ポリゴンの簡単化を行う制御 | |
平滑化(smoothing) | ポリゴン表面のノイズを取り除き、滑らかにする手法 | |
パラメータ化 | uv展開のような、各頂点に対してパラメータを割り当てる制御 | |
セグメンテーション | 全体の曲面形状を、形状特徴を手がかりとして部分曲面領域に分割すること | |
電子透かし | 透かしと呼ばれる情報をデータに埋め込み、取り出す技術 | |
形状検索 | 検索キーに似ている形状をデータベースから検索する技術 | |
ボリュームを用いた形状表現 | ボクセル | モデルをキューブの集合で表した表現形式 |
八分木 | 3D空間を8分割するのを繰り返しながら形状を検索し表現する手法 | |
メタボール | 球に濃度分布を持たせ、重なった範囲の濃度値が一定以上になった場合に表示させる表現手法 | |
等値面抽出 | 3次元スカラ場から形状を求めるために、f(x,y,z)=0となる等値面を計算する 有名な手法としてマーチングキューブ法がある | |
その他の形状表現法 | パーティクル | 多数の粒子の集まりを用いて表現する手法 |
ポイントベーストモデリング | 点群によって物体を表現する手法 | |
フラクタル | 全体と部分の形状が相似の関係(自己相似性)にある図形のこと、計算によって生成する |

マイケル
そして書籍の中で多く取り上げられているのが、曲線・曲面の表現手法についてです。
基本となるベジェ曲線、スプライン曲線と、それらの問題を解消したNURBS曲線などが紹介されています。
こちらはMayaでも使用されている表現手法です。
パラメトリック曲線の種類
種類 | 概要 |
---|---|
ベジェ曲線 | 複数の制御点{Pi}と混合させる比率tを使用して表される多項式曲線 |
B-スプライン曲線 | 制御点{Pi}とノット列{ti}によって定義された曲線 |
有理ベジェ曲線 | ベジェ曲線の各制御点{Pi}に対応する重み{wi}を加えて定義する曲線 |
NURBS曲線 | スプライン曲線の各制御点{Pi}に対応する重み{wi}を加えて定義する曲線 全ての重みを等しくするとBスプライン曲線、ノット列を(0,0,0,1,1,1)とすると有理ベジェ曲線になる |
各曲線の特徴
特徴 | ベジェ曲線 | Bスプライン曲線 | 有理ベジェ曲線 | NURBS曲線 | |
---|---|---|---|---|---|
凸包性 | 制御点の構成する凸包の内部に存在する | ◯ | ◯ | ◯ | ◯ |
変動減少性 | 制御点列の形状を滑らかにした形になる | ◯ | ◯ | ◯ | ◯ |
局所性 | 制御点を移動した時、曲線の中で変形する部分が限定される | × | ◯ | × | ◯ |
直線再現性 | 直線を再現することができる | ◯ | ◯ | ◯ | ◯ |
アフィン不変性 | アフィン変換を適用して得られる曲線と一致する | ◯ | ◯ | ◯ | ◯ |
2次曲線の再現性 | 円や楕円、双曲線を正確に表現できる | × | × | ◯ | ◯ |
射影不変性 | 射影変換を適用した結果と制御点から得られる曲線が一致する | × | × | ◯ | ◯ |

エレキベア
曲線を表現するにもこんなに種類があるのクマね

マイケル
曲線について記載していますが、曲面についても基本的には同じ考えになっています。
この辺りはその内ゲーム数学シリーズあたりで実装してみようかなと思います。

エレキベア
曲線、曲面を操れたら楽しそうクマね
レンダリング

マイケル
そしてレンダリングの内容は下記のようになっています。
こちらはシェーディングやテクスチャマッピングなど、ゲームプログラマにはお馴染みの内容となっています。
レンダリングに関する用語
種類 | 用語 | 概要 |
---|---|---|
写実的表現法 | フォトリアリスティックレンダリング | モデリングされた物体のデータから写実的な画像を作成するための手法 |
ワイヤフレーム表示 | 稜線を透視投影により線画表示したもの | |
デプスキューイング | 遠方の輝度を落とすことで奥行きを出す | |
陰線消去 | 見えない線分を消去して表示する処理 | |
隠面消去 | 見えない面を消去して表示する処理 | |
影付け | 物体にシェーディングを行う | |
テクスチャ | 物体にテクスチャを貼る | |
陰面消去 | バックフェースカリング | 視点から不可視になる面をレンダリングの際にあらかじめ除去しておく手法 |
奥行きソート法(ペインタアルゴリズム) | 可視性の優先順位に従って面をソートし、可視性の低い遠方の面から順にフレームバッファに重ね描きする方法 | |
BSPツリーアルゴリズム | 空間を分離面で2分割していき、2分木構造を用いて優先順位を決定するための情報を記憶する方法 | |
スキャンライン法 | スキャンライン(捜査線)に基づいて隠面消去を行う方法 | |
Zバッファ法 | 奥行き(z座標値)を画素ごとに格納するZバッファを使用して隠面消去を行う方法 | |
レイトレーシング法 | 視点からスクリーンの画素に向かうレイとポリゴンとの交点を計算して描画する方法 | |
シェーディング | 環境光 | 反射により直接光が当たらない部分の光(間接光)を近似したもの 間接光を精度良く計算しうて表示を行う手法としては、ラジオシティ法がある |
拡散反射 | どの方向から見ても物体面の輝度が一定となる反射 | |
鏡面反射 | 物質表面での直接反射によって生じる光 | |
完全鏡面反射・透過・屈折 | 反射や透過・屈折の計算には、レイトレーシング法が用いられる | |
散乱・減衰 | レイトレーシングを拡張したレイマーチング法が用いられる | |
スムーズシェーディング | ポリゴン内の輝度を補間して近似的に滑らかな明るさの表示を行う方法 輝度の補間により行うグローシェーディング、法線ベクトルの補間により行うフォンシェーディングがある | |
マッピング | テクスチャマッピング | 2次元テクスチャを3次元物体に貼り付けて表示する手法 |
バンプマッピング | 凸凹を物体面上にマッピングして表示する手法 | |
環境マッピング | 反射による周囲の映り込みを疑似的に表現する手法 | |
ソリッドテクスチャリング | 3次元情報を持つプロシージャルテクスチャのこと 物体の断面や割れ目等も表現することができる | |
イメージベーストレンダリング | テクスチャマッピングアプローチ | 物体の簡易形状モデルに実写画像をテクスチャマッピングすることで表示を行う方法 |
画像再投影アプローチ | レンジファインダ等により各画素での奥行き値を得て、画像再投影することで異なる視点位置からの画像を生成する方法 | |
パノラマ画像アプローチ | パノラマ画像から領域を切り出して画像を作成するアプローチ | |
ビューモーフィングアプローチ | 撮影方向の異なる2枚の画像から、視点位置や方向を徐々に移動させた時の画像を作成することができる | |
レイデータアプローチ | カメラ位置の異なる多数の画像を例に関するデータベースとして蓄積しておき、その情報を用いて画素の色を決定する レイを4次元の関数で表すルミグラフ、3次元の関数で表すコンセントリックモザイクなどがある | |
イメージベーストライティング | 実写画像から得られた照明環境を用いて3次元形状モデルのシェーディングを行う手法 物体の各頂点における光の伝達をあらかじめ計算しておく前計算放射輝度伝達法(PRT)などがある | |
大域照明計算 | ラジオシティ法 | シーンを構成する物体面を小さなパッチに分割し、各パッチのラジオシティを未知数としたラジオシティ方程式を作成する |
モンテカルロ法 | ランダムに経路を構築する経路追跡法、2段階のレイトレーシングを行うフォトンマッピング法、更にその光源からの部分経路を複数の「直射光を与える仮想点光源」とみなして計算するインスタントラジオシティ法などがある | |
マルコフ連鎖モンテカルロ法(MCMC法) | マルコフ連鎖を作成することで、エネルギーの高い経路を重点的にサンプリングする方法 |

エレキベア
ゲーム製作者になるための3Dグラフィックス技術
とも被っている部分が大きそうクマね

【書籍紹介】「ゲーム制作者になるための3Dグラフィックス技術」に出てくる用語を簡潔にまとめる
2022-12-15
▲ゲーム製作者になるための3Dグラフィックス技術 書籍のまとめ記事
アニメーション

マイケル
アニメーションに関しては難しい用語等は少ないですが、表現手法について分類分け、体系的にまとまっているので整理することができました。
アニメーションに関する用語
種類 | 用語 | 概要 |
---|---|---|
キーフレームアニメーション | キーフレーム法 | キーフレーム間の絵を自動的に補間してアニメーションを生成する手法 |
スケルトン法 | スケルトンという仮想的な骨格をあてはめ、動きに合わせて形状を変化させる手法 | |
形状変形アニメーション | ある画像を別の画像に滑らかに変化させるモーフィング、1枚の画像を対象に変形前後の対応点を指定してモーフィング処理を行うワーピングなどがある | |
自由形状変形(FFD) | 対象形状を含む格子を設定し、格子の頂点を移動させて変形する | |
手続き型アニメーション | 進化・成長のアニメーション | 植物の成長モデルなどにLシステムが応用されることがある |
自然現象のアニメーション | 流体シミュレーション、破壊シミュレーションなどがある | |
パーティクルの応用 | 大量のオブジェクトに対して一括して動きを制御することで建物の爆発、群れ、流体の動きなどを表現できる | |
AIを利用したアニメーション | キャラクタの移動や群集シミュレーションなどにAIが利用されることがある | |
キャラクタアニメーション | フォワードキネマティクス(FK) | 関節の角度を直接指定する方法 |
インバースキネマティクス(IK) | 関節の先端を動かすことで各関節の角度を自動的に求める方法 | |
パスアニメーション | 曲線や曲面などのオブジェクトに沿って移動させてアニメーションを実現する手法 | |
モーションキャプチャによるアニメーション | 人間の自然な動きを表現するため実際の動きを測定しデータ収集しアニメーションを行う | |
筋肉変形アニメーション | 筋肉 → 骨 → 皮下組織 → 皮膚 のように動きの階層構造をモデル化し、筋肉の変形によるアニメーションを表現する | |
表情のアニメーション | リップシンク、表情をモーフィング技術で補間する方法などがある | |
クロスアニメーション | バネ-質点モデルを用いて各時間におけるモデルの動作を算出する手法がある | |
髪の毛のアニメーション | 髪の毛の自然なアニメーションは技術的に難易度が高いため、髪がない、モデリングしやすい髪型にする、髪を動かさない演出をすることが多い | |
物理アニメーション | 剛体の物理シミュレーション | 位置と回転の自由度を持つ |
弾性体の物理シミュレーション | バネ-質点系モデルが用いられる | |
衝突判定 | AABB、GJKアルゴリズムといった方法が用いられる | |
リアルタイムアニメーション | ダブルバッファ方式 | 2画面分のフレームを用意して切り替えることでちらつきを解消する手法 |
ゲーム物理 | ゲームエンジンの物理シミュレーション機能を用いて制御する方法がある |

エレキベア
ゲームではリアルタイムアニメーションに当たるクマね
画像処理

マイケル
画像処理に関してはポストエフェクト的な話が多いのと、色についての基礎的な知識について触れられています。
画像処理に関する用語
種類 | 用語 | 概要 |
---|---|---|
色の表現 | 加法混色 | 色を混ぜるごとに白に近づく(RGB) |
減法混色 | 色を混ぜるごとに黒に近づく(CMY) | |
マンセル表色系 | 心理的な観点から色相、明度、彩度で定義したもの | |
RGB表色系 | 定量的な観点からRGBを色の三原色として定めたもの | |
XYZ表色系 | RGBが負の刺激値をもつことの解りにくさの解消を目的としたもの | |
YIQ表色系 | 輝度成分と、他の2次元の色成分とに分けて表現する方法の1つ | |
濃淡、色変換 | ヒストグラム | 横軸に画素値、縦軸にそれぞれの画素値の頻度を取り棒グラフで表したもの |
トーンカーブ | 入力画素値に対する出力画像の画素値をグラフとして対応付けたもの | |
ガンマ変換 | ガンマ値を使用した曲線のトーンカーブを用いて画像を変換する | |
ポスタリゼーション | 階段状のトーンカーブにより変換することでイラスト調のような効果を得ることができる | |
ソラリゼーション | 3次曲線のようなトーンカーブで変換することでネガ画像とポジ画像が混ざりあったような特殊な効果を得ることができる | |
疑似カラー | RGBに対して適当なトーンカーブを用いることで、グレースケールに擬似的な色を付けること | |
空間フィルタリング | 平滑化(smoothing) | 画像処理によって滑らかな濃淡変化を画像に与える処理のこと |
エッジを保存した平滑化 | エッジを保ちつつ、細かな変動を平滑化する方法 ある領域の中央値を出力とするメディアンフィルタ、ガウス分布に従う重みを付けた平均化を行うバイラテラルフィルタがある | |
エッジ抽出 | 注目画素とその右となりの画素との差を出力する微分フィルタ、更に差分結果を求めたラプラシアンフィルタ、濃淡を残したままエッジを強調する鮮鋭化フィルタがある | |
エンボス効果 | 画像の濃度差を利用して画像の一部を浮き出たように見せるもの | |
幾何学変換 | ニアレストネイバー | 補間したい点に最も近い画素の濃淡値を求める点の濃淡値とする方法 |
バイリニア補間 | 周囲の4画素の濃淡値を用いて双一次式によって求める方法 | |
バイキュービック補間 | 周囲の4画素の濃淡値を用いて重み付き平均によって求める方法 | |
再標本化時のアンチエイリアシング方法 | 変換後の1画素の領域が対応付けられる変換前の領域を求め濃淡値の平均値を設定するプリフィルタリング法、変換後の画素内に複数個のサンプリング点を設け、サンプリング点に対応する色を求めるスーパーサンプリング法がある | |
画像の編集 | イメージモザイキング | 複数の画像を接合して1枚の画像を作成する方法 |
シームカービング | 画像の縦or横サイズを1画素ずつ削除、追加する操作を繰り返すことで画像サイズを変更する方法 | |
ポアソン画像合成 | 色味を貼り付け先の画像にニセ、テクスチャは元の画像に似せた合成を行うことで自然な合成を行うことができる方法 | |
イメージコンプリーション | 削除領域に似ている小領域を画像から探索して当てはめることで補完する方法 |

マイケル
画像処理エンジニア検定というのもあるようなので、そちらは更に詳しい内容に触れられていることでしょう・・・

エレキベア
専用の検定もあるのクマか・・・
視覚に訴えるグラフィックス

マイケル
視覚に訴えるグラフィックスでは、主にデータを可視化する手法が紹介されています。
エンターテインメント業界以外でも、CGは様々な形で役立っていることが実感できました。
視覚に訴えるグラフィックスの用語
種類 | 用語 | 概要 |
---|---|---|
コンピュテーショナルフォトグラフィ | - | 撮影が終了したあとに被写体の任意の場所にピントを合わせ直したり、画像からぶれやぼけを除去したりすることを可能とする技術のこと |
ノンフォトリアリスティックレンダリング | - | 写実的でない画像を生成する技術の総称 |
ハッチング | 同一方向の左縁を何本も並べて描くこと | |
サイエンティフィックビジュアライゼーション | - | 特に科学技術データを対象とした可視化のこと |
3次元スカラデータの可視化 | ボリュームビジュアライゼーション | 3次元ボリュームデータを可視化する方法 |
断面表示 | トリリニア補間を用いて断面上の任意の位置のスカラ値を補間する | |
等値面表示 | ポリゴンを用いて離散的に表現し、既存のレンダリング手法を用いて描画する | |
ボリュームレンダリング | ボリュームデータ内の各点をスクリーンに組織的に投影する | |
2次元流れ場の可視化手法 | 粒子追跡法 | 流されるもの(トレーサ)の軌跡を描くことで流れ場を把握する |
線積分たたみ込み法(LIC) | ホワイトノイズ画像を流れ場に沿ってぼやけさせた画像から、龍泉が通過する画素のたたみ込みを計算する方式 | |
3次元流れ場の可視化手法 | ヘッジホッグ法 | 3次元の矢印グリフを多数描く方法 |
フリープローブ | 流速、回転、曲率、せん断、加速度、収束・発散の情報を同時に表現できるグリフ | |
情報可視化 | 二色塗分け法 | データを等間隔に区分けし、色を塗り分ける |
シティスケープ法 | 3次元の棒グラフに相当する | |
散布図マトリクス | 散布図を行列上に並べる | |
平行座標系表示 | 複数の数直線を平行に置き、個々の属性値を折れ線で結ぶ | |
星状グリフ | 数直線を放射状に並べる | |
ノード&リンクダイアグラム | 階層的な情報構造を2次元的に可視化する | |
ツリーマップ | 上位の階層から順にラスタを分割する | |
平安京ビュー | ノードを短形領域で表現し、入れ子構造で表現する | |
コーンツリー | ノード&リンクダイアグラムを3次元化したもの |

エレキベア
建築系や医療系でもかなり役に立っていそうくまね
CGシステム

マイケル
最後にCGシステムの章では、CGを実現するためのハードウェア、ソフトウェア周りの手法が紹介されています。
グラフィックスAPIなどの話もありましたが、用語として覚えにくかった3次元データ出力装置の部分のみまとめました。
CGシステムの用語
種類 | 用語 | 概要 |
---|---|---|
3次元データ出力装置 | メガネ方式両眼立体視 | アナグリフ方式、偏光メガネ方式、時分割シャッタメガネ方式、多波長分割メガネ方式などがある |
メガネなし方式裸眼立体視 | パララックスバリア方式、レンティキュラ方式などがある | |
ホログラフィ | 照明光が物体表面で反射した光と、照明光と同じ光源から分岐した参照光の干渉によって生じる干渉縞を記録することで生成する | |
ボリュームディスプレイ | 3次元空間に光点を描く技術 |

エレキベア
パララックスバリア、レンティキュラなんて言葉は初めて聞いたクマ・・・
おわりに

マイケル
というわけで今回はコンピュータグラフィックスについてまとめてみました!
どうだったかな??

エレキベア
ほんとに幅広く紹介されてていい書籍だと思ったクマ

マイケル
こういった用語は覚えておいて損はないし、曲線や曲面について触れられている書籍も少ないので、ゲーム開発に携わるエンジニアは一読することをおすすめします!

マイケル
というわけで今回はこの辺で!
試験は明日なのでがんばってきます・・・

エレキベア
(めっちゃ直前クマ・・・)
【書籍紹介】「コンピュータグラフィックス」に出てくる用語をまとめる 〜完〜