Home > 雑記 > ガンマのお話

ガンマのお話

最近気になってたリニアガンマ、もしかしてHDRと関係あるのかも。
リンク

結局ガンマって0-1の間だとあぁいう感じの曲線になるけど、2、3、4、、と大きくなっていくと、どんどん離れていく。
つまり最近良く聞くリニアガンマってのは、HDR(OpenEXRとか)でレンダリングして(もしくはRAWで写真撮って)カラコレする場合のワークフロー的にすごく重要な概念、ってことなのか、も?

もうちょい詳しく上のページ読んでみるか。

おまけ  


—————————————————————————————— 追記
コメントいただいたますおさんのブログのページ(全5ページ)は最高に参考になりました。
CGの人は全員読むべし!これ必須の知識!
でも業界でも知ってる人少ないこと間違いなし(だって仕事始めてこの方1回も言われたこと無いから)。
他人に差をつけたい人は是非読むべし。
(ホントはスタジオ〜業界全体で共有すべきものなので、出来れば広めてくれた方が技術向上としては望ましいですが。)

「鉄則:作業中は全てlinear」

—— ここの内容一時退避。修正して再度UP予定 —–

あとここのページでは、レンダリングの際にgammaを0.455=リニアに補正してる模様。これはたぶん、OpenEXRを扱うからなんだろう。(HDRはリニア!)
と考えると、普段レンダラが吐いている画像はガンマ2.2の画像、ってことでOK?
普通、レンダラが吐く画像のガンマはリニア。
上記ページでは、かなり乱暴にガンマ補正(もどき)を行っている。
ガンマ補正をかける必要がないところまで補正してしまっているので、正しい結果になっていない。

今までこの辺何も知らずにやってたと思うと恐ろしい。。
OpenEXRでコンポ、とか、日本でも主流になったら、これ絶対問題になると思う。
合成に渡った時点で実は素材が破綻してた、なーんて。

それ以前に日本ではこの辺無頓着過ぎるのかも。HDRじゃなくても作業はリニア!!
皆、今から覚えておこう。少なくとも意識はしよう。

作業はリニア!
(但しMayaやAEのビューポートがガンマ補正に対応していないので、ほとんどの日本のプロダクションでは当分実施不可能かもしれないのですが、せめて意識だけはしておきたいものです。)

Comments:19

ますお 2008/08/25

初めまして.さすらってたらたどり着きました.
手前味噌ですが,理解の助けになるかもしれません.
良かったら読んでください.
http://www.ousam.com/blog/2005/11/02/292

tai 2008/08/26

>ますおさん
初めまして。いつもブログ拝見しております。
ご紹介いただいた記事、以前拝見させていただいたんですが、当時は意味が全然わかりませんでした。
が、今回読んだら目から鱗でした!!
なるほど!!そういうことなのか!!
非常に参考になりました。

僕もさっそくリニアスペースにて作業を行おうと思います。

ひさびさに大きくビックリしました。
ありがとうございます!

ますお 2008/08/26

参考になったようで,良かったです.

gamma=0.455についてですが,mentalrayはディフォルトのgammaは1.0だったはずですから,設定で0.455するのはちょっと変ですね.

予想ですが,この人はテクスチャを全部gamma=2.2で作っていて,それをそのまま使っているせいで最終的な絵がgamma=2.2っぽくなってしまっているんだと思います.で,それを補正する目的でレンダリング設定で0.455にして,リニアっぽくしている,と.

理論的にはこれだと正しくないです.正しいのはカラーのテクスチャを全部gamma=1.0に変換して,レンダリングのgammaも1.0でレンダ,合成及びカラーコレクションが終わった後にgamma=2.2をかけるのが正しいです.

厳密な事を言えば,gamma=2.2 gamma=1.0の変換もモニタのプロファイルや出力媒体のカラースペースに沿って変換するのが理想なんですが,まあとりあえずそこまでは必要ないでしょう.モニタのキャリブレーションはちゃんとやった方がいいと思います.

hohehohe2 2008/08/26

あれっ?「ここのページ」流し読みした時「テクスチャをun-gammaしろ」って書いてあったんで最後のガンマ補正は合成前のレンダリング結果をモニタで自然に見えるようにしてるんだと思って見てました。このページガンマをモニタではなく人の目の特性と関連づけて説明してるなどわかってないような書き方だったんで説明はおかしくて結果オーライだけど操作は正しい事書いてると思ってたんですが、0.45だと数値が逆ですね、これはおかしいなあ。

tai 2008/08/26

>ますおさん
大変参考になりました。ありがとうございました。

> gamma=0.455についてですが,mentalrayはディフォルトのgammaは1.0だったはずですから,
> 設定で0.455するのはちょっと変ですね.
あれ、そうなのですか。とするとこの操作は単純にガンマを0.455にしただけ、ということに、、、

> 理論的にはこれだと正しくないです.正しいのはカラーのテクスチャを全部gamma=1.0に
> 変換して,レンダリングのgammaも1.0でレンダ,合成及びカラーコレクションが終わった後に
> gamma=2.2をかけるのが正しいです.
なるほど、作業はリニア、ですね。

というか、既に勘違いしていました。
レンダラは普通ガンマ2.2の画像をレンダリングしていて、合成に関してもガンマ2.2の状態で行って良いもの、だと思っていました。
合成もリニアで行うんですね。アブネーアブネー。。

でも、合成の最後に補正したら、イメージが一気に明るくなってしまうような気がするんですが、、
それはガンマ2.2にすることを前提に、確認しつつ作業、ってことなんでしょうか。

> モニタのキャリブレーションはちゃんとやった方がいいと思います.
会社のやつは大丈夫です!
家のは知識が足りないのでちょいキツい、、、
これは調べてみます。持ってて損をするスキルではないと思いますし。

>hohehohe2さん
隠れブログで解説していただいてたんですね、ありがとうございます!!
「ここのページ」、英語だったので解読に時間かかりそう、、と思って実はまだまともに読んでませんでしたww
だから実はほぼ理解もしておらず、、、
画像見て0.455入れてたので、あぁ、mental rayって2.2なのか、と思ってましたが、
コメント頂かなかったら恐ろしいことになってました、、、アブネー、、、

レンダラから出る画像はリニア。レンダラから出る画像はリニア。

よし。

ますお 2008/08/26

件のページ,ちゃんと読んだら書いてありました.
要は,「全部のテクスチャをun-gammaするのはウザいから,設定でun-gammaしちゃいます」だそうです.「gamma=0.455すると全部のテクスチャが自動的にun-gammaされる」とか書いてありますけど,これは多分ウソです.framebufferへのガンマは,レンダ後の画像全体に対してかけられるもので,テクスチャを個別に変換するものではないです.
しかもこれ,最後にレンズシェーダ使ってオレtone mappingしてる(つまり最終出力画像はリニアではない)し,かなり乱暴です.

...と,ここまで書いて気づきましたが,MayaのRender Viewウインドウに表示される絵はどうなってるんだろう?うちらは使わないので分からないんですが,ぱっと見ガンマに関するオプションはなさそうに見えます.という事は,色々面倒になりますねえ...

合成作業中のガンマについてですが,仰るようにリニアのまま表示していては正しい色の判別ができませんから,大抵のツールにはプレビューウインドウのガンマを設定できるオプションがあると思います.

tai 2008/08/26

>ますおさん
> 「gamma=0.455すると全部のテクスチャが自動的にun-gammaされる」とか
> 書いてありますけど,これは多分ウソです.
なるほど、テクスチャをリニアにしようと思ったら、
多少ウザくともちゃんとやれ、ってことなんですね。
そこはでもいくらでも楽出来そうだし、あんまり問題にはならなさそうですね。

> しかもこれ,最後にレンズシェーダ使ってオレtone mappingしてる
> (つまり最終出力画像はリニアではない)し,かなり乱暴です.
レンズシェーダとか使わなくても結局合成でいじるんだから後でやればいいんですね。
なるほど、それっぽいことをやっているページに惑わされないように気をつけますww
特にOpenEXRでHDRをレンダリング、とかそういうノウハウがほとんどないことも相まって、そのまま信じたらコロリと騙されそうなので、情報の取捨選択、気をつけます。。

> MayaのRender Viewウインドウに表示される絵
昨日この件に関していろいろ教えていただいて、Mayaではどうなっているのか気になって確認したところ、無いことが発覚しました。
ってことはリニアなのかな、ぐらいで簡単に考えていましたが、そういうことでもないんですかね、、

そういえばMaya Render以外の普通のレンダラにはガンマのオプションって普通にあるものなんでしょうか。
というかリニアでレンダリングされるんなら基本的には要らないものなのでは?とすら思ってしまうんですが、そうではないんですかね。
うむむ、、、

> 合成作業中のガンマについて
あーーーーー、ディスプレイのガンマ設定ってそういう意味だったんですか!
画面の明るさかえるためかな?とかぐらいしか考えてませんでしたwww
プレビューウィンドウのガンマを合わせて作業をすれば、
リニアの画像をいじりつつ適切なプレビューが可能、と。
なるほどーーー!!

これって最終出力の際は全体にガンマ調整をかけてから出す、って言う解釈でOKですか?
もしくはそのまま出しちゃってOKなんでしょうか?

いやーーー、勉強になります。

そして多々質問してしまってすみません、、、

hohehohe2 2008/08/26

> 隠れブログで解説していただいてたんですね、ありがとうございます!!
いや、ますおさんのブログがかなりまとまってていい感じなんで用はなくなりました(笑。記述も正確だし。

> 「gamma=0.455すると全部のテクスチャが自動的にun-gammaされる」
嘘だ〜!

> ぱっと見ガンマに関するオプションはなさそうに見えます.
レンダリング後の画像取得するコールバックもrender viewに画像を送る関数もあるんで作れるかも、UIに追加するMEL作るのがちょっと面倒くさいですが。求人の回答待ってるだけで退屈なんで暇つぶしに考えてみます。

ますお 2008/08/26

HDRIのtone mappingはこれまたややこしい話で,単純なガンマ補正でOKって訳には行かないんですが,これは話が外れるので置いときますね.でも,レンダリングの後でやればいいってのはその通りです.

レンダラのガンマ設定は大抵ついてると思いますよ.RenderManやmentalrayにもあります.うちらのような環境だとgamma=1.0以外で使う事はないと思いますけど,特に細かい事を気にしないで使いたい人もいるでしょうからね.
MayaのRender Viewにはやっぱりオプションがないんですね...となると自前で作るか,テストレンダとバッチレンダで設定を変更するとか,どうにかする必要がありますね.期待してます>hohehohe2さん

合成作業の後の最終出力のガンマですが,これは出力媒体が何かによって変わってきます.複数媒体で再生される可能性があるのなら,後から変更しやすいようにリニアのままにしておいた方がいいかもしれません.

ところで,自分はちょっとリニア教信者っぽいところがあるので,テキトーに間引いて聞いてくださいね(笑)

tai 2008/08/26

>hohehohe2さん
> > 「gamma=0.455すると全部のテクスチャが自動的にun-gammaされる」
> 嘘だ〜!
wwwww

> レンダリング後の画像取得するコールバックもrender viewに
> 画像を送る関数もあるんで作れるかも
おぉ!!期待してます!

>ますおさん
> HDRIのtone mapping
なるほど、HDRIはまた違うんですね。
トーンマッピング云々とか、全然詳しくないんでこれも要勉強タスクに積んでおきます。

> レンダラのガンマ設定は大抵ついてると思いますよ.
> RenderManやmentalrayにもあります.
なるほど、むしろそっちが普通なんですね。
Maya Render…がんばれ、、、

> 合成作業の後の最終出力のガンマ
なるほど。
複数の出力媒体に対応させるためにもガンマはリニアにしておくべき、ってことなんですね。

> リニア教信者
信者wwwwww
僕も可能ならばリニアで作業をしたいと思いますけど、
環境を整えるのはなかなかキツそうですね、、
AEのプレビューウィンドウにもガンマ設定をいじる項目は見つかりませんでした。
ShakeやNukeだとプレビューウィンドウのガンマいじれるんですかね。
とするとAEはいろんな意味で命取り、、、

実際に自分でも試してみないことにはいろいろと漠然としてしまうので、しばらくは個人で検証を重ねてみることにします。

ところで、Photoshopでテクスチャガンマを補正した場合、白っぽくなる、でOKです、、よね?
こんなに違うのか、、とかなりビックリしました。

昨日から今日にかけて、Photoshopの操作ミス(というか使い方ミス)で、ガンマ2.2の画像にさらに2.2乗せた画像を作って、un-gammaした画像ってことで公開してしまいました。
なんとも黒い、色の濃い画像に、、
間違いに気づいて、とりあえず取り下げたので、また後で直したのUPします。
大きなミスをするところでした。アブネー

ますおさん、hohehohe2さん、かなり深く詳しくレクチャーいただいて、感謝しております。
ありがとうございます!

Rva 2008/08/26

>Maya Render…がんばれ、、、
Maya Softwareにもついとるよ
Render Viewの話かな?

ガンマはWinMac間でのやり取りしか気にした事なかったなぁ。
メンタレのチュートリアルとかで良くテクスチャの間にガンマ0.455挟んでるのあってなんでじゃ?そのままだと白飛びするからか?ぐらいにしか思ってなかったけど
こういう事だったのか。
為になりました。

ますお 2008/08/26

理解を確かめる意味でも,実際にテストしてみる事をおすすめします.
自分はAEを知らないのですが,こんな記事をみつけました.参考になりますかね?
http://www.fxguide.com/article336.html

ガンマ補正は,簡単に書くと,
1.0 → 2.2 : 明るくなる
2.2 → 1.0 : 暗くなる
です.ややこしいのが,ガンマの値って文脈によってx^gだったりx^(1/g)だったりするんです.正確な定義はwikipediaが詳しいようです.
http://en.wikipedia.org/wiki/Gamma_correction

tai 2008/08/26

>Rvaくん
> Maya Softwareにもついとるよ
あ、ほんとだ。
見逃してました。失礼しました。

> ガンマはWinMac間でのやり取りしか気にした事なかったなぁ。
win/macのやりとりすらなかったから、気にしたことがほとんどなかった。
つーかガンマが何かすら気にしたこと無かったwww
リニアガンマって名前が妙に気にならなかったら、気にすることはなかったんだろうなぁ、と思います。
いや、ホントに今知ることが出来てよかった。

是非Rva君トコでもリニア用ワークフローを!!ww

kat 2008/08/27

>taiさん

AEでもLinearSpaceプレビューできますよ。Nukeのヴューワーの方が簡単ですけど、AEの場合LinearSpaceについて詳しく理解しないとうまくワークフローを作れないので、かえって良いかもしれません(笑)

Stu MaschwitzがAE6.5からLinearSpaceでコンポジットをされていてツールも公開していたとおもいます。AECS3だと標準の機能でいけるはずです。
http://prolost.blogspot.com/

Mark ChristiansenのAdobe After Effects CS3 Professional Studio Techniquesにも、AEでのLinearSpaceコンポジティングについて詳しく書かれているので参考になるかもしれません。

hohehohe2 2008/08/27

> レンダリング後の画像取得するコールバックもrender viewに画像を送る関数もあるんで作れるかも

だめだ。コールバックがMaya software render前提でした。

tai 2008/08/27

>ますおさん
> 理解を確かめる意味でも,実際にテストしてみる事をおすすめします.
そうですね。百聞はうんたらかんたら、、
やってみます。

> wikipedia
さすがwikipedia先生。英語の勉強がてら、解読してみます 笑

>katさん
はじめまして。コメントありがとうございます。

> AEでもLinearSpaceプレビューできますよ。
お!これは良い情報です。

> Nukeのヴューワーの方が簡単ですけど
なるほど、その辺はさすがNukeと言ったところですか。

> AEの場合LinearSpaceについて詳しく理解しないとうまくワークフローを作れない
そうすると僕みたいな人間には最高の教材なのかもしれませんね 笑

> Stu MaschwitzがAE6.5からLinearSpaceでコンポジットをされていて
> ツールも公開していた
今ウチのスタジオで使っているのはAE7.0なんですが、6.5からやられているということは7.0でも可能そうですね。

> AECS3だと標準の機能でいけるはず
AEはCS3で良い噂を聞いたことが無いので導入を見送っています。
そしてCS4に期待、って感じの流れになっています。。
これでCS4もアレな感じだったら、、、恐ろしいです。。

> Mark Christiansenの~
なるほど、そちらもあわせてみてみます。
非常に有益な情報、ありがとうございます!

>hohehohe2さん
> だめだ。コールバックがMaya software render前提でした。
なるほど、それだとビューワーに対しての処理が出来ないってことになるんですね。
となったら独自のスクリプトか何かを用意してやって、そいつを起動してレンダリングして、補正したものをRender Veiwに表示する、とか、そういうことをしてやらないといけないことになるわけですね。
うーむ、なるほど。

にしてもさすがに調査が超特急ですね・・・(w;
恐れ入ります、、

tai 2008/08/28

> ガンマ補正は,簡単に書くと,
> 1.0 → 2.2 : 明るくなる
> 2.2 → 1.0 : 暗くなる

ガンマ補正、ってのがミソだと気づきました。
ガンマ2.2のモニタに正しく色を表示させようとしたら、1/2.2でガンマ補正する、
それをリニアに戻そうとしたら2.2でガンマ補正する。

ってことですね。
だから、暗くなる、と。

ガンマの意味がごっちゃになっていました。
用語的になのか何なのか、理解するまで苦労しました。。

kat 2008/08/29

> taiさん

Linear Color Workflow in AE7
prolost.blogspot.com/2006/02/linear-color-workflow-in-ae7-part-1.html
全部で6回か7回のシリーズで、AE7を使ったリニアライト合成の方法が紹介されてます。7で使うプロファイルのダウンロードもできますね。たしかCreativeCowにも色々な記事があったとおもいます。

あとはVrayフォーラムがけっこう良かったです。

rebelsguide.com/forum/
ここのフォーラムでは、コンプ処理によってカラースペースを使い分ける際のAEでの説明もありました。

ちょうど、Mayaのレンダリング表示をガンマ設定したいとおもっていたところなので、楽しく読ませていただきました(笑) mrsaのimgpipeのようなかんじで簡単にMayaUI上のレンダリングをdjvなどで見れるといいなあ~と…

tai 2008/09/10

>katさん
ぐえ、気づかずに放置してしまって申し訳ありません、、、
> Linear Color Workflow in AE7
お教えいただいて調べてみました!時間あるときにまとめて読もう!と思ってまだ読めてません、、、
英語は強敵、、、

> rebelsguide.com/forum/
こちらも拝見します。
いろんな情報ありがとうございます!

> ちょうど、Mayaのレンダリング表示をガンマ設定したいと
> おもっていたところなので、楽しく読ませていただきました(笑)
楽しんでいただけて何よりです。
僕もブログ始めて以来、こんなに実りの多い記事を書いたのは初めてかもしれないです。。

> 簡単にMayaUI上のレンダリングを~
ですねー。
Renderコマンドとか使ってやればなんとか出来るのかもしれませんが、、、

Houdiniはその辺全部対応してて、さすが、と思いました。

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://blog.taikomatsu.com/2008/08/24/%e3%82%ac%e3%83%b3%e3%83%9e%e3%81%ae%e3%81%8a%e8%a9%b1/trackback/
Listed below are links to weblogs that reference
ガンマのお話 from memlog

Home > 雑記 > ガンマのお話

Return to page top