« 海外大学とのオンラインによる交流クラス(英語で取り組むワークショップ #4) | トップページ | 絡み可視化システムの公開 »

環境マッピングの原理

2021年6月 5日 (土) 投稿者: メディア技術コース

 ゲーム作品などのCG映像で、表面全体が金属のようにテカテカして周囲の景色を反射させる物体がときどき登場します。景色の画像を物体表面に写しこむこの技術は「環境マッピング」と呼ばれます。
 
 3年生向け講義「3次元コンピュータグラフィックス論」の昨日の授業では環境マッピングの原理を説明しました。
 
Photo_20210605110601   

 まず「マッピング」全般の基本的アイディアは、3次元形状表面の各三角形頂点に、元画像中の望ましい対応点の座標を割り当てることです。これをテクスチャ座標といいます。元画像はテクスチャ画像と呼ばれます。通常は各頂点に一度割り当てたテクスチャ座標は変えません。これにより物体表面にテクスチャ画像が貼りついて見える効果が出ます(コンピュータ側がどう処理するかはここでは省略します)。
 
 環境マッピングは、CGで描画するたびに各頂点のテクスチャ座標を計算により変化させます。描画時の視点と物体との位置関係に応じてうまく変化させると、画像が物体表面を滑るように移動し、あたかも周囲の景色が映り込んでいるかのように見えます。
 
 テクスチャ画像としては周囲全体のほとんどすべての景色の色を集約させた写真を用意します。実際に完全に反射する金属球をカメラ撮影することによりそのような環境画像を取得します(下図の右上)。
 
Photo_20210605105402 

 ちょうど球をぴったり囲む正方形のテクスチャ画像を用意します(図左下)。テクスチャ座標は左下が(0,0)、右上が(1,1)、球が円に見えるその円の中心点が(0.5,0.5)です。
 
 描画時には、視点を原点、視線をz軸とする「視点座標系」に物体表面の各頂点座標が毎回変換されます。このとき頂点に別途設定済の法線ベクトル(表面に垂直な向き)も視点座標系にもれなく変換されます。例えば視線に平行な法線ベクトルの(x,y,z)は(0,0,1)となります。そのような点では表面が視線に向かって正面を向いていることになります。
 
 環境マッピングではこの法線ベクトルの(x,y)だけを使います。法線ベクトルにちょっと計算を加えると、環境を集約させたテクスチャ画像のうち、その点で視線が反射した先の場所のテクスチャ座標が求まります。具体的には、法線のxyそれぞれに1を加え2で割った結果をテクスチャ座標として利用します。視線に正面を向く点の法線(0,0)はテクスチャ座標(0.5,0.5)になります。テクスチャ画像の中央ですから、まさに視点側の向きが映り込んだ場所ですね。
 
 実は正面以外の向きの頂点でも、同じ計算で正しい反射先の色(画素)を環境画像からコピーできます。このような処理を視点や物体位置が変わる描画のたびに全頂点に対して行います。これが環境マッピングの原理です。
 
メディア学部 柿本正憲

在学生向け」カテゴリの記事

授業紹介」カテゴリの記事

高校生向け」カテゴリの記事

« 海外大学とのオンラインによる交流クラス(英語で取り組むワークショップ #4) | トップページ | 絡み可視化システムの公開 »