コンピューターはどのようにしてオブジェクトを画面にレンダリングしますか?


18

すべてのコンピューターグラフィックスはポリゴンを使用してレンダリングされていますか?つまり、一部のコンピュータージオメトリは、方程式の形式で数学的に表されます(たとえば、CADソフトウェア)。

コンピューターは、視覚化を画面に適切にレンダリングする前に、まずこれらのジオメトリをテッセレーションする必要がありますか、またはオブジェクトをテッセレーションせずに画面に画像を表示する他の方法がありますか?

編集:GPUに特に焦点を当てたと思います。GPUはどのように処理しますか?必要な入力の種類、つまり、GPUが使用するモデル形式は何ですか?完全な数学的表現を直接使用するか、実際に画面にレンダリングする前にモデル自体をテッセレーションするか、GPUにテッセレーションモデルを必要とすることから始めてください。

また、テッセレーションとは、コンピューターがオブジェクトの数学的表現をポリゴン(ほとんどの場合は三角形)の表面近似に分解する方法を意味します。使用するポリゴンが多いほど、サーフェスは実際のオブジェクトに近くなります。


4
このような興味深い質問!
r0ca

回答:


2

これは、@ nikの回答に対するコメントをフォローしています。

CADシステムの大部分は、ポリゴン(井戸の三角形)を使用してモデルをレンダリングします。

たとえば、CSG(Constructive Solid Geometry)またはB-rep(Boundary Representation)モデルに基づいてさまざまな方法でモデルを保存しますが、表示する場合はファセットが作成され、三角形が描画のためにGPUに送信されます。

各システムには、モデルを三角形に分割するための独自のソリューションがあります。


7

この質問をどの程度の好奇心で聞いているのかわかりませんが
、一般的にはウィキペディアのコンピューターグラフィックスページを参照してください。

ありますコンピュータグラフィックスやアニメーションのA重要な歴史があり、リンク。
コンテンツページから目的のセクションにジャンプできます。


更新:あなたの質問は、このUnlimitedDetailサイトに関連する概念に基づいているのでしょうか。

今日のほとんどの3Dグラフィックスは、ポリゴンシステムと呼ばれるものに基づいています。それは、ポリゴンと呼ばれる小さな平らな形状から物を構築するシステムです。

...

3Dグラフィックスで使用されている3つの現在のシステムは、レイトレーシング、ポリゴン、およびポイントクラウド/ボクセルであり、すべて長所と短所があります。ポリゴンは高速で実行されますが、ジオメトリは貧弱です。レイトレースとボクセルは完全なジオメトリですが、実行は非常に遅くなります。

等...


コンピュータグラフィックスとアニメーションの重要な歴史に言及するための+1。読むことは多いが非常に興味深い;-)
Diskilla

私の好奇心のレベルは通常、非常に深く、アイデアの背後にある数学にまで下がります(詳細な答えは期待していませんが、GPUが何を使用しているのかを一般的に知りたいです)。私の質問が何に関連しているかについては、特にCADソフトウェアと、数学モデルと画面に表示されるもの(GPUレンダリング経由)との間の変換方法に関連しています。どうして?興味があります。
フェイケン

2

GPUの仕組みとレンダリングテクニックを深く掘り下げたい場合は、次の書籍をオンラインで見つけることができます。

GPU Gems 3、Addison-Wesley Professional(2007年8月12日)

GPU Gems 3は、NVIDIAの開発者教育マネージャーであるHubert Nguyenによって編集されています。Hubertは、現在の位置に移動する前にNVIDIAデモチームで働いていたグラフィックエンジニアです。彼の作品は、GPU Gems(Addison-Wesley、2004)およびGPU Gems 2の表紙に掲載されています。

GPU Gems 3は、最先端のGPUプログラミングサンプルのコレクションです。データ並列処理を機能させることです。最初の4つのセクションでは、ジオメトリ、照明と影、レンダリング、および画像効果の分野におけるGPUのグラフィックス固有のアプリケーションに焦点を当てます。5番目と6番目のセクションのトピックは、データ並列GPUテクノロジで対処できる非グラフィカルアプリケーションの具体例を提供することで範囲を広げます。これらのアプリケーションは、剛体シミュレーションから流体シミュレーションまで、ウイルスシグネチャマッチングから暗号化と復号化まで、乱数生成からガウス計算まで、さまざまです。

以前の版もオンラインであり、まだ読む価値があります。

GPU Gems:Randima Fernandoが編集した、リアルタイムグラフィックスのプログラミング手法、ヒント、およびテクニック、2004年3月

GPU Gems 2:グラフィックスおよび計算集中プログラミングの手法、Matt Pharr編、2005年3月

プログラミング頂点、ジオメトリ、ピクセルシェーダー、第2版、Wolfgang Engel、Jack Hoxley、Ralf Kornmann、Niko Suni、Jason Zink、2008年12月

最後は不均等な本の草案ですが、場所によっては非常に価値があります。Jack Hoxleyによるライティングの章では、さまざまなライティングモデルの詳細な説明と、シェーダーコードの動作について説明しています。


1

常に何かをレンダリングすることは、ポリゴンを使用することを意味します。アーティストでも使用されています。ポリゴンは平面図を意味します。3次元の何かを作成するには、常にいくつかのポリゴンを取り、それらを結合します。使用する平面図が多いほど、3次元図に追加できる詳細が増えます。方程式は、オブジェクトの放射輝度などの計算に使用されます。

この手順を完全に理解するには、前述のウィキペディアの記事nikを読む必要があります。

編集。: 「オブジェクトをテッセレーションする」という意味についての私の解釈については、もうわかりません。可能であれば、詳細に説明してもらえますか?


テッセレーションとは、固体オブジェクトがオブジェクトの表面に近い一連の平らなポリゴン(ほとんどの場合は三角形)に分解されることです。三角形の数が多いほど、表現はオブジェクトの実際の表面により近くなります。
フェイケン

1

コンピューティングの歴史において、さまざまなGPUがさまざまな方法で実装し、解像度、精度、リフレッシュレート、モニターの機能を考慮し、新しい興味深いAPIを徐々に実装してきました。

たとえば、一部のGPUは完全な3Dワールドビュー表現インターフェースを提供しますが、他のGPUはそれほど能力がありません。

ASIC(およびそれ以降)は、GPUが今日どのように魔法を使うかの中心にあります。仮想マシンを完全に実行するサブルーチンのような複雑さをシリコンに組み込むことができるため、すべての魔法が実現します。テセレーションを超えて、サーフェスマッピング、シャドウイングなど、すべてがGPUロジック内で処理されます。

お役に立てれば!
-pbr

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.