私は現在、WebGLの直接描画(マルチパスや後処理なし)のレンダリングを行っています。私は、すべてのフレームを実行するのに十分効率的なやり方で、レンダリングされた画像全体の平均輝度/輝度(すなわち単一の数値)を決定したいと考えています。WebGLの平均的なシーンの明るさはどのようにして決められますか?
私が達成しようとしているのは、現実的な照明とトランジションなしの屋内と屋外の両方のシーンを見るために、シーン内に「露出」調整(ビデオカメラまたは人間の目として)を実装することです。現在のフレームの輝度は、次のフレームの輝度に対する負のフィードバックとなる。
現在のところ、CPUの側では、シーンデータから数個の光線を送信して、その点の輝度を求めることで、非常におおよその近似値を計算しています。これはうまくいくが、安定している試料が少なすぎる(光線が光源を横切るため、明るさは視野角によって著しく変化する)。私のアプリケーションが通常はCPUに拘束されているので、可能な限りGPUに仕事を委ねることを好みます。
偶然、WebGLに渡される情報を使用することは可能ですか、イメージベースのソリューションが必要ですか?解決策は正確である必要がありますか、または近似で十分ですか? –
@StefanHanke編集を参照してください。簡単には:近似は大丈夫です。光は世界のデータから簡単に抽出されますが、私はより多くのCPUタスクを追加したくありません。 –
私の考えは:MRTを使って解像度の異なる2つのカラーアタッチメントにレンダリングする。 WebGLが[1色の添付ファイルのみ](http://stackoverflow.com/q/9820496/1262542)をサポートしているため、複数の解像度を使用するレンダリングが新しいOpenGLバージョンでもサポートされているかどうかはわかりません。 –