コンピューターグラフィックス

コンピューターグラフィックスの研究者やプログラマーのためのQ&A


1
PBR実装と混同される
私は素晴らしい数学の世界を発見しており、PBRと命名で巨大な壁にぶつかっているので、いくつか質問があります:BRDFを理解する限り、マテリアルが光にどのように反応するか(直接的な光と反射の受信)を説明します。しかし、「クックトーランス」では、反射については何も表示されません。統合方法がわからないため、拡散光と反射しか得られません。 「Oren-Nayar」のような異なる「拡散用語」についてたくさん読んだことがありますが、DFGノミネーターの異なる「D」のようなCook-Torranceの一部ですか?鏡面反射計算なしで置き換えますか? ブレンダーアーティストの背景から「GGX」について多くのことを読みましたが、それはぼやけた反射を引き起こすものだと思っていましたが、間違っているようで、今ではマイクロファセットなどのさまざまな状況でこのGGX用語を見つけていますこのチュートリアルの配布 つまり、問題は「Oren-Nayar」と「GGX」と「Cook-Torrance」が互いにどのように関係しているのか(それらがある場合)、それらのアルゴリズムに「vec3リフレクション」をどのように統合するかです。 前に言ったように、私は数学の初心者なので、あなたの答えが「数学が重い」なら、あなたの方程式のglsl / hlslバージョンを書いてください。 PS:私の質問はぼやけていることは理解していますが、主題を理解するのと同じくらいぼやけています。
13 glsl  pbr 

3
Cook-Torrance / Torrance-Sparrowモデルの正しい鏡面反射項
しばらくの間、私は物理ベースのレンダリングのトピックに関するいくつかの研究を行ってきました。何度も言及される反射モデルの1つは、クックトーランス /トーランス-スパロウモデルです。このモデルの各言及または説明では、鏡面反射用語の異なる形式が使用されているようです。私が見つけたバージョンは次のとおりです。 FD Gπ(N⃗ ⋅ V⃗ )(N⃗ ⋅ L⃗ )FDGπ(N→⋅V→)(N→⋅L→){\frac {FDG}{\pi ({\vec N}\cdot {\vec V})({\vec N}\cdot {\vec L})}} FD G4 (N⃗ ⋅ V⃗ )(N⃗ ⋅ L⃗ )FDG4(N→⋅V→)(N→⋅L→){\frac {FDG}{4 ({\vec N}\cdot {\vec V})({\vec N}\cdot {\vec L})}} FD G(N⃗ ⋅ V⃗ )(N⃗ ⋅ L⃗ )FDG(N→⋅V→)(N→⋅L→){\frac {FDG}{({\vec N}\cdot {\vec V})({\vec N}\cdot {\vec L})}} …

4
シェーダー数学の場合、リニアRGBがsRGBの色域を保持する必要があるのはなぜですか?
sRGBは、多くの場合「リニアRGB」と対比されます。 画像はディスクに保存され、sRGBのディスプレイに渡されます。これは、知覚的にほぼ均一な強度です。 シェーダー演算は線形RGBで行われ、物理的に強度が均一です。 ガンマ補正は、2つの間の変換に適用できます。 現在、sRGBには色域で色域を指定する規格があり、純粋な赤、緑、青、白の正確な位置を示しています。ただし、「リニアRGB」だけに対応する標準はありません。 任意の色度図上の三角形の中から選択するいくつかのよく知られた域がありますが、確かに、直線的であると言われて、ことができます: 実際には、「リニアRGB」と言うときは、「ガンマ補正なしのsRGB」を意味します。(これは、最終的な後処理ステップとしてsRGBガンマ補正を適用し、残りのレンダリングパイプラインの色空間を無視する場合に暗黙的に実行していることです。) しかし、なぜ その RGB色域は、補間と照明の計算に使用するのに適切な色域なのでしょうか?それはarbitrary意的です。どちらかといえば、内部計算に可能な限り最大の色域を使用し、最後に出力デバイスの色域に合わせて色をクリップまたはスケールしませんか? RGBライティングはどのような場合でも近似値になるので、どの色域を選択しても問題ありません。ディスプレイがネイティブにサポートする色域に最も近いものを選択することもできますか?それは単なる過失ですか?または、これらの異なる色域での計算では、実際にはまったく同じ結果が得られますか?

4
この3Dシーンが実際の写真のように見えないようにするために、どの物理的性質が「欠けている」のでしょうか?
だから私は基本的に現実的な3Dグラフィックスを作成する際に解決すべき主な問題を特定することを求めていることを知っていますが、この分野で多くの技術的経験のない人として、これらの問題を特定できれば、問題は何ですか?プログラムで実装します。 下のヒットマンの写真は、私が「超現実的」と呼ぶものです。しかし、それはまだ3Dモデルのように見えます。同じシーンの写真に実際の俳優と背景を入れた場合、どれがどれであるかを指摘できるほど明らかな違いがあるでしょう。 何故ですか?<100%正確な表面下散乱?照明は非常にわずかに消灯していますか?等 PS、タグを選択して申し訳ありません。私はこのSEについて十分な知識がなく、何を選択すればよいかわかりません。よろしければ編集してください。

3
球面調和関数と光プローブとは何ですか?
球面調和関数と光プローブとは何ですか?コンピュータグラフィックスではどの程度役立ちますか?彼らは正確に何をしますか?siggraphのプレゼンテーションからブログの投稿まで、どこでも球面調和関数と光プローブという言葉を聞いたことがあります。 最近、Matt Pettineo がそれらについて6部構成のブログシリーズを投稿しましたが、それが何であるかはまだわかりません。 環境照明を改善する別の方法ですか?

3
なぜクワッドは映画制作で使用され、三角形はゲームで使用されるのですか?
映画学校では、3Dモデリングのクラスで、映画のモデルを作成するときに、4つのエッジのあるポリゴンのトポロジを維持するように言われました。エッジ/頂点が4つより多い、または少ないポリゴンは不良と見なされ、回避する必要があります。一方、同じモデルがゲームで使用されている場合は、三角測量されます。 私は3Dモデリングを専攻していませんが、問題はまだ私の頭の中にあります。ゲームで3エッジポリゴンが使用されるのはなぜですか?レンダリングは速くなりますか?それでは、なぜそれがフィルムのレンダリングに使用されないのでしょうか?
13 3d  mesh  triangulation 

3
金属の高い鏡面性を説明するものは何ですか?
私の理解では、鏡面反射光カラーは通常、表面が垂直入射で照らされたときに反射される光の量を指し、またはと表記されています。さらに、非金属材料の場合、この値は材料の屈折率から計算され、式はフレネル方程式から導き出されます(1は空気またはボイドの屈折率): R 0 nF0F0F_0R0R0R_0んnnF0= (n − 1 )2(n + 1 )2F0=(n−1)2(n+1)2F_0 = \frac{(n - 1)^2}{(n + 1)^2} ウィキペディアの屈折率のこのリストによると: 通常、固体材料のは1.46(溶融石英)〜2.69(モアッサナイト)です。つまり、0.03と0.21の間のです。んnnF0F0F_0 液体のは通常1.33(水)から1.63(二硫化炭素)の間です。私が間違っていなければ、は0.02と0.057の間のを意味します。んnnF0F0F_0 通常、ガスのであるため、を0 と想定してもありません。F 0N ≈ 1n≈1n \approx 1F0F0F_0 これらの値はすべて非常に低いです。ダイヤモンド()やモアッサナイト()などの高屈折率の結晶でも、20%を超えることはほとんどありません。しかし、ほとんどの金属の値は50%を超えています。さらに、上記の式は金属には当てはまらないことを何度も読んだことがあります(これを使用しようとすると簡単に確認でき、完全に間違った結果が表示されます)。これ以上の説明はありません。F 0 = 0.21 F 0F0= 0.17F0=0.17F_0=0.17F0= 0.21F0=0.21F_0=0.21F0F0F_0 この違いを説明する現象は何ですか?金属のをどのように計算できますか(特に、接触している媒体が水のように1とは異なるIoRを持っている場合)?F0F0F_0

1
遠近法の正しい補間を無効にする場合(noperspective)
GLSLでは、頂点属性の遠近法による正しい補間がデフォルト設定です-noperspective修飾子を使用して、特定の頂点属性に対してそれを無効にできます。後処理シェーダー以外では、パースペクティブの正しい補間が無効になっているのを見たことがありません。他の使用例はありますか?また、パフォーマンス面でも違いはありますか?

2
なぜグラフィックスは絶縁体ではなく「誘電体」について語っているのですか?
たとえば、https: //google.github.io/filament/Filament.md.htmlにあるFilamentのドキュメントでは、非導体と導体を区別するときに「誘電体」という用語を使用します。また、stackexchangeでは、https: //computergraphics.stackexchange.com/search?page = 2&tab = Relevance&q = dielectric でも「誘電体」のヒットが多数発生します。私は通常、これらの例では「絶縁体」という言葉を期待していました。「誘電体」はいくつかの歴史的な情報源に由来していますか、それとも使用する正確な用語ですか?
12 material 

1
パストレーサー-多層材料と重要度サンプリング
現在、モンテカルロパストレーサーを実装しようとしています。私はいくつかの研究を行ってきましたが、材料への一般的なアプローチは、階層化モデルを使用することです。このようなもの: 光が表面に当たると、フレネルは、その光のどれだけが最初の層で反射され、どれだけが2番目の層に行くかなどを示します。 それで、私は似たようなことをしましたが、よりシンプルになりました。鏡面反射の1つのレイヤーと拡散の1つのレイヤーだけです。透過率はまだありません。これまでのところ、拡散反射光には単純なコサイン加重brdfを使用し、鏡面反射にはCook-Torranceマイクロファセットモデルを使用しています。 ここで難しい部分があります:光線が表面に到達したらどうすればよいですか?通常、表面材料に対応するbrdfを選択し、入射光の方向をサンプリングし、brdfを評価し、正しい確率分布関数で除算します。 しかし、ここでは、サーフェスヒットは事実上複数のマテリアルに対応しています。これを処理する素朴な方法は、各レイヤーヒットに対して1回サンプリングすることです。しかし、これは明らかに大きなパフォーマンスヒットの原因であり、私の道が事実上ツリーになります。 より良い解決策はありますか?

3
レイトレーシングでアンチエイリアシングはどのように実装されていますか?
オンラインでいくつかの記事を読んだ後、レイトレーシングでアンチエイリアシングがどのように機能するかについて私は自信がないと自信を持って言えます。 私が理解しているのは、単一のピクセル/光線が1ではなく4つのサブピクセルと4つの光線に分割されていることです。 誰かがこれがどのように行われるのかを説明できますか?

2
ピクセル内で複数のランダムサンプルを使用するアンチエイリアシングの基本的な理由は何ですか?
グラフィックスでは、ピクセルの境界内で複数のサンプルを取得し、それらを組み合わせて(一般的には単に平均化して)最終サンプルピクセルカラーにするのが一般的です。これには、画像のアンチエイリアシングの効果があります。 あなたが効果的にやっているのは、ピクセルが表す領域にピクセルの色を統合しているからです。この考え方では、モンテカルロ統合を行うには、「ランダムな」サンプルを平均化することが理想的な設定のようです。(「ランダム」は成層化、ブルーノイズベース、低不一致シーケンスなど) 一方、これは、デジタル信号処理の観点からは間違っている(または、少なくとも可能な限り正確ではない)と感じています。その観点から、多くのサンプルを取得し、ボックスフィルター(ボックスブラー)を使用してダウンサンプリングし、最終的なピクセル値を取得しているように感じます。その観点から、サンプルを平均化するのではなく、sincフィルターを使用することが理想的なようです。ボックスフィルターは、これらの線に沿ったsincの考え方に対するより安価な近似であることがわかりました。 これにより、少し混乱します。ピクセル領域を統合し、平均化が正しいというコアアイデアはありますか?または、ダウンサンプリングしてsincを使用する必要がありますが、高速なのでボックスフィルターを使用していますか? それともまったく別のものですか? 少し関連:レイトレーシングのアンチエイリアシング/フィルタリング


2
パストレースでテントフィルターを使用する理由
99行のCパストレーサーSmallptは、レンダリングするピクセルごとに2x2サブピクセルグリッドをレンダリングし、次にテントフィルターを実行してそれらを結合します。 ここでコードを説明する興味深いプレゼンテーションがあり、テントフィルターに言及していますが、なぜ存在するのかは説明していません。 この場合、ボックスブラー(単なるサンプルの平均化)よりもテントフィルターの方が望ましい理由を誰でも説明できますか? バイキュービックエルミート補間など、テントフィルターよりも優れたものを使用する方が高品質でしょうか?

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