HDR&ブルーム

私は(一週間ブログを書いていない水に感じ、毎日の周りに数10、最初の完了に来月、OpenGLが悪化しシェーディングやSSAOを延期し、PBRの内容を学ぶことがなかった、)計画をして、実用的な側面(元旦の終了前)にグラフィックスの背後にある科学が正式に確認されていませんかについては(方向はおそらくOpenGLとよりよく知っているし、時間があれば、あなたもUE4、ユニティエンジン等の試みを試みることができる、などのラスタライザレンダラおよび書き込み)。

CSAppということで、その後、現在の計画は1月が遅くなります後に家の間に考慮に進捗状況を取って、12月の初めから、(ラボをしながら、具体的な計画を見て)ゆっくり学ぶに3-4ヶ月の時間を使用することで、その時間を緩和することができます。データ構造とアルゴリズムは、月に再学習するヶ月半の時間を計画しています。コンピュータネットワークは、その後、次の学期の準備を開始します。冬はまた、(そしておそらくものウェブサイトを構築することができる)を変換するために、再度、いくつかの記事のOpenGLのCN再翻訳を学び、その後、PRに言及する準備ができて行うようにしています。

まあ、ナンセンスはほとんどこっち来ます。

このブログは、依頼するHDRとブルームの過程での問題のいくつかを検討する予定です。


最初は、HDR(高ダイナミックレンジ)は、高ダイナミックレンジです。名前が示すように、それは色の広い範囲です。

1.0断片よりも高いシーンのカラー値は、唯一の1.0まで表示されます場合でも、1.0 - 最初に私たちが知っている必要があり、ディスプレイは0.0の色のみ値を表示することに限定されています。これは、多くのフラグメントは1.0色の値も表示されている(制約)1.0、大きな白いのパフォーマンスた超えて、ディテールの損失の多くを作ります。

この点で、我々は、変換カラー値は、細部の損失を防ぐために、区間[0.0、1.0]の照明方程式に対応するソリューションを提案する(細部はまだ少し多少失います)。

フレームバッファ(非デフォルトバッファフレーム)は、その内部フォーマットのカラーバッファのために標準化固定小数点形式(例えばGL_RGB)を使用する場合、(レンダリング後の)フレームバッファに格納されたこれらの値を前のOpenGL [0.0、1.0に制限されます]、我々は最初の内部フォーマットバッファする必要があるので、その色GL_RGB16F(GL_RGBA16F、GL_RGB32F、GL_RGBA32F)を変更し 、 サブフレームバッファが1.0を超えるカラー値を格納することができるようになります。このフレームバッファと呼ばれる浮動小数点フレームバッファ。

浮動小数点フレームから(カラーアネックス内に格納されて)限定されるものではなく、カラー値を与えるためにバッファした後、我々は、フレームバッファをデフォルトにする必要があります。しかし、直接ではなく(1.0以上の直接利用価値が1.0に拘束される場合)、我々は、カラーマップ(トーンマッピング)を介して点HDRカラー値を浮動がLDR [0.0、1.0]に変換される必要があります。トーンマッピングアルゴリズムは、ここではラインハルト一般的に使用されるマッピングを言うことはありません。もちろん、私は、ガンマ補正を覚えています。

ラインハルト・マッピング我々はHDR LDRへの変換あまり詳細の明るさの損失の一部となりますが、暗い部分はとてもフレンドリーで、罰金のそれほど暗い部分ではないため、その後、何の差別が存在しないしないように。

この点で、我々は、露光(露出)、暗い部分のより詳細を行います高い露出値(詳細は輝度を低減しつつ)の導入を検討することができ、低露光量はそれほど低減され、暗所で詳細には、細部の明るさを増加させること。

写真撮影では、我々は、大部分のカラー値は詳細を持っているように、露出の異なるレベルの合成後、異なる時間の詳細を、複数の色に露出を取ることができます。


そして、(また、グローグローとして知られている)ブルーム洪水について話

困難であり、このセクションでFloodlightは、困難なこと、シンプルで簡単です。フレームバッファのための主要なアプリケーション、及びフラグメントシェーダMRT(複数のターゲットをレンダリング)。

まず、光源(照明エリア)のためのブルームの一部は、光源の発するが点灯することを、従って、より現実的な効果を作り出します。次のような効果がある(出典LearnOpenGL

 

 次のように実装は、投光照明しました:

[1]ザ・HDRカラー別館にシーンのレンダリング(以下「付属書1」)別館に別の色を置くと、抽出されたシーンはHDR一定の明るさ(のは「付属書0」と呼んでみましょう) 。

[2]付録1は不鮮明になります。

[付記3]の結果は、アタッチメント1を0に加え、最終的にデフォルトの出力フレームバッファにされることを可能にします。

下のOpenGLベースを学ぶ関連するセクションいくつかの読書を行います。

最初のアクセサリーの色の問題であり、我々は、MRTの技術を取ることができますので、2つのテクスチャは、もちろん、我々はまた、我々はglDrawBuffersすることにより、複数の色にレンダリングされていることをOpenGLを知らせる明示的に必要とされるフレームバッファ(非デフォルト)にフラグメントシェーダの出力を併合することをバッファ(附属書1及びアネックス0)、カラーバッファにのみデフォルトの出力(アネックス0)。

附属書1及び附属書0を取得した後、我々は、附属書1にぼやけする必要があります。ここで2つのフレームバッファ、クロス色滲み(用アタッチメントの各A型である操作の数を保存するため)。我々は、この色に添付のバッファー、次いで得られた結果をフレームに格納される、その後テクスチャが経過フレームバッファ(動作中に実際に渡されたシェーダ断片)、ガウシアンぼかしとして付録1を起動する必要があり、我々は次に、色(方法着信テクスチャシェーダ断片と同じ)さらに取付受信フレームバッファ、及びアタッチメントの色に基づいて、ガウスぼかし。だから、交互に進みます。ガウスぼかしについて、参照が平和に関連する問題について知られていることができる:ガウスぼかし市の原則は何ですか

最後に、あいまいな結果が得られると、元のHDRは、ライン上のデフォルトのフレームバッファに(フレームバッファのデフォルトシェーダ断片で動作)、出力を混合します。

2つのレイアウトシェーダフラグメントと2つのフレームバッファを探し始めていたときに非常に不可解されます。トレースバック、ステップバイステップで描画処理の元の数、プロセスのコードに由来する結果に応じて、及びブルームの原理を理解します。

 

上記。

 

 

 

おすすめ

転載: www.cnblogs.com/zhlabcd/p/11950537.html