2.1 3次元コンピュータグラフィックス(3DCG)続き
・テッセレーションとポリゴンメッシュ

3DCGソフトウェアによっては、球や円柱などの単純なオブジェクト(プリミティブ)を、ポリゴンではなく中心点や半径、高さといった数値で扱う場合がある。これらの細部を編集したりレンダリングする場合は、ポリゴンメッシュに変換する必要がある。これをtessellationと呼ぶ(tessellateはモザイク模様にするという意味)。ただし、オブジェクトが本来持っていた形状情報である球体、円錐などのような抽象的な表現は失われてしまう。
・反射とシェーディングモデル
現在の3DCGの多くは単純化された反射モデルを利用しており、これをPhongの反射モデル(Phong reflection model)と呼ぶ(Phongシェーディング(Phong shading)とはまた違う技術である)。
また光の屈折では屈折率が重要な概念である。多くの3DCGソフトウェアでは、屈折率(index of refraction)を略してIORと表記する。
シェーディングとは、物体の陰影を計算することである。シェーディングには次のような種類がある。
・フラットシェーディング(flat shading)
ポリゴンの法線ベクトルと光源との角度から各ポリゴンの色を算出する。1つのポリゴンは一色に塗りつぶされる。単純なアルゴリズムなので計算速度が高速であるが、ポリゴンの継ぎ目ごとに不連続的に色が変化するため、滑らかには見えない。コンスタントシェーディング(constant shading)とも呼ぶ。
グーローシェーディング(gouraud shading)
オブジェクトの各頂点の法線ベクトルを求め、頂点間は一次補間してピクセルの色を算出する。ピクセル間の継ぎ目は目立たなくなる。gouraudは考案者の名前。
フォンシェーディング(phong shading)
オブジェクトの各頂点の法線の一次補間から、各ピクセルにおける法線を求めて、それを元に最終的なピクセルの輝度を算出する。グーローシェーディングにおける光沢の不自然さを改善する。Phongは考案者の名前。
        
3D_New_Technologu_14

・Zソート法
隠面消去方法のひとつ。 ポリゴンの座標(大抵は中心点)を基準に、画面の奥(視線からもっとも遠いポリゴン)から、全てのポリゴンを順番に描画する。 後述のZバッファ法のような特殊な処理をせず、基本的に多角形を描画すればよいだけなので、実装が簡単であり、消費メモリが少なく非常に処理が高速にできる利点がある。Zバッファ法が普及するまでは古くは3DCG全般で利用され、また、最近まで家庭用ゲーム機におけるリアルタイム3DCGでは一般的に利用されていた。しかし、ポリゴン数が増えた場合は、ポリゴンをソートするコストがかかる、またフィルレートが膨大になるため、Zバッファ法と比較して速度的なメリットがなくなる。
ポリゴンが交差した場合に正しく表示することができないという欠点があるが、この解決策として、ポリゴンが互いに交差しないように静的、あるいは動的に細分化する方法がとられることがある。
Zバッファ法と異なり、半透明ポリゴンの描画に関しては、ポリゴンが交差する場合を除いて、概ね正しく扱うことができる。
・Zバッファ法
隠面消去方法のひとつ。 多数のポリゴンが重なった場合、奥のポリゴンが手前に描かれてしまうような不都合が生じることがある。 これを防ぐために、各ポリゴンを描画する際、各画素について視点からの距離を全て記録し、現在記録されている深度よりも近い画素だけを描画する。 Zソート法と異なり、通常は、視点にもっとも近いポリゴンからレンダリングする(Zバッファで判定することで、奥に隠れたポリゴンのレンダリングをスキップできるため)。
アルゴリズムが簡単なためハードウェア化しやすい利点があるが、Zバッファ用のメモリの分だけ、Zソート法よりもメモリは多く消費する。単純に、ピクセル単位で奥行きを判定して、ポリゴンのピクセルを塗るか塗らないかを判定しているだけなので、半透明なポリゴンは、Zバッファ法だけでは正しく処理できない(この場合、一度Zバッファ法で不透明なポリゴンだけ描画し、さらにZソート法で半透明なポリゴンを重ねて描く)。また、互いに接近した平行、あるいは低い角度で交差するポリゴンにおいて、Zバッファに記録される深度の精度によっては、隠面消去が正しく行われない、Zファイティング(Z-fighting)と呼ばれる現象が起きる。ゲームやCADソフトウェアのプレビュー表示など、リアルタイムでの描画によく利用される。
Zバッファとは深度を記憶するメモリ領域のこと。
・スキャンライン(Scanline rendering)
スクリーンを横一行ごとに分割して、その一行ごとに深度を計算してレンダリングする手法。透過を表現したり、シェーディングと併用することで陰影も表現できる。スキャンラインとは走査線を意味する。比較的高速だが、得られる画像の品質は基本的にレイ・トレーシングよりも劣る。
・レイ・トレーシング(Ray tracing)
   
3D_New_Technologu_15

レイ・トレーシングは、視点から光源までの光を追跡することでレンダリングする手法。視点から描画する各画素の方向へ直線を伸ばし、物体と交錯する可否を数学的に判定する。照度は光源との方向ベクトルで計算する。反射と屈折は反射率および屈折率をもとに再帰的に探索を繰り返す。物体との交錯がなくなれば計算は終了する。スキャンラインでは得られない反射や屈折などの表現が可能になる。フォトリアリスティックな画像が得られる反面、大変なレンダリング時間が掛かる。そのため屈折の計算処理については、簡略化あるいは制限を設けるのが一般的である。リアルタイム3DCGの分野では、GPUの発展と共に、レイ・トレーシングのリアルタイム化が試みられているが、現時点において実用的なレベルには至っていない。
・ラジオシティ(Radiosity)
3D_New_Technologu_16

ラジオシティによるサンプル画像。床や壁に当たった光が拡散し、軟らかな陰影を表現している。
ラジオシティは、各ポリゴンに光のエネルギー量を持たせて形状の相互反射を計算することで、間接光(やわらかい光の回り込み)などを表現する技術。計算に膨大な時間が必要になるが、完全拡散面で構成されるシーンでは、一旦物体相互間の光の反射を計算し終えれば、物体や光源が移動しない限り、その計算結果を保存して別のアングルからのレンダリングへ再利用することができる。照明工学の分野で発達した技術を3DCGのレンダリングに応用した。