16

ラスタライズ(三角形)とレイトレーシングは、3Dシーンをレンダリングするために私が今まで出会った唯一の方法です。他にありますか?また、ポリゴンを使用しないなど、3Dを実行する他の実際に「そこにある」方法を知りたいです。

4

3 に答える 3

45

ああ!これらの答えは非常に知らされていません!

もちろん、質問が不正確であることは助けにはなりません。

OK、「レンダリング」は本当に幅広いトピックです。レンダリングの問題の1つは、カメラの可視性または「隠面アルゴリズム」です。つまり、各ピクセルにどのオブジェクトが表示されるかを把握します。可視性アルゴリズムにはさまざまな分類があります。それはおそらくポスターが求めていたものです(彼らがそれを「ラスタライズ」と「レイトレーシング」の間の二分法と考えていたとしたら)。

古典的な(現在はやや時代遅れの)分類リファレンスは、Sutherlandetal「ACharacteristicsofTen Hidden-Surface Algorithms」、ACM Computer Surveys 1974です。これは非常に時代遅れですが、そのようなアルゴリズムを分類する方法を考えるためのフレームワークを提供するのに優れています。 。

隠面アルゴリズムの1つのクラスには、「レイキャスティング」が含まれます。これは、カメラから各ピクセルを通る線とオブジェクト(三角形、代数曲面、NURBSなどを含むさまざまな表現を持つことができます)との交点を計算します。

隠面アルゴリズムの他のクラスには、「z-buffer」、「scanlinetechniques」、「listpriorityalgorithms」などがあります。計算サイクルが少なく、Zバッファを格納するのに十分なメモリがなかった時代には、アルゴリズムを使って非常にクリエイティブでした。

最近では、コンピューティングとメモリの両方が安価であるため、次の3つの手法がほぼ成功しています。(1)すべてを三角形にダイシングし、Zバッファを使用する。(2)レイキャスティング; (3)拡張zバッファを使用して透明度などを処理するレイエスのようなアルゴリズム。最新のグラフィックカードは#1です。ハイエンドのソフトウェアレンダリングは通常、#2または#3、あるいはその組み合わせを行います。さまざまなレイトレーシングハードウェアが提案され、構築されることもありますが、キャッチされることはありません。また、最新のGPUは、ハードコードされたラスタライズ技術に深刻な速度のデメリットがありますが、実際にレイトレーシングを行うのに十分なプログラムが可能です。他のよりエキゾチックなアルゴリズムは、何年にもわたってほとんど道に迷っています。(ただし、ボリュームレンダリングやその他の特別な目的には、さまざまな並べ替え/スプラッティングアルゴリズムを使用できます。)

「ラスター化」とは、実際には「オブジェクトがどのピクセル上にあるかを把握する」ことを意味します。慣例では、レイトレーシングを除外するように定められていますが、これは不安定です。違いがわかれば、ラスタライズは「この形状が重なるピクセルはどれか」と答えるのに対し、レイトレーシングは「このピクセルの後ろにあるオブジェクト」と答えることを正当化できると思います。

さて、「レンダリング」の分野で解決すべき問題は隠面判定だけではありません。各ピクセルにどのオブジェクトが表示されているかを知ることは、ほんの始まりにすぎません。また、それが何色であるかを知る必要があります。つまり、光がシーンの周りをどのように伝播するかを計算する方法が必要です。さまざまなテクニックがあり、通常はシャドウ、反射、および「グローバルイルミネーション」(ライトから直接来るのではなく、オブジェクト間で跳ね返るイルミネーション)の処理に分類されます。

「レイトレーシング」とは、レイトレーシング技術を適用して、シャドウ、反射、グローバルイルミネーションなどの可視性も決定することを意味します。すべてにレイトレーシングを使用したり、カメラの可視性とシャドウ、反射のレイトレーシングにさまざまなラスター化方法を使用したりできます。とGI。「フォトンマッピング」と「パストレーシング」は、特定の種類の光の伝播を計算するための手法です(レイトレーシングを使用するため、根本的に異なるレンダリング手法であると言うのは間違いです)。「ラジオシティ」法(グローバルな光の伝播を解決するための有限要素アプローチですが、最近、分野のほとんどの部分で支持されなくなっています)など、レイトレーシングを使用しないグローバルイルミネーション技術もあります。

特定の形状表現(NURBS、ボリューム、三角形)について言及する人も少し混乱しています。これは、レイトレーシングとラスタライズの直交問題です。たとえば、NURBSを直接レイトレーシングすることも、NURBSを三角形にダイスしてトレースすることもできます。三角形をZバッファに直接ラスタライズできますが、高次のパラメトリック曲面をスキャンライン順に直接ラスタライズすることもできます(Lane / Carpenter / etc CACM1980を参照)。

于 2009-04-24T18:04:47.863 に答える
5

フォトンマッピングと呼ばれる手法があります。これは実際にはレイトレーシングと非常によく似ていますが、複雑なシーンでさまざまな利点があります。実際、適切に実行された場合、真にリアルな(つまり、光学のすべての法則に従う)レンダリングを提供する唯一の方法(少なくとも私が知っている方法)です。これは、レイトレーシングよりもパフォーマンスが非常に悪いため、私が知る限り、控えめに使用されている手法です(これは、効果的に反対のことを行い、光源からカメラまでのフォトンがたどるパスをシミュレートします)。唯一の欠点。これは確かに興味深いアルゴリズムですが、レイトレーシングが十分に行われるまで(あるとしても)、広範囲に使用されることはありません。

于 2009-04-22T22:56:52.760 に答える
2

ウィキペディアのレンダリングの記事では、さまざまなテクニックについて説明しています。

冒頭の段落:

多くのレンダリングアルゴリズムが研究されており、レンダリングに使用されるソフトウェアは、最終的な画像を取得するために多くの異なる技術を採用する場合があります。

シーン内のすべての光線をトレースすることは非現実的であり、膨大な時間がかかります。サンプリングがインテリジェントに制限されていない場合、画像を生成するのに十分な大きさの部分をトレースすることでさえ、途方もない時間がかかります。

したがって、より効率的な光輸送モデリング技術の4つの緩いファミリが出現し ました。スキャンラインレンダリングを含むラスタライズは、高度な光学効果なしで、シーン内のオブジェクトを画像平面に幾何学的に投影します。レイキャスティングは、特定の視点から観察されたシーンを考慮し、ジオメトリと反射強度の非常に基本的な光学法則のみに基づいて観察された画像を計算し、おそらくモンテカルロ法を使用してアーチファクトを低減します。ラジオシティは、有限要素数学を使用して、表面からの光の拡散拡散をシミュレートします。レイトレーシングレイキャスティングに似ていますが、より高度な光学シミュレーションを採用しており、通常はモンテカルロ法を使用して、桁違いに遅い速度でより現実的な結果を取得します。

ほとんどの高度なソフトウェアは、2つ以上の技術を組み合わせて、妥当なコストで十分な結果を取得します。

もう1つの違いは、画像平面のピクセルを反復処理する画像順序アルゴリズムと、シーン内のオブジェクトを反復処理するオブジェクト順序アルゴリズムの違いです。通常、シーン内のオブジェクトはピクセルよりも少ないため、オブジェクトの順序は一般的に効率的です。

それらの説明から、私にはラジオシティだけが概念的に異なっているように見えます。

于 2009-04-22T22:42:47.303 に答える