トーンマッピングと目の順応-淡い色と暗い画像


9

私は目の順応とHDRとともにトーンマッピングを実装しようとしています。実際に実装しましたが、結果に満足できず、何か間違ったことをしたと思います。

私の最終的な画像(後処理前)は、フロートテクスチャの半分に保存しています。2つのヘルパーテクスチャもあります。最初のログは、最後のミップマップにログの輝度とその平均、最小、最大の色を保存します。2つ目は、次のように計算される適応値を格納します。

prevLum + (avgLum - prevLum) * (1.0 - exp2(-adaptionRate))

ここで、prevLumは以前の適応値です(このテクスチャのサイズは1x1です)。対数輝度テクスチャはR8B8G8形式で、2番目はR8です。チュートリアルでは、フロートテクスチャの半分が使用されていることを確認しましたが、私の場合、画像が明るすぎます(ほぼ白)。

最後のポストプロセスシェーダーでは、このコードを使用してアイアダプテーションとトーンマッピングを取得するためにすべての値を使用しています。

float autokey(in float lum) {
    return 1.03 - 2.0 / (2.0 + log10(lum + 1.0));
}

float hejl(in float color) {
    float x = max(0.0, color - 0.004);
    return (x * (A * x + B)) / (x * (A * x + C) + D);
}

float adaptedLum = texture(adaptedLuminance, vec2(0.5)).r;
float exp = exposure * autokey(adaptedLum) / adaptedLum;
result *= exp;

result.xyz=RGB2xyY(result.xyz); // conversion to CIE xyY

result.z = hejl(result.z);

result.xyz=xyY2RGB(result.xyz);

そして、これが私の結果です:

  • 目の順応とトーンマッピングがオン 目の順応とトーンマッピング
  • 目の順応のみ 目の順応
  • トーンマッピングのみ トーンマッピング
  • すべてオフ オフ

トーンマッピングをオンにすると、バニーの色が薄くなります。また、目の順応をオンにすると、最終的な画像ははるかに暗くなります。私はここで何かが間違っていると思うので、誰かが私にそれを引き起こす原因を説明してもらえますか?色空間がよくわからないのかな?または、トーンマッピングと目の順応の前に適用されるブルームとは?

私はまた、目の順応に関して奇妙な行動をしています。暗いところを見ると背景(空)が明るくなります。大丈夫ですが、カメラの中心が黒い領域にある場合は常に発生します(カメラがこの領域からどれだけ離れていても)。

このページのプロジェクトに含まれる実装に基づいています: John ChapmanNutty Software


最初に、ブルームを無効にして、絶対に必要なものだけを操作するようにしてください。また、トーンマッピングによって白が暗くなる場合は、おそらく0〜1の範囲でマッピングされないため、これを変更するか、それに応じて照明を調整する必要があります。
akaltar

よくできました。プロジェクトへのリンクはありますか?
ダニジャー

ありがとうございました。現在、リンクはありません。しかし、修士論文を完成させるときには、YouTubeまたは.exeファイルでビデオを公開します。
ハリー

回答:


1

トーンマップブルーム、ぼかし、または被写界深度はありません。

これらの効果は他のすべての効果よりも優先されます。また、値を試してみてください。


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