- ベストアンサー
ポリゴン 球体を三角形パッチで表現する理由
タイトルの通りですが、球体をあえて三角形パッチで表現する理由はなんでしょうか?
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
>球の方程式を使った方が、三角形パッチで表現するより高速で綺麗だと思うのですが・・・ DirectXやOpenGLを使わずに描画する事を考えてください。 そうすれば何故三角形なのかわかるでしょう。 球の方程式自体は単純かもしれませんが、ポリゴンを含めラスタライズすることまで考えれば ものすごい計算量になることがわかると思います。 3D表示をする場合奥にあるものは表示せず、手前にあるものを表示するようにしなければなりませんが 球だとどこで切ればいいのか等、難しい問題が多いですよね? その辺の計算はゲーム等ではすべてハードウェアがやってくれるわけですが、 一般的にハードウェアは単純化した方がコストパフォーマンスがあがります。 わざわざ球専用のオブジェクト処理をするチップを載せるより ポリゴンをグーローシェーディングして球に見せる処理をする方が現実的なのです。
その他の回答 (7)
- JJsoft
- ベストアンサー率21% (8/38)
余談ですが、単色の球体なら一番高速な描画方法はビルボードを使うことです。単色の球体はどこから見ても同じ形なので、常にカメラ方向を向いているビルボードでも十分表現できます。ニンテンドー64用のマリオではビルボードの球が頻繁に使われています。
- neKo_deux
- ベストアンサー率44% (5541/12319)
> 球の方程式を使った方が、三角形パッチで表現するより高速で綺麗だと思うのですが・・・どうして三角形パッチを使うのでしょうか? 画面に球が1コしか出現しない映像やゲームは面白くないから。 三角形パッチの球面や平面が立体が交差したり重なり合ったりって表現が必要だから。
- Interest
- ベストアンサー率31% (207/659)
学生時代は OpenGL を使っていました。 (3DCGの)3次元空間において、「面」をどのように定義するかご存知ですか? 「面」は3個以上の「頂点(vertex)」から出てきています。そして、各頂点には「法線ベクトル(normal vector)」が与えられます。数学では法線ベクトルは「面」そのものに与えますが、3DCGの世界では頂点に法線ベクトルを与えます。(少なくともOpenGLでは、頂点以外に法線ベクトルを与えることができません。) 法線ベクトルは、光の反射方向を支配します。ですから、頂点3個で三角形を作り、各頂点に与えた法線方向をずらしてやると、光の反射具合により3角形が曲面に見えます。 球に限らず、あらゆる曲面が同じ方法で定義できます。 OpenGLにもベジェ曲面やNURBS曲面を定義する関数がありますが、最終的にできるのは頂点と法線ベクトルでできた三角形の集まりです。 > 球の方程式を使った方が(以下略) 球の方程式を使ってどのように立体を記述して、最終的に画面のピクセルを埋めるところまでもっていくのか、そこまで具体的に書いていただけると三角形を使う場合とどちらが速いか比較できます。
- nerosuke
- ベストアンサー率33% (39/115)
他の回答者の方の補足的な回答ですが、 物体を4頂点以上の多角形の組み合わせで表示すると、 物体を変形させた時(ねじったり)すると歪みや抜けが 生じてしまいますし、ハード(ゲーム機)によっては 4頂点にしても内部で3頂点の組み合わせで計算してますからね
3Dハードウェアアクセラレーター付きの(最近では普通の) ビデオカードで描画できるのが、基本的に3角形だけだからです。 方程式を用いる方法は、なめらかできれいな図形が描ける反面、 各形状ごとに方程式を定義しなくてはいけなくて、 方程式の複雑さのわりに単純な図形しか描けず、 最適化しやすい3角形ポリゴンに比べると、演算負荷も高いので、 まず、ゲームなんかでの利用価値はないですね。 ゲームのようなリアルタイム性が要求されない3D CGの世界では、 物体を単純なポリゴンではなくて、球などの形状を方程式的に表現する場合もありますが・・・ これも、形状が非常に限られるなどの理由で、めったに使われません。 これがよく登場するのは、3D CGプログラミングの例題くらい、ですね。。
- keibou21
- ベストアンサー率31% (18/58)
回答ではなく、余談です。 PSPではNURBSがサポートされていますが、NURBSで曲面を描画している ゲームを見たことがありません。 #どうして使わないんでしょうね?
- JJsoft
- ベストアンサー率21% (8/38)
ゲームなどでの話ですか?3Dのオブジェクトはすべて3角形のポリゴンの組み合わせで成り立っていますので、球体も同じです。ポリゴンを増やせば限りなく真の球体に近づきますが、その分描画スピードが落ちてしまうので、スピードが重要視されるゲームでは使えません。なるべく少ないポリゴンで軽くなるようにオブジェクトを表現しています。
補足
球の方程式を使った方が、三角形パッチで表現するより高速で綺麗だと思うのですが・・・どうして三角形パッチを使うのでしょうか?