コンテンツにスキップ

英文维基 | 中文维基 | 日文维基 | 草榴社区

ポリゴン

出典: フリー百科事典『ウィキペディア(Wikipedia)』
3Dポリゴンから転送)
ポリゴンで造られた回転放物線

ポリゴン: polygon)とは、

前者については「多角形」という詳細な別記事が立ててあるので説明はそちらに譲るとして、当記事では後者のサーフェスモデリングで使われる多角形、およびそうした多角形を多数使って立体物の形状を近似したりモデリングする手法について説明する。

概要

[編集]

形状モデリング等では、多角形の面が塞がっているのか、穴が開いているのかは大きな違いであり、識別の必要がある。そのため、きちんと多角形として「閉じて」いて、囲まれた中身を含む場合はクローズドポリゴン: closed polygon)と呼ぶ。一方、ただの「連結な」(注)線分など閉じていない場合をポリラインあるいはオープンポリゴン(open polygon)と呼び分ける(ことがある)。

注 -  この「連結な」は、変な日本語ではなく、グラフ理論などで使われるジャーゴンである。
※ 普通の人々は日常的には「三角形」や「四角形」といった語はもっと曖昧に使っており、多角形のだけを指しているのか、辺に加えて囲まれた中身も含む「面分」を指しているのか、明確でないことは結構多い(たとえば普通の人々が日常的に「円」という場合、「円周」だけ指しているのか、あるいは「円盤」を指しているのか、はっきりせず曖昧に使っていることは多い)。だが形状モデリングはそんな曖昧なやり方ではできない。

このようなポリゴンで構成された立体モデルは基本的に直線平面のみで構成されるが、線・面分割を細かく、ポリゴンの数を増やして、スムーズシェーディングなどの処理を併用する事で擬似的に曲線曲面も表現できる。(なおピクサー社は単純なポリゴン形状で有機的曲面形状を制御するサブディビジョンサーフェス技術を開発している。)

ポリゴンの数や細かさのモデルの形状への影響。ポリゴンでイルカをモデリングした例。本当のイルカの表面はもっとなめらかな曲面であるが、この程度の限られた数のポリゴンだと、イルカがやや角ばって表現される。
現実のイルカのなめらかな曲面。

ポリゴンをつかう形状モデリングは、ポリゴンの数が増えるほどなめらかな曲面の表現が可能になる。ポリゴンの数があまりに少ないと、現実世界(元の形)はなめらかな曲面で構成される物体でもモデルのほうは角張った(かどばった)ものになってしまう。

たとえば2000年に発売されたソニーPlayStation 2は搭載するEmotion Engineによって、当時としては画期的なことに、毎秒300万~600万ポリゴンも描くことができ、その能力のおかげでそれまでのゲーム機と比べて相当になめらかな曲面を描けた。

ハードウェアの能力を引き出せるかどうかはソフトウェア制作者側の技量によるが、ポリフォニー社はPS2のポリゴン・グラフィックス性能を十分に活かすことに成功し、同社が制作した『グランツーリスモ3 A-spec』は自動車車体表面の曲面のなめらかさを描くことに成功。それまでにないリアル感が(特に自動車のエンスージアスト(自動車好き)人口が多い欧米で)大きな反響を生み、PS2のキラーソフトとなり世界的に同コンソールの売上を牽引した。

一方そうした高性能のエンジンを搭載していない場合は、ソフト制作者側はハードウェアがモデルを処理しきれない事態を避けるために、極力少ない数のポリゴン(ローポリゴン)でキャラクターのモデリングを行う事を要求されるため、細部の表現には各種のテクスチャマッピングと組み合わせることが多い。[1]

凸型の多角形を塗り潰す定番のアルゴリズムとして、スキャンラインと辺の交点の間を塗る「スキャンライン法」がある。

ポリゴンの形

リアルタイムコンピューターグラフィックスの世界では、大抵の場合は基本的に、三角形ポリゴンが使用される。

以下はGPU等における処理に関する議論である。現在[いつ?]では、ほとんどの場合、三角形のポリゴンが使われる。これは、四角形以上のポリゴンの場合は、個々の頂点座標の位置関係によっては、ポリゴンに捩れが発生してしまい、このときポリゴンの面を正しく(あるいは高速、またはグーロー補間に)塗り潰すアルゴリズムの実装が複雑なためである。三角形ポリゴンであれば、三つの頂点座標がどのような位置関係でも条件を考慮せずに同じアルゴリズムで塗りつぶせ、正しくグーロー補間できる。三角形ポリゴンを塗り潰すアルゴリズムを多少変更すれば、フラット補間なら四角形以上のポリゴンも塗りつぶせないことはないが、凹多角形の場合はアルゴリズムが複雑になり、フィルレートも低下する。これらの理由から、リアルタイムコンピューターグラフィックスの世界では、三角形ポリゴンが使用されるのが普通である。また、三角形ポリゴンを複数組み合わせて、四角形以上のポリゴンの処理を代替することは可能なので、いわゆるGPUなどは基本的に三角形ポリゴンの処理に特化した設計である(比較的に知名度があるハードウェアだと、セガModel3に使用されている、LockheedMartin Real3D/PRO-1000などは、四角形のポリゴンベースで処理をするが、もともとが軍事シミュレータ用であり例外的な存在である)。

脚注

[編集]
  1. ^ 余談だが、何らかの入力操作に応じてリアルタイムに表示計算を行うコンピュータやゲーム機では「1秒間に処理できるポリゴンの数」をハードウェアの性能の比較や宣伝に使うこともある。 しかし、実際のところその数え方は個々の事例によって恣意的であり、以下の数字は基本的にマーケティング目的のカタログスペックとしての数字である。例えば、初期の家庭用ゲーム機では、1994年にはセガメガドライブの周辺機器スーパー32Xでポリゴンのソフト(厳密にはこの場合のポリゴンは、三角形の意味でない)が発売されたが、スーパー32Xが32ビットでもメガドライブ自体は16ビットというハードの性能の限界があった。2007年の時点では、携帯電話向けのものでさえ、東芝のTC35711XBGのように、毎秒1億ポリゴンにも達するものさえある。しかしCPUのMIPS値と同様、1秒間に処理できるポリゴンの数だけがハードウェアの性能の優劣を決定づける要素ではなく、そもそも繰り返しになるが前述したようにこのような数字の算出方法は個々の事例ごとに恣意的な数え方によるものであり(命令セットの違いによる1命令あたりの計算量の違いを考慮せずに、MIPS値だけで一喜一憂していた多くの人々と同様であって)基本的に宣伝目的(マーケティング目的)のカタログスペックとしての数字でしかない。

関連項目

[編集]

外部リンク

[編集]