バンプマップ、法線マップ、変位マップをガンマ補正しないのはなぜですか?


9

だから私はかなり技術的な観点からこれに頭を抱えようとしています。

シェーダーにバンプマップ、法線マップ、または変位マップを追加する場合、それらはガンマ補正されるべきではありません。しかし、拡散テクスチャはそうするべきです。しかし、なぜ?

JPEG、PNG、またはTIFFなどの形式でファイルを8ビット(または16ビット整数)で保存すると、0.4545(1 / 2.2)のガンマが焼き付けられます。したがって、カメラは実世界(線形)からの光をキャプチャします写真をJPEGとして保存するとき、情報を8ビットに圧縮する方法として、ガンマ値1 / 2.2が追加されます。次に、ガンマ値2.2を追加するモニターで画像を表示すると、輝度が再び線形になります。

したがって、(写真などの)拡散テクスチャを使用する場合、その1 / 2.2ガンマを「削除」して線形にする(線形化と呼ばれる)必要があるため、テクスチャは暗く見えますが、これらの値は数学的な観点からは正しいので、レンダラーは正しい計算をしてください。補足:ソフトウェアは2.2のディスプレイガンマを使用して、テクスチャが正しく見えることを確認しました。これは、内部計算のためだけに線形化されています。しかし、Photoshopでバンプマップを作成してJPGまたはPNGとして保存すると、その1 / 2.2ガンマもその画像に焼き付けられるので、このバンプマップも線形化する必要がないのはなぜですか。

拡散反射光テクスチャの場合と同様に、入力ガンマが2.2の3ds Maxでバンプマップをロードすると、拡散反射光は正しく見えますが、バンプは正しく見えないので、バンプの入力ガンマを1.0に設定する必要があります。正しく見えるようにするためですが、先ほど述べたように、なぜ両方の画像ファイルに1 / 2.2ガンマが焼き付けられているのでしょうか。

回答:


5

写真がガンマ空間に保存されているという事実は、PNGやJPEGとは関係なく、写真であることと関係があります。

カメラは50%の強度を検出しますが、127の代わりに187として保存します。これは、256の異なる可能な値しかない場合に人間の目にとって重要な色情報を維持するためにより効率的だからです。そう言えば、Photoshopもそうです。

法線マップまたはディスプレイスメントマップの場合、この必要はないため、それらにガンマ空間を使用する理由はありませんそれらにガンマを使用すると、精度の分散方法に影響するため、実際には間違いになります)。したがって、通常のテクスチャまたはディスプレイスメントテクスチャをデコードするときに、ガンマを適用する必要はありません。

ただし、たとえばGバッファの場合のように、法線マップが別のスペースでエンコードされている場合は、対応する修正を適用する必要があります。


上記のようにガンマを焼き込んだ画像をPhotoshopに保存するようにPhotoshopに指示するにはどうすればよいですか。
Kristoffer Helander 16

これは「理由」をまったく説明していません。それは単に「何」を繰り返すだけです。
user1118321

@ user1118321:そうだと思います。わかりやすくするために強調を加えました。
Julien Guertault

まあ、本当ですが、それでもまだ理由が説明されていません。私は同じ問題があることを認めます。そのような圧縮によってもたらされる利益または害の欠如に言及します。必要はありませんが、なぜかというと、画像のデータは人間の感覚により独特であるのに対し、空間的推論は本質的に(3Dアプリに関する限り)より直線的です
joojaa

3

JPG、PNG、またはその他の8ビット画像フォーマットには、本質的に1 / 2.2ガンマが関連付けられていません。これらは0〜255の値を格納するだけです。そのデータがどのように解釈されるかは、それらのファイルを読み書きするソフトウェアに依存します。興味深い事実は、ほとんどの画像編集ソフトウェアがデフォルトでガンマ色空間を使用することです。すべてのブラシ、エフェクト、フィルター、さらにはカラーピッカーもすべてガンマ空間で動作します。Photoshopのカラーピッカーでグレーの色調を確認してください。それらは線形分布に従いません。

その結果、Photoshopは、画像を開いたり保存したりするとき(デフォルト)、ガンマと線形色空間の間の変換を行わず、表示するときだけにします。つまり、写真を編集するのと同じくらい簡単に、高さマップなどの線形データを作成または編集できます。バンプマップは保存されていないため、ガンマ補正を使用してロードすると正しく表示されません。


これは、画像に保存された値が1 / 2.2であることを説明するYouTubeビデオでもあります(ただし、単純化し、平方根であると説明しているだけです。テキストにはその免責事項があります)。コンピューターの色が壊れている-MinutePhysics リンク
Kristoffer Helander 16

@KristofferHelanderはい、ただし、値を平方根として保存するのはカメラのみであり、それを二乗するディスプレイのみであると彼は言います。Photoshopなどの画像編集ソフトウェアは、変換なしで画像を開いて保存するだけなので、色をブレンドしようとすると、アーティファクトがビデオに表示されます。
Quinchilion

これが間違っている場合は修正してください。Photoshopで画面上で線形に見えるグラデーションランプを描画すると、そのランプの値は実際には線形になります。しかし、Photoshopは、モニターが2.2のガンマを追加するため、表示ガンマを1 / 2.2に追加します。したがって、画像のピクセル値は線形であり、線形に見えます。しかし、この1 / 2.2ガンマは、Photoshopが画像を表示するために使用する表示ガンマにすぎず、画像に焼き付けられないため、3Dソフトウェアでガンマ補正を行う必要はありません(ガンマ1.0を使用)。値はすでに線形ですか?
Kristoffer Helander

@KristofferHelander goo.gl/yqkeUP下のグラデーションは物理的な明るさを表します。Photoshopがグラデーションの描画または画像の表示に1 / 2.2のガンマを適用した場合、下部のグラデーションが表示されます。代わりに、偶然にも線形であるように見えますが、そうではない一番上のものが表示されます。また、写真を表示することもできません。写真を保存するときにカメラが1 / 2.2を適用すると、Photoshopはさらに1 / 2.2を適用しますが、ディスプレイは2.2のガンマを一度だけ追加します。それは正しくありません。
Quinchilion

Photoshopの片側を赤(255,0,0)で塗り、残りの半分を緑(0,255,0)で塗りつぶし、その上にガウスぼかしを使用すると、図のように、中央の黄色ではなく茶色がかったグラデーションになります。私が投稿したそのビデオで。何故ですか?画像のピクセルが線形である場合、なぜ計算が失敗するのですか?Photoshopでペイントされたディスプレイスメントマップがどのように線形でレンダリングに適しているのか理解できませんが、同時にピクセルのぼやけが誤ったガンマでめちゃくちゃになり、色が暗く茶色がかってしまいますか?
Kristoffer Helander

3

前書き

マップの作成方法によって異なります。次のことを考慮して、先に進む前にしばらく沈めてください。

  1. 画像はあなたの目の利益のためにガンマ補正で表示されます
  2. データはまだ単なるデータです。ガンマ補正は、データ部分ではなく表示部分に対するものです。

バンプマップをペイントアプリケーションで描画するのは非常に困難です。あなたが正しく線形であったとしても、それを見るのは難しいからです。つまり、値を見ることなどを使用することになります。今ここにキャッチがあります:

  • 128が強度の半分であると決定した場合、それは現実です。それがデータストリームへのエンコーディングです。人間の目やモニターを対象としていないので、データはあなたがそれを解釈したものです。モニターが編集中のデータをどのように解釈するかについて、モニターが値をすべて表示するかどうかを気にする人

バンプ/ディスプレイスメントマップの作成

さて、これでデータは解釈次第であると説明しました。しかし、なぜデータを線形と解釈するのでしょうか?そうすれば、サイドプロファイルをより適切に設計できるようになります。ブラシの不透明度を100%にして、カービングまたはレイヤー化するターゲットの高さとして考えることができます。次に、曲線ツールを使用してスタンプブラシの形状を設計できます(データは線形であると考えているため)。

ここに画像の説明を入力してください

画像1:吸盤スタンプ。

今、あなたがこのようなことをすると、誰もがあなたに言うことにもかかわらず、あなたのイメージは線形です。あなたは他のことを言う画像のルールを破棄することにしました。そして、それが画像が線形である理由であり、作者はそれが線形であるように選択するので、操作しやすくなります。

ここに画像の説明を入力してください

画像2:同じ画像が変位して線形に解釈された(デフォルトのbbサイズに合うように高さを少し調整したことに注意)、意図したとおりに機能しています。

技術的には線形が優れています。

合成マップには、特定の値を圧縮して他の値を犠牲にする利点はありません。バンプの広がりがそのように優れているため、線形は本質的に優れています。これが、ガンマ補正された方法でそれをエンコードするリソースを無駄にしている理由です。

第二に、画像はどの色空間にあるかを指定する必要はありません。画像エディターは、sRGBエンコードされていると想定します。あなたが同じ解釈をする理由はなく、情報も意味しません。したがって、ポイントは線形にタグ付けする必要があります。しかし、ここに問題があります...お使いのコンピューターには、簡単にアクセスできる線形プロファイルが付属していません。

Photoshopとぼかしはどうですか?

ここがトリッキーになります。Photoshopは、このことについて何も知る必要がないように、かなりの作業を行います。そして、あなたは足で自分を撃ちます。Se Photoshopはテクスチャ作成用ではなく、ランダムデータではなく画像を編集するためのものです。したがって、画像のぼかしは線形と非線形で異なるため、誤ったデータに連動することはありません。

しかし、これを修正するために2つのことの1つを行うことができます。

  1. ぼかしのガンマ補正を無効にする
  2. 作業スペースを線形プロファイルに設定する

結論

これで苦労する理由は

  1. 他の人の考えを知らない、単にガンマ補正をすべきかどうか知らない。
  2. 画像を画像として扱うアプリケーションを使用していること

ポイント1は特に混乱します。私のバンプマップとディスプレイスメントマップはすべて線形であることを知っています。しかし、私はあなたの地図が何であるかを知ることができません。データが線形であることはほぼ普遍的に理解されているため、確率は線形です。ガンマについて知らない人でも、なんらかの理由でバンプ/ディスプレイスメントを線形に行う傾向があります(簡単で、誰かが他のことを言わない限りそれがイメージだと思うからです)。


ご入力ありがとうございます。:)私は私がより多くの余暇を得るときにこれを見ていきます。折り返しご連絡いたします。
Kristoffer Helander

Even people who do not know about gamma tend to do it linear for bump/displacement for some reasonそれらのマップが生成されるためと考えられます。
タラ

3

実際、バンプマップまたはディスプレイスメントマップがその0.45ガンマ補正で保存されている場合、それは誤りです。これらのマップには、色ではなく幾何学的な情報が含まれているため、単純に線形にエンコードする必要があります。

Adobe Photoshopの関連する問題と修正については、次のスライドをご覧ください。https//docs.google.com/presentation/d/1vS5nAAnXbZ8Pt6-dXxy-xEXDkjfjXTmNnthNGccorl0/edit#slide=id.g14b3e28660_0_8


これは通常のマップでは特に顕著であるあなたは、ベクトルの長さが1であることを期待して
PaulHK
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.