まず[図1]のような3次元座標を考える。原点に視点があるとして、座標空間内の3次元座標を持つ点Aの見え方は、投影法によって左右される。 [図2]のように原点と点Aの間にスクリーンを置いた場合、スクリーン平面上に映し出される点Aの投影座標は h = x × s / z {\displaystyle h=x\times {}s/z} 、 v = y × s / z {\displaystyle v=y\times {}s/z} で求められる。 z {\displaystyle z} が大きくなれば、スクリーン上の点Aは限りなく原点に近づく。つまり遠くのものは小さく見えるわけである。スクリーンを置く座標 s {\displaystyle s} は大きくなればパース(遠近感)が緩く、小さくなればパースがきつくなるので、レンズの画角(視野角)を表現することができる。これが透視投影 (perspective projection) の原理である。 透視投影によりスクリーン上で各物体の遠近関係が表現されるが、画角によって画面上のサイズや印象が大きく変わるため、モデリングの際の正確な寸法や形状確認といった目的には適さないことがある。その場合、視点と物体の間の距離とは無関係にそのまま平行に投影する手法[1]が使われることがあり、平行投影 (parallel projection) または正射影 (orthographic projection / orthogonal projection) と呼ばれる。平行投影の視錐台は直方体となる。 いずれにしても、3次元座標を持つ図形を2次元座標系に変換した後で、図形の各点を幾何学的なつながり情報(トポロジー)に基づいてそれぞれ結べばワイヤーフレーム画像が生成され、また結んだ点から面を作ればポリゴンによる表現が可能となる。リアルタイムコンピュータグラフィックスでは、ハードウェア的な制約から、実際にサポートされる最小の図形(プリミティブ)は点・線分・三角形のみであり、それ以上の多角形や立体図形は多数の三角形を組み合わせて表現する。 3DCGの制作は次のような行程にわけることができる。 モデリング(英: modeling)とは、仮想3次元空間上に個々の物体の形状をつくる作業のことである。多くの3DCGソフトウェアでは、一つの面を三角形や四角形といった多角形の集合として表現する。三角形しか扱えないソフトウェアも多い(四角形以上は、それを構成する全ての頂点が同一平面上にない可能性があるため)。これらの多角形はポリゴン(英語で多角形の意)と呼ぶ。各形状はポリゴンの集合で表現される。モデリングで作られた形状をモデルやオブジェクトと呼ぶ。 四角形が扱える場合は、ポリゴンの流れの見やすさなどからも四角形の面をメインとして構成するのが一般的であるが、同一平面上にない空間上の4点を結んで四角形を折り曲げた2つの三角形の面とする方法は2通りあるため、それを1通りに確定するためや、あるいは最後の仕上げなどに三角形の面が用いられることがある。また、3DCGにおいては五角形以上の多角形は、三角形や四角形と区別して単に「多角形」と呼ぶことがあるが、エラーや問題を引き起こしやすいため、基本的に五角形以上の多角形の面(ポリゴン)の使用はタブーとされ、制作過程でこの面が出てきた場合、最終的には全て四角形ないし三角形に分割するのが普通である。 他に面を定義する方法としては自由曲面がある。自由曲面はNURBS曲線、スプライン曲線、ベジェ曲線などで曲面を構成する方法で、ポリゴンのみでモデリングされた形状に比べ滑らかで正確な形状が得られる。ポリゴンのみでモデリングすることを、ポリゴンモデリングと呼んで、自由曲面を利用したモデリングと区別することがある。 形状が出来たら、オブジェクトに材質(マテリアル)を設定する。材質を設定しなければ、オブジェクトはただ一様に光を反射するだけの均質な物体になる。多くの3DCGソフトウェアでは、色、透明度、反射、屈折率、自己発光、バンプ、ディスプレイスメントなどの設定項目がある。 モデリングで制作したオブジェクトを、仮想3次元空間上に配置する。現実世界と同様、光源も配置しなければ何も表示されない(黒一色の画像が出力される)。また、仮想的なカメラを配置することで視点を設定する。これらを配置・設定した仮想的な舞台をシーンと呼ぶ。 レンダリング(英: rendering)は、これまでに設定したシーンから、仮想的なカメラに写されるはずの画像を生成する工程である。オブジェクトの形状や位置、光のあたり具合などをコンピュータが計算し、最終的な画像が生成される。レンダリングのアルゴリズムには、それぞれ処理速度や品質の違う多くの種類があり、用途に合わせて使い分ける。各種の設定を済ませレンダリングを開始した後は、レンダリングが終了するまで制作者がすることは特にない。一般にレンダリングには多くの時間を要する。シーン内に多くの形状があったり、高度なレンダリングアルゴリズムを利用している場合、数時間から数日かかる場合もある。ゲームなどリアルタイムにレンダリングしなければならないときは、単純で高速なレンダリングアルゴリズムを適用したり、シーンの総ポリゴン数を少なくするなど、大きな制限が加えられる。映画など大規模な制作現場では、同時に複数のコンピュータにレンダリング処理をさせて、計算時間を短縮することがある。 レンダリング手法によっては空気による遠近法・光の照り返しなども計算される。そういった複雑な計算をするレンダリング処理は専用回路(GPU)で行われることも多い。高い対話性と双方向性が得られるので、ゲームに用いられる場合はこの形態をとる。 レタッチ(英: retouch)とは、手直しする作業のことである。レンダリングで得られた画像が、完全に制作者の意図したものになるとは限らない。PhotoshopやAdobe After Effectsなどのフォトレタッチツールなどで、コントラストや色味を手直しすることもある。 3DCGのモデルに画像を貼り付けることをテクスチャマッピング(英: texture mapping)、その貼り付けられる画像をテクスチャという。テクスチャを貼ることにより、モデリングやシェーダーのみでは表現の困難な、モデル表面の細かな色彩情報や質感などを設定することができる。 テクスチャの貼り付け方としては、単純にカメラ方向からモデルにテクスチャを投影するだけの方法や、UV座標によって切り出されたテクスチャの2次元画像領域をモデル表面に分割投影する方法などがある。 反射の強度を設定する反射マッピング、小さな凹凸を擬似的に表現するバンプマッピング/法線マッピング、透明度を設定する透明度マッピングなどがある。形状の表面に画像の情報を加えることによって、表面の模様や質感が表現されて、より現実的な画像になる。ディスプレースメントマッピング 特にコンピュータゲームにおいては、リアルタイムで3DCGキャラクターを描画する必要から、極力少ないポリゴンで作成されたモデル(ローポリゴンモデル)に、ディテールや陰影などを描き込んだテクスチャを貼り付ける手法が行われている。 モデルの表面の法線の方向を変化させることによって、擬似的に凹凸を表現する技術。グレースケール画像で元形状に対する高低を定義する。少ないポリゴンで細かな陰影をリアルに表現できる利点があるが、実際に表面に立体的な凹凸があるわけではないので、ズーム時や、面を横から見た場合などに違和感のある画像となる。 @media screen{.mw-parser-output .fix-domain{border-bottom:dashed 1px}}近年[いつ?]は法線の方向(3次元ベクトル)を直接定義する法線マッピング(ノーマルマッピング)も用いられるが、法線マップを手作業で作成するのは困難であるため、通常は高精細モデルのディティールを法線マップに変換して単純化モデルに適用する手法が採られている。 3Dモデルの頂点を実際に表面に対して上下に移動させて凹凸を表現する技術。バンプマッピングに比べて、実際に立体的な凹凸となるため違和感のない画像が得られるが、表現する凹凸に応じてポリゴン数が増大する欠点がある。リアルタイム3DCGの分野ではDirect3D 10およびOpenGL 3.2でジオメトリシェーダーが標準化された後、Direct3D 11/OpenGL 4にてテッセレーションが標準化され、GPUによるディスプレースメントマッピングが可能となった。 バンプマッピングによる凹凸の表現はあくまで擬似的に陰影を表現し、またディスプレースメントマッピングによる凹凸は3Dモデルそのものの頂点を移動させて凹凸を表現するだけであるのに対して、3Dモデルに立体的な濃度関数を掛け合わせることにより、小さな凹凸はもとより、深い溝や貫通した穴のような大きな構造も表現することができる技術。
透視投影
平行投影
制作工程
モデリング
シーンレイアウト設定
レンダリング
編集・レタッチ
モデリング
シーンレイアウト設定
レンダリング
レタッチ
制作技法
テクスチャマッピングテクスチャマッピング詳細は「テクスチャマッピング」を参照
バンプマッピングバンプマッピング詳細は「バンプマッピング」を参照
ディスプレースメントマッピング
ハイパーテクスチャ
パーティクルビルボーディング
Size:81 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)』
担当:undef