ポリゴン

Multi tool use
 | この項目では、コンピュータグラフィックスにおける多角形について説明しています。一般的な多角形については「多角形」を、ポケットモンスターのキャラクターについては「ポリゴン (ポケモン)」をご覧ください。
|
ポリゴン(英: polygon)とは、多角形のことであるが、この記事ではサーフェスモデルなど、コンピュータグラフィックス特に3次元コンピュータグラフィックスにおける応用について述べる。
一般に日常的には「三角形」や「四角形」といった語は、それらの辺だけのものを指すのか、囲まれた中身を含む「面分」か、明確でないことも多い(「円」で言うならば、「円周」と「円盤」の違い)。しかし、形状モデリング等の応用では、その面が塞がっている面なのか、穴が開いているのかは大きな違いであり、識別の必要がある。そのため、きちんと多角形として「閉じて」いて、囲まれた中身を含む場合はクローズドポリゴン(closed polygon)、ただの連結な線分など閉じていない場合をポリラインあるいはオープンポリゴン(open polygon)、と呼び分ける(ことがある)。
(なお、3次元に限らず2次元コンピュータグラフィックスにおいても同様である。一例として、地理情報システム(GIS) などの地図データ及び描画では、領域の輪郭はポリゴンであり、道路や鉄道などはポリラインである)
このようなポリゴンで構成された物体は、基本的に直線と平面のみで構成されるが、線・面分割を細かくしてスムーズシェーディングなどの処理を併用する事で擬似的に曲線・曲面も表現できる。またピクサー社は単純なポリゴン形状で有機的曲面形状を制御するサブディビジョンサーフェス技術を開発している。
概要
ポリゴンの数が増えるほど詳細な表現が可能になり、何らかの入力操作に応じてリアルタイムに表示計算を行うコンピュータやゲーム機では1秒間に処理できるポリゴンの数がハードウェアの性能の比較に用いられることもある。しかし、実際のところその数え方は個々の事例によって恣意的であり、以下の数字は基本的にマーケティング目的のカタログスペックとしての数字である。例えば、初期の家庭用ゲーム機では、1994年にはセガのメガドライブの周辺機器スーパー32Xでポリゴンのソフト(厳密にはこの場合のポリゴンは、三角形の意味でない)が発売されたが、スーパー32Xが32ビットでもメガドライブ自体は16ビットというハードの性能の限界があった。2000年に発売されたソニーのゲーム機、PlayStation 2に搭載されたEmotion Engineは、毎秒300~600万ポリゴン。2007年の時点では、携帯電話向けのものでさえ、東芝のTC35711XBGのように、毎秒1億ポリゴンにも達するものさえある。しかしCPUのMIPS値と同様、1秒間に処理できるポリゴンの数だけがハードウェアの性能の優劣を決定づける要素ではなく、そもそも繰り返しになるが前述したようにこのような数字の算出方法は個々の事例ごとに恣意的な数え方によるものであり(命令セットの違いによる1命令あたりの計算量の違いを考慮せずに、MIPS値だけで一喜一憂していた多くの人々と同様であって)基本的にマーケティング目的のカタログスペックとしての数字でしかない。また、ハードの負荷を減らす為に制作側は極力少ない数のポリゴン(ローポリゴン)でキャラクターのモデリングを行う事を要求されるため、細部の表現には各種のテクスチャマッピングと組み合わせることが多い。
(凸)多角形を塗り潰す定番のアルゴリズムとして、スキャンラインと辺の交点の間を塗る「スキャンライン法」がある。
以下はGPU等における処理に関する議論である。
現在では、ほとんどの場合、三角形のポリゴンが使われる。これは、四角形以上のポリゴンの場合は、個々の頂点座標の位置関係によっては、ポリゴンに捩れが発生してしまい、このときポリゴンの面を正しく(あるいは高速、またはグーロー補間に)塗り潰すアルゴリズムの実装が複雑なためである。三角形ポリゴンであれば、三つの頂点座標がどのような位置関係でも条件を考慮せずに同じアルゴリズムで塗りつぶせ、正しくグーロー補間できる。三角形ポリゴンを塗り潰すアルゴリズムを多少変更すれば、フラット補間なら四角形以上のポリゴンも塗りつぶせないことはないが、凹多角形の場合はアルゴリズムが複雑になり、フィルレートも低下する。これらの理由から、リアルタイムコンピューターグラフィックスの世界では、三角形ポリゴンが使用されるのが普通である。また、三角形ポリゴンを複数組み合わせて、四角形以上のポリゴンの処理を代替することは可能なので、いわゆるGPUなどは基本的に三角形ポリゴンの処理に特化した設計である(比較的に知名度があるハードウェアだと、セガModel3に使用されている、LockheedMartin Real3D/PRO-1000などは、四角形のポリゴンベースで処理をするが、もともとが軍事シミュレータ用であり例外的な存在である)。
関連項目
- ポリゴンメッシュ
- ワイヤーフレーム
- テクスチャマッピング
- トゥーンレンダリング
- シェーディング
 | この項目は、コンピュータに関連した書きかけの項目です。この項目を加筆・訂正などしてくださる協力者を求めています(PJ:コンピュータ/P:コンピュータ)。 |
4Na 0c37oV,QQPSIqoseuQ3HJLbsD91f7
Popular posts from this blog
Ramiro Burr's New Blog - to go back: www.ramiroburr.com From Latin rock to reggaeton, boleros to blues,Tex-Mex to Tejano, conjunto to corridos and beyond, Ramiro Burr has it covered. If you have a new CD release, a trivia question or are looking for tour info, post a message here or e-mail Ramiro directly at: musicreporter@gmail.com Top Tejano songwriter Luis Silva dead of heart attack at 64 By Ramiro Burr on October 23, 2008 8:40 AM | Permalink | Comments (12) | TrackBacks (0) UPDATE: Luis Silva Funeral Service details released Visitation 4-9 p.m. Saturday, Rosary service 6 p.m. Saturday at Porter Loring, 1101 McCullough Ave Funeral Service 10:30 a.m. Monday St. Anthony De Padua Catholic Church, Burial Service at Chapel Hills, 7735 Gibbs Sprawl Road. Porter Loring (210) 227-8221 Related New Flash: Irma Laura Lopez: long time record promoter killed in accident NewsFlash: 9:02 a.m. (New comments below) Luis Silva , one of the most well-known ...
1 I having trouble getting my ResourceDictionary.MergedDictionaries to load from app.xaml. My WPF app has a static class with a Main defined and startup object set to it. Within Main I created an instance of App and run it. The override OnStartup fires and the mainwindow.cs InitializeComponent gives the error "Message "Cannot find resource named 'MaterialDesignFloatingActionMiniAccentButton'. If I put the resources in the mainwindow.xaml everything is fine, but I wanted them to load at the app level so I they are not in each page. Any help appreciated. public partial class App protected override void OnStartup(StartupEventArgs e) base.OnStartup(e); var app = new MainWindow(); var context = new MainWindowViewModel(); app.DataContext = context; app.Show(); from the Main.. var app = new App(); app.Run(); app.xaml.. <Application x:Class="GS.Server.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:...
up vote 2 down vote favorite There is a clear pattern that show for two separate subsets (set of columns); If one value is missing in a column, values of other columns in the same subset are missing for any row. Here is a visualization of missing data My tries up until now, I used ycimpute library to learn from other values, and applied Iterforest. I noted, score of Logistic regression is so weak (0.6) and thought Iterforest might not learn enough or anyway, except from outer subset which might not be enough? for example the subset with 11 columns might learn from the other columns but not from within it's members, and the same goes for the subset with four columns. This bar plot show better quantity of missings So of course, dealing with missings is better than dropping rows because It would affect my prediction which does contain the same missings quantity relatively. Any better way to deal with these ? [EDIT] The nullity pattern is confirmed: machine-learning cor...