こんにちは。CCTのDX支援のうちの一つ、調達DXの形状認識部隊所属の青木です。
我々形状認識部隊が扱う対象は3D CADなのですが、似ているようで異なる分野として3Dコンピュータグラフィックスがあります。
今回はこれらふたつの技術について書いてみます。
3Dコンピュータグラフィックス
コンピュータグラフィックスには、コンピュータ画材の代わりに用いて二次元の絵を描くものを含む2Dグラフィックスと、計算により三次元の映像を作り出す3Dグラフィックスとがあります。
本稿で扱うのは後者です。
3Dグラフィックスでは、次のような手順で映像を作り出します。
1. まず表示されるものをデータ化します。このデータのことをモデルと呼びます。
2. 三次元空間上にモデルや光源、カメラを配置します。配置された状態をシーンなどと呼びます。
3. シーンを元に映像データを計算して出力します。このことをレンダリングと呼びます。
2.ではシーンの要素であるモデルや光源、カメラに対して、平行移動と回転移動を行う計算が必要です。
平行移動と回転移動はひとつの座標につき4×4の行列との積で表すことができます。
一方、3.ではモデルによる反射・屈折を考慮して光源からカメラに至る光の強度を計算します。
このシンプルかつ強力な手法は光線追跡法と呼ばれていますが、膨大な計算量を必要とします。
計算量を減らすためにリアルさと引き換えに簡略化した手法、深度バッファ法などが用いられることが多いです。
3Dグラフィックスの用途としては、映画やプレゼンテーション、それにゲームなどが挙げられます。
プレゼンテーションなどで1枚の画像が必要であれらば上の1.~3.のステップで生成できますし、映画で多数の映像フレームが必要な時には2.~3.を繰り返すことで望むだけの映像を生成します。
また、映画では視聴の前に長い時間をかけて映像を用意しておけばいいのですが、インタラクティブなゲームではリアルタイムに映像を生成する必要があります。
そのためにGPUと呼ばれる専用のハードウェアが開発され、2.と3.の演算をを高速に行えるようになりました。
近年では光線追跡法をリアルタイムに計算できるようなGPUも出現しています。
実写と見分けがつかないようなリアルな映像をその場で作り出すことが、もう実現しつつあります。
3D CADと3Dグラフィックス
CADはComputer-Aided Design(コンピュータ支援設計)の略語で、コンピュータを用いた設計支援システムを指します。
中でも3D CADと呼ばれるものは、三次元の製品を実際に作ることなく精密にモデリングできるツールとして、従来の設計手法に変革をもたらしています。
3D CADは3Dグラフィックスの応用のひとつですが、一般的な3Dグラフィックスが「見た目」重視なのに対し、3D CADでは製造に使えるデータを扱うために細かいところまで再現性が重視されるのが特徴です。
例えば映画などで細部をズームアップした映像が必要な時には、モデルの解像度を超える部分について適当に補間する方法(細分割手法)が用いられることがありますが、CADではモデルがいつでも正確な形状を表していることが要求されるため、細分割手法が用いられることはほとんどありません。
この違いはモデルのデータ構造に表現されます。3Dグラフィックスでは多角形、多くの場合は三角形の集合(メッシュなどと呼びます)として近似的にモデルを表現しますが、CADでは正確にモデルを作るために境界表現というデータ構造でモデルを表現します。
たとえば円筒形状は、メッシュでは正確に表現することはできませんが境界表現では正確に表現できます。
我々形状認識部隊が日々扱っているのはこの境界表現の方です。
3Dグラフィックスからものづくりへ
そうは言っても、充分に細かく分割されたメッシュは、人間の目には正確なモデルと見分けがつきません。
実際、近年普及しつつある3Dプリンタの造形手法である積層造形では、境界表現ではなく3Dグラフィックスと同じメッシュによるモデルが用いられることが多いです。
我々のところに送られてくるデータの中には、時々境界表現によるものに混じってメッシュモデルが入ってくることがあります。
今のところ、形状認識の対象としてはお断りすることにしているのですが、そう遠くない将来このふたつの表現方法は自由に行き来できるようになるのではないか、そしてそのために形状認識と3Dグラフィックスという近いようでかなり異なる分野に対し、日々研究を重ねていく必要があるのではないか。
そんなことを、ぼんやり考えております。