タグ付けされた質問 「lighting」


2
パストレーシング用の適切なレンズ/カメラの客観的モデルを構築する方法
smallptを学習して実験した後、小さなパストレーサーを作成しました。 自分で書いていない(理解していない)唯一のことは、初期光線がどのように計算され、カメラから発射されるかです。原則は正しいのですが、次の方法を説明するリソースを探しています。 光線の初期方向を計算します おそらく被写界深度などの効果を可能にする(ピンホールカメラではなく)実際のレンズをモデル化しますか? 最先端の数学と物理学は必須ではありませんが、十分に説明されていればOKです。

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

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

2
生成されたジオメトリの表面法線を計算する方法
呼び出し元コードからの入力に基づいて3D形状を生成するクラスがあります。入力は、長さ、深さ、弧などです。私のコードはジオメトリを完全に生成しますが、表面の法線を計算するときに問題が発生します。点灯すると、計算中の不正確な表面法線により、私の形状に非常に奇妙な色/テクスチャがあります。私のすべての研究から、数学は正しいと信じています。私の技術や方法に何か問題があるようです。 高レベルでは、生成された形状の表面法線をプログラムでどのように計算しますか?私は自分のコードにiOSでSwift / SceneKitを使用していますが、一般的な答えは結構です。 形状を表す2つの配列があります。1つは、形状を構成する頂点を表す3Dポイントの配列です。もう1つの配列は、頂点を三角形にマッピングする最初の配列のインデックスのリストです。そのデータを取得して、形状の照明を支援する表面法線のセットである3番目の配列を生成する必要があります。(SCNGeometrySourceSemanticNormalSceneKitを参照) 頂点とインデックスのリストは、クラスへの入力に応じて常に異なるため、サーフェス法線を事前に計算したりハードコードしたりすることはできません。


2
アンビエント照明とは何ですか?
ウィキペディアは言う: アンビエント光源は、シーン内のすべてのオブジェクトに等しく影響を与える、固定強度および固定色の光源を表します。 「すべてのオブジェクトに等しく影響を与える」とは、すべてのオブジェクトが同じ量の光を受け取ることを意味しますか?したがって、シーンに3つの家がある場合、すべてのオブジェクトが同じ量の光を受け取るように、アンビエントライトソースの特定の位置を計算する必要がありますか?もしそうでなければ、あなたは周囲の光源を持っていないでしょうか? 太陽からの「通常の」照明と環境照明の違いは何ですか?
11 lighting 

2
画面スペースのアンビエントオクルージョンはどのように実装されていますか?
ウィキペディアからの説明がわかりません。 画面上のすべてのピクセルについて、ピクセルシェーダーは現在のピクセルの周囲の深度値をサンプリングし、サンプリングされた各ポイントからオクルージョンの量を計算しようとします。 周囲のピクセルの深度値は、オクルージョンについて何かを伝えることができますか?閉塞は、あなたがオブジェクトBを参照してくださいすることができないように、オブジェクトAは、別のオブジェクトBの前に立ったとき、私は理解して、たまたましかし、なぜあなたは今の深さピクセルでなり、周囲のピクセル?つまり、これらのピクセルが見えるので、オクルージョンはありません。多分私は咬合が間違っていることを理解しました。 また、他のチュートリアルではカーネルという用語も理解していません。カーネルとは何ですか、なぜそれをssaoに使用するのですか? 私の質問に関して誰かがアルゴリズムの詳細な説明をすることはできますか?

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
グローシェーダーを微調整して見栄えを良くする
私は単純なゲームをしていて、その主題はこれらの小さな線です。iOSとAndroidをターゲットにしているため、現時点で実行できるプロセッサの範囲は非常に広いです。 2つの理由でリアルタイムのグローを追加しようとしています ほとんどのデバイスでアンチエイリアスを処理するためのレンダリング時間がないという事実を隠そうとしています。 ゲームの主題は純粋な光であることになっています。つまり、それらのものが純粋な光のように見えるはずです。 私はかなり長い間、分離可能なガウスぼかしシェーダーを微調整してきました、そして私は欲求不満の点に達しました、私はそれを正しく見せることができません、おそらく問題は光のギザギザのエッジを無駄に隠そうとしていることですその間、光をぼやけさせないようにします。 私の最大の問題は、それを最高に見えるようにするために必要なすべての変数です。 私はグラフィックス/レンダリングに非常に慣れており、決してアーティストではありません。恐らく、私にとってのレンディングで最もイライラするのは、関係しているように見えるすべての変数です。輝きをもって私は多くの可能な変化を見てきました。 A.ブレンドモード、スクリーンブレンドモード、またはその他の調合を追加する B.ぼかし、通常の組み合わせ前の重み付け C.ガウスベル関数のシグマ(私はこの 紛らわしい計算機を使用していますが、他の人が持っているのと同じ値を与えていないようです) D. sigma関数に送信される "x"値のスカラー E.サンプルスケール(ぼかし半径を小さくまたは大きくする) F.グローバッファーの解像度を変更する このように多くの変数を扱うときに、どのようにして「最適な」定数を見つけるのでしょうか。 微調整を行ってから変更が表示されるまでの時間が長いため、問題も発生しています。シェーダートイで実行しますが、この画像をロードしたり、そのようなものを手続き的に生成したりすることはできません。 現在、ガウシアンベルカーブカーネルのシグマに悩まされています。特に、プロセッサーの速度が必要なため、数式ではなく数値でコーディングしているためです。使用する良いシグマを提案できますか?

2
スペクトルレンダリングはどのように処理されますか?
すべてのスペクトルレンダリングはシミュレーションとして処理されますか?リアルタイム、または単に「完全な物理方程式を解かずにリアルに見える」など、「コンシューマー」レンダリングに合わせたテクニックはありますか? スペクトル効果のレンダリングをどのように処理するかを理解したいと思います。光子は波長の範囲として説明する必要があるようで、表面への入射のいずれか オリジナルを置き換え、スペクトル関数全体で複数の新しいフォトンを解決し、それぞれが独自の新しいベクトルで しきい値を指定して、元の(またはわずかに変更された)光子を維持します 私は既存の仕事の方向に向けられることを望みますが、このトピックの色付けに感謝します。


1
「オブジェクトスペースライティング」とは何ですか?
NitrousエンジンのデモであるStar Swarmを見て、「Nitrousはリアルタイムフィルム品質のモーションブラーを含む、フィルムで使用されているのと同じテクニックであるObject Space Lightingを使用しています」という小さな行を見つけました。 「オブジェクト空間のライティング」や「オブジェクト空間のレンダリング」について探してみましたが、何も思いつきませんでした。「オブジェクトスペース」と聞くと、オブジェクトごとに実行することを考えていますが、メソッドの詳細な説明を見つけたいと思っていました。 「オブジェクトスペースライティング」について何か知っている人はいますか。そうであれば、技術的な詳細(その方法、長所、短所など)について詳しく教えてもらえますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.