問題タブ [hdr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
687 参照

c++ - OpenGL HDR 値はクランプされます

OpenGL で HDR を実装しようとしています。

ここで HDR フレームバッファを作成する方法:



最初のステップとして、このピクセル シェーダーを使用してシーンをレンダリングし、HDR フレームバッファーをテストします。



最後に、このピクセル シェーダーを使用して画面にレンダリングします。



私の 2 番目のシェーダーによると、HDR が機能する場合、緑色のフルスクリーンを取得することになっています。しかし、最初のステップで値が固定されているようで、赤い画面が表示されます ( if(color<1.1)gl_FragColor = vec4(1.0,0.0,0.0,0.0); )

0 投票する
0 に答える
2318 参照

opengl - トーン マッピング シェーダー OpenGL

OpenGL で HDR 画像にトーン マッピングを実装しようとしています。

以前、HDR 画像の手動ミップ マッピングを作成RGBA32Fして、輝度の平均値を持つ 1x1 テクスチャ (形式) を取得しました。

トーン マッピング関数の例を見つけて、フラグメント シェーダーに配置しました。

私のレンダー コードではGL_TEXTURE0、HDR イメージ (フォーマットGL_RGBA32F)、GL_TEXTURE1平均値の 1x1 テクスチャを使用しています。

RGBA8レンダリングしたいLDR テクスチャ (形式) は、上の FrameBuffer (fboTN) に割り当てられますGL_COLOR_ATTACHMENT0

FreeImage ライブラリを使用して、HDR イメージ (OpenEXR 形式) をアップロードします。

コードは次のとおりです。

私の出力はほとんど黒い画面です(私が描いたクワッドを推測できます)。 texShadシェーダーは非常に単純です。画面にテクスチャを描画するだけです。

トーン マッピング シェーダーを示します。

頂点シェーダーは次のとおりです (シンプル)。

そしてフラグメント:

出力のようなものを入れてcolor.a = Xも変化しません。

texture(downSampler,vec2(0.0,0.0)).a1 つの重要な疑問:平均値を取得するには、この ( ) は正しいでしょうか? 0,0テクスチャのサイズが 1x1 であるため、取得する座標が正しいかどうかはわかりません。

これに多くの時間を費やしましたが、何が問題なのかわかりません。

出力は次のとおりです。

出力

0 投票する
1 に答える
2663 参照

opengl-es - HDR レンダラーに変換するには?

Webgl 遅延レンダラーをハイ ダイナミック レンジを使用するレンダラーに変換中です。私はオンラインのさまざまな情報源からこの件について多くのことを読みましたが、いくつかの質問があります。私が行った読書のほとんどは HDR 画像のレンダリングに関するものですが、私の質問は、HDR をサポートするためにレンダラーをどのように変更する必要があるかに関するものです。

私が理解しているように、HDR は基本的に、非常に明るいシーンでも暗いシーンでも詳細を確認できるように、より高い光の範囲をキャプチャしようとしています。通常、ゲームでは強度 1 を使用して白色光と 0 黒を表します。しかし、HDR / 現実世界では、範囲ははるかに多様です。つまり、エンジン内の太陽は、10 の電球よりも 10000 倍明るいかもしれません。

これらのより大きな範囲に対処するには、レンダラーを変換して、ライト パスに浮動小数点レンダー ターゲット (またはメモリ使用量が少ないので理想的には半分の浮動小数点数) を使用する必要があります。

私の最初の質問は、照明についてです。浮動小数点のレンダー ターゲットに加えて、これは単純に、以前は強度 1 の太陽を表すライトがあった場合、10000 として表すことができる/表す必要があるということですか? いえ

ライティング システムにその他の基本的な変更はありますか (float テクスチャとより高い範囲を除く)?

これに続いて、(説明したように高い範囲で) すべてのライト値を加算的に蓄積した float レンダー ターゲットができました。この時点で、レンダー ターゲットでブルームなどの後処理を行う場合があります。完了したら、画面に送信する前にトーン マッピングする必要があります。これは、光の範囲をモニターの範囲に戻す必要があるためです。

したがって、トーン マッピング フェーズでは、おそらくポスト プロセスを使用し、トーン マッピング式を使用して HDR 照明を低ダイナミック レンジに変換します。私が選んだテクニックは、Uncharted 2 の John Hables でした。

トーン マッピングの記事

2 番目の質問は、このトーン マッピング フェーズに関連しています。単にこのテクニック以上のものがあるのでしょうか? HDR と見なすために必要なのは、より高い光強度を使用して露出を微調整することだけですか? 一部のゲームには平均発光を計算するための自動露出機能があることは理解していますが、最も基本的なレベルでこれは必要ですか? おそらく、露出を手動で微調整するだけで使用できますか?

多くのドキュメントで議論されている他のことは、ガマ補正のことです。ガマ補正は2箇所で行われているようです。最初にテクスチャが読み取られるとき、次に画面に送信されるときにもう一度実行されます。テクスチャを読み込むときは、単に次のように変更する必要があります。

次に、上記のトーン マッピング手法では、出力補正は次のように行われます。

John Hables のプレゼンテーションから、すべてのテクスチャをこのように修正する必要があるわけではないと述べています。拡散テクスチャは必須ですが、法線マップなどは必ずしも必須ではありません。

3 番目の質問は、このガマ補正についてです。これは機能するために必要ですか?拡散反射光マップが読み込まれるすべての場所でエンジンを変更する必要があるということですか?

それが、この変換に関係するものについての私の現在の理解です。それは正しいですか、私が誤解したり間違ったりしたことはありますか?

0 投票する
1 に答える
1534 参照

ios - カスタム AVFoundation ベースのカメラ アプリで HDR を使用するには?

このフレームワークを使用AVFoundationして、カスタム カメラ アプリを作成します。

カスタム カメラ アプリで HDR を使用して写真をキャプチャすることはできますか? つまり、HDR はカメラ API のどこかに公開されていますか?

0 投票する
1 に答える
2539 参照

ffmpeg - ffmpeg: 通常速度のビデオからの滑らかで安定したタイムラプス ビデオ

通常速度の1時間のドライブレコーダー動画から、滑らかなタイムラプス動画を作成することはできますか?

「タイムラプス + ffmpeg」について私が見つけたオンラインのほとんどのチュートリアルは、タイムラプス ビデオに結合された静的な jpeg ファイルを使用しています。これらはしばしばフレーム間のジグルを引き起こします.ビデオを非常に滑らかで安定させる特定のパラメータはありますか?

setpts=0.5*PTSトリックのためだけにすべきですか?必須またはあまり知られていないトリックはありますか?

更新: この質問は、特定のプログラム可能な ffmpeg パラメーターを求めています。

0 投票する
1 に答える
2387 参照

java - .HDR ファイルを開くための imageIO

.hdr ファイルを開いて作業する必要がありますが、imageIO はその形式をサポートしていません。

問題は、情報の損失を最小限に抑える必要があることです。32bpc は完璧で、16 は問題なく、16 未満では機能しません。

私が思いついた3つの可能な解決策があります:

  1. .HDR ファイルを開くことができるプラグインを見つけます。私はそれをたくさん探していましたが、運がありませんでした。
  2. .HDR ファイルを、プラグインを見つけられる形式に変換する方法を見つけてください。もしかしてティフ?これも試してみましたが、まだ運がありません。
  3. ダイナミック レンジを 32bpc から 16bpc に減らしてから、png に変換します。pngファイルを取得したら勝つので、これは注意が必要ですが、画像を殺さずに範囲を切り取るのは簡単ではありません..

何をするように勧めますか?これらの 3 つのオプションのいずれかを機能させる方法を知っていますか? それとももっといい考えがありますか?

0 投票する
2 に答える
2306 参照

android - Android カメラ API SCENE_MODE_HDR は Nexus 5 でサポートされていませんか?

私の Nexus 5 は、カメラ API (および camera2 API) の HDR シーン モードをサポートしていません。これはメーカーサポートによるものでしょうか?もしそうなら、ストックカメラのようにカスタムカメラアプリにHDRシーンモードを実装したいですか?

両方のカメラ API を使用してみましたが、SCENE_MODE_HDR パラメータをサポートしているものはありませんでした。

APIの使用android.hardware.camera: (ログ HDR モードはサポートされていません)

APIの使用android.hardware.camera2: (ログ HDR モードはサポートされていません)

ここで明らかな何かが欠けていますか?

0 投票する
0 に答える
743 参照

java - Exposure Fusion は Android で OpenCV を使用して青色の画像を返します

MergeMertens クラスを使用して、Android に OpenCV 3.0.0 で Exposure Fusion を実装しようとしています。問題は、画像が青で返されることです。これがどのように見えるかのスクリーンショットです: http://take.ms/agYSD

ファイルの RGB/BGR 表現に問題があると思います。マージを適用する前後にRGBからBGRに、またはその逆に変換しようとしましたが、とにかく色に問題がありました。

グレースケールの画像を使用している場合は、すべて問題ありません。

私が使用しているコードは次のとおりです。

0 投票する
1 に答える
1791 参照

ios - iOS で openCV を使用したハイ ダイナミック レンジ イメージングで出力が文字化けする

iOSでopenCV 3を使用して、最終的にEXRファイルとして出力される複数の露出からHDR画像を生成しようとしています。HDR 画像を作成しようとすると、出力が文字化けしていることに気付きました。カメラのレスポンスを作ろうとしたのは間違いだったと思い、ゼロから始めて、openCV の HDR イメージングのチュートリアル資料を iOS に適応させましたが、同様の結果が得られます。次の C++ コードは、文字化けした画像を返します。

画像は次のようになります。

悪い画像出力

画像を分析し、さまざまな色空間変換を試みましたが、データがジャンクのようです。

openCV フレームワークは、openCV.org Web サイトから入手した最新のコンパイル済み 3.0.0 バージョンです。RC とアルファは同じ結果を生成し、現在のバージョンはビルドされません (iOS または OSX の場合)。私の次のステップは、フレームワークをゼロからコンパイルするか、別のプラットフォームでサンプルを動作させて、問題がプラットフォーム固有のものなのか、openCV HDR 関数自体にあるのかを確認することだと考えていました。しかし、それを行う前に、誰かが同じ問題に遭遇したかどうか、または盲目的に明らかな何かを見逃していないかどうかを確認するために、スタックオーバーフローで問題を投げ出すと思いました。

サンプルの xcode プロジェクトをここにアップロードしました。

https://github.com/artandmath/openCVHDRSwiftExample

openCV を迅速に動作させるには、Github のユーザー ファウンドリーの助けが必要でした。

0 投票する
1 に答える
1522 参照

python - OpenCV MergeMertens は、Python Vs で異なる結果をもたらします。C++

Python で HDR Mertens 露出フュージョンを実行すると、C++ でまったく同じ関数を実行したときに得られない奇妙な色のアーティファクトが発生します。( HDR チュートリアルを実行しただけです)

データ型に問題があるように思えますが、すべてのオプションを試しましたが、何も機能しません。私は何か間違ったことをしていますか?

OpenCV 3.0.0 で Python 3.5 64 ビットを実行しています。

露出画像はウィキペディアから取得しました: 1/30 秒1/4 秒2.5 秒15 秒

Python コード:

Pythonで得た結果:

ここに画像の説明を入力

C++で得た結果:

ここに画像の説明を入力