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

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

3
(拡散/アルベド)テクスチャとしての16ビットハーフフロートリニアHDR画像?
だから私はしばらくこれについて考えていて、グーグルで答えを探しましたが、成功しませんでした。 すべてのテクスチャがJPEGなどの8ビットLDR画像である場合、レンダリング時に露出制御/トーンマッピングと競合する可能性はありません。これは、低ダイナミックレンジによってクランプされているため、実際には存在しないテクスチャの詳細を公開する必要がある画像のレンダリング露出を調整する場合です。したがって、テクスチャをHDRイメージとして保存し、.exrとして保存して、16ビットハーフフロートの線形カラースペースで適切なカラー表現を取得することは意味がありません(32ビット「フル」フロートはやりすぎかもしれません)。より詳細で正しい色の値を取得するには、GIとカラーブリードの計算方法にも影響があると思います。 それとも、必要なレンダリングの最終結果はおそらく何らかの方法で写真を撮ったときのテクスチャの露出レベルと同じになるので、それは単に必要ではないのですか?また、カメラは主に12〜14ビットで撮影するので、テクスチャを複数回露光し、それらすべてを1つのHDRIにつなぎ合わせるために余分な作業をすべて行う必要があります。 編集: 明確にするために、私は主にこれに興味を持っていますリアルタイムゲームエンジン。

1
ラジオメトリック単位またはフォトメトリック単位でレンダリングしますか?
従来のレンダリングでは、すべての計算を、完全なスペクトルレンダリングとして、またはコンポーネント単位(XYZ、RGBなど)として、放射測定単位で行うのが一般的です。 ただし、最新のレンダリングでは、より物理ベースのモデルが追加されるため、アーティストは、たとえばルーメン内の光の強度など、より一般的な測光単位で値を指定できるので便利です。 パイプラインをすべて1つのタイプのユニットに維持するには、次のいずれかを実行できます。 発光効率を使用して、フォトメトリック単位をラジオメトリック単位に変換します レンダリングパイプライン全体をフォトメトリック単位に保つ セバスチャン・ラガルドは、彼のSiggraph 2014プレゼンテーションの「フロストバイトをPBRに移動」のコースノートでこのアイデアを非常によく示しています。 私の質問はこれらです: フォトメトリック単位でのみレンダリングすることに不利な点はありますか? 私が知る限り、測光ユニットは人間の目に偏った放射測定ユニットにすぎません。最終的な画像を目で確認することを考えると、これは問題ではないと思います。 Frostbiteは、RGBコンポーネント単位のエンジンです。スペクトルレンダラーには、フォトメトリック単位のみでレンダリングすることによる追加の欠点がありますか?

1
色の意味で「ミュート」とはどういう意味ですか?
Adobe Kulerのように画像から色を抽出したい。カラフルまたはミュートを選択すると、対応する色が表示されます。しかし、カラフルなまたは落ち着いた色の定義は何ですか?「カラフル」、「ディープ」、「ミュート」という言葉は何を表していますか?
10 color 

1
マイクロファセット分布関数の仮定の理由は?
(とりわけ)粗い表面を通る屈折のマイクロファセットモデルのペーパーは、マイクロファセット分布関数Dに関する次の仮定を思い出させます。 マイクロファセット密度は正の値です マイクロサーフェスの総面積は、少なくとも対応するマクロサーフェスの面積と同じです マイクロサーフェスの(符号付き)投影面積は、任意の方向vのマクロサーフェスの投影面積と同じです。 1)分布密度が正の値である理由を理解できます。直感的に、2)傾斜したマイクロファセットの総面積がそれらの投影よりも小さくならないことを意味すると信じています。 しかし、私は3)の正当化を理解することは確かではありません。3番目の条件はどういう意味ですか?

2
最新のフィルレートと遅延レンダリングを使用しても、オクルージョンカリングは引き続き適切ですか?
たとえば、現在の最上位のGPUですが、GTX 980には驚異的な72.1ギガピクセル/秒のフィルレートがあり、背面から前面へのレンダリングやZバッファーチェックを行うと、とんでもないほど大きく、おそらく4kの解像度で。ポリゴン数に関して言えば、最近のGPUは、バッチ処理またはインスタンス化、あるいはその両方を行うと、数千から数億のテクスチャ付き三角形を滞りなく実行できます。 フォワードレンダリングでは、シェーダーが実行されるフラグメントの量がすぐに圧倒的になる可能性がありますが、遅延レンダリングでは、通常、解像度に応じてコストはほぼ一定であり、ほとんどのシェーディングまたは後処理エフェクトは、1080pでリアルタイムに実行できます。 いずれにせよ、今日の制限要因は最も一般的には描画呼び出し数とシェーディングコストであり、どちらも適切な遅延レンダリングとジオメトリバッチ処理によって比較的低く保たれているため、そのことを念頭に置くと、単なる裏面とアウト以外のものを選別しています。実質的な利点の錐台ポリゴン?多くの場合、コスト(CPU / GPU時間、プログラマー時間)が利点を上回らないのではないでしょうか。

1
ユニフォームの整列と宣言の順序は重要ですか?
「Practical Rendering&Computation with Direct3D 11(pages 325、326)」のセクション6.4 Constant Buffersで言及されています。 デフォルトでは、HLSLコンパイラーは定数が複数のfloat4レジスターにまたがらないように定数を調整しようとします。[...] HLSL定数バッファーのパッキングは、packoffsetキーワードを使用して手動で指定することもできます。 同じハードウェア機能にマップするため、OpenGLの同等のUniform Bufferオブジェクトにも同様のルールが適用されると思います。 バニラのユニフォームはどうですか?ユニフォームを宣言するときに適用されるルールは何ですか? uniform vec2 xy; // Can we expect the compiler to pack xy uniform vec2 zw; // into a same four component register? uniform vec2 rg; uniform float foo; // Will this prevent from packing rg and ba? …

1
ボロノイメッシュを作成するパイプライン
Mayaプラグイン(この質問はMayaから独立しています)を実装して、3Dボロノイパターンを作成したいと思います。 私はポイントサンプリングから始めなければならないことを知っています(このペーパーで説明する適応ポアソンサンプリングアルゴリズムを実装しました)。 これらの点から、ボロノイを適用してメッシュの3Dワイヤーを作成する必要があると思いました((Python)scipy.spatial.Voronoiを使用しようとしましたが、期待した結果とは異なっていました)。 何か不足していますか?そのようなパターンを作成するために実装する必要がある適切なパイプラインとアルゴリズムを誰かが提案できますか? [編集]以下は、このようにscipy.spatial.Voronoiから取得した結果を処理する例です(ここで提案されているように): vor = Voronoi(points) for vpair in vor.ridge_vertices: for i in range(len(vpair) - 1): if all(x >= 0 for x in vpair): v0 = vor.vertices[vpair[i]] v1 = vor.vertices[vpair[i+1]] create_line(v0.tolist(), v1.tolist()) 灰色の頂点はサンプリングされた点です(元の形状は単純な球でした): これはより複雑な形状(腕)です
10 3d  geometry  mesh  polygon 

1
半球調和の畳み込み
球面調和関数(SH)は、少数の係数のみで低周波数の球面関数を表す方法です。それらは、いくつかの素晴らしい数学的な特性を持っています。たとえば、カーネル関数h(x)(円対称性をもつ)とのたたみ込みは、次のように計算できます。 ランク3 SHのコサインローブを使用した畳み込みの場合、これにより、係数を使用したバンドの単純なスケーリングが行われます。 多くの場合、たとえば、不透明な表面上の特定の点に対する入射光では、球の半分がゼロ/未定義/未使用であるため、完全な球形の情報は必要ありません。このようにして、半球調和(HSH)が生まれました。 HSHでは、任意のカーネル(循環対称)を使用した畳み込みはどのように機能しますか?SHからの畳み込みを拡張できますか、またはこれについて詳しく説明する論文はありますか?
10 hemisphere 

1
重力の単一点源のみを使用してレイトレーシング重力レンズを使用できますか?
遠方の銀河のレンズ効果によって、遠方の物体の拡大をシミュレートしたいと思います。多数の点質量をモデル化する必要がありますか、それとも単一の平均点質量だけで済むのでしょうか? 単一点の質量の影響を受ける光線に対して双曲線を使用してレイトレースする方法はわかりますが、複数の点の質量からどこから始めればよいのかわかりません。したがって、このレイトレーサーを構築する前に、複数の質量を回避でき、それでも信じられない結果が得られるかどうかを知りたいのです。
10 raytracing 

1
コーンを使用したレイトレーシング:カバレッジ、重なり合う三角形、隣接する三角形
John Amanatidesは、彼の古典的な論文「レイトレーシングとコーン」で、古典的なレイトレーシングのバリエーションについて説明しています。概念拡張することによって光線をすることにより、開口角それ円錐作る、(少なすぎるモンテカルロ試料からのもの元含む)エイリアシング効果を低減することができます。 円錐と三角形の交差中に、スカラーカバレッジ値が計算されます。この値は、三角形で覆われている円錐の割合を表します。未満の場合、三角形が円錐を完全に覆っていないことを意味します。さらにテストが必要です。ただし、より高度な手法を使用しないと、コーンのどの程度がカバーされているかがわかるだけで、どの部分がカバーされているかはわかりません。111 アマナティデスは述べています: 現時点では、さまざまなオブジェクトからの寄与を混合するために部分的なカバレッジ値のみが使用されているため、オーバーラップするサーフェスは正しく計算されますが、隣接するサーフェスは計算されません。 これは私には意味がありません。私の見解では、それは逆です。例を挙げましょう。隣接する三角形が2つあります。緑と青の三角形で、それぞれが円錐のちょうど50%をカバーしています。彼らは視聴者から同じ距離にあります。 緑の三角形が最初にテストされます。カバレッジ値は0.5なので、次に青い三角形がテストされます。青色のカバレッジ値が0.5の場合、コーンは完全に覆われているので、最終的に50:50の緑と青の混合になります。すごい! 今度は、青い三角形を消して、緑の三角形の後ろに少し距離を置いて、赤い三角形を追加するとします。Greenyはカバレッジ値を0.5に戻します。テストするための青いものはもうないので、コーンを見下ろすとすぐに赤いものを見つけます。これも、0より大きいカバレッジ値を返しますが、緑色の値の背後にあるため、これを返す必要はありません。 したがって、これから、隣接する三角形は正常に機能するが、三角形の重複にはカバレッジマスクのような魔法を正しくする必要があると結論付けます。これはアマナティデスが言うことの反対です。私は何かを誤解しましたか、それともこれは紙の伝票ですか?
10 raytracing 


1
時間的再投影はどのように機能しますか?
時間的アンチエイリアシング(およびその他の時間的アルゴリズム)は、このフレームのピクセルを最後のフレームのピクセルと照合し、その情報を使用することで機能します。 フレーム間のピクセルを一致させるために、モーションベクトル情報と共に最後のフレームマトリックスと現在のフレームマトリックスを使用できることがわかります。 私が得ていないのは、再投影されたピクセルが有効かどうかをどのようにして知るのですか?たとえば、古いピクセルが別のオブジェクトの背後に隠れている可能性があります。 色だけですか?もしそうなら、アニメーション化されたテクスチャや変化する光の状態はどのように処理されますか?

1
多くの光源を使用した効率的なレンダリング
フォンシェーディングを使用して単一の光源でシーンをレンダリングするには、マテリアルと光源の両方のアンビエント/拡散/鏡面反射光コンポーネントに基づいて、フラグメントシェーダーに渡される各フラグメントの最終的な色を計算できます。 これは、個々の光源をフラグメントに適用した結果を次のように追加することで、複数の光源に対応するように簡単に拡張できます。 final_color = (0, 0, 0, 1) for each light: final_color += apply_light(material, light) final_color = clamp(final_color, (0,0,0,1), (1,1,1,1)) ただし、光源の数が非常に多い場合、このプロセスは非常に遅くなります。でN点灯し、このアプローチが行われるシェーディングフォンのための計算が必要ですNフラグメントあたりの回。 非常に多数の光源(数百、数千など)でシーンをレンダリングするためのより良いアプローチはありますか?

1
3D静止画で被写界深度が不一致ですか?
画像を2Dでレンダリングする場合、被写界深度効果(オブジェクトを焦点距離から遠くにぼかす)を追加すると、リアルさが増し、画像のオブジェクトに目が引き付けられます。3D(ステレオ)画像の場合、特定の深度で画像内のオブジェクトを見ると、他のすべての深度のオブジェクトの焦点がぼけます(ぼやけではなく、目で不正確に位置合わせされ、二重の画像になります)。これは、被写界深度効果を使用すると、矛盾する結果が生じることを意味します。異なる深度にあるオブジェクトを見ると、その深度は、二重の画像を持たない唯一の深度になりますが、ぼやけた。これにより、オブジェクトにフォーカスされるプロパティとフォーカスされないプロパティが与えられます。3D静止画像で、被写界深度効果は目での画像の受け入れに有害ですか、またはこれを回避する方法はありますか?

3
ピクセルの色を決定するためのガウス分布の最適な半径は何ですか?
画像平面上の点のガウス分布を使用してピクセル値を計算すると、最終的な画像で最も多くの情報が得られる半径/標準偏差はどれですか。半径が大きすぎると画像がぼやけ、小さすぎると最終的な画像に寄与しないピクセル未満の情報が無視されます。最適な妥協点はどこですか?この質問に対する単一の回答はありますか、それとも状況が変化する可能性がありますか? 私はこれをレイトレーシングとの関連で考えていますが、イメージのダウンサイジングなどにも同様に当てはまると思います。答えが異なる場合、私は連続した画像平面をサンプリングするときに何が適用されるかに興味があるので、大きな画像のピクセルの位置を使用して最適半径を決定することはできません。
10 sampling  pixels 

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