2015年7月30日木曜日

FilmicToneCurve_2

引き続きフィルム特性曲線について

特性曲線のカーブを作ってみる

  • 足部、直線部、肩部の3領域に分けてカーブを作る
  • 傾き0から始まり直線部に繋がり傾き0のカーブで終わる
  • y = a * x^b を使ってみた
  • カラーは考えないで1チャンネルだけのカーブ


18/2/25追記
双曲線のグラフの例はこちら
technorgb: Hyperbola tone mapping

UE4のフィルミックトーンマップとACESカラー

UEのコードを見たところ、ACESカラー空間に置き換えてトーンマップしているみたい。
また、ACESの新規格?の"AP0"とか"AP1"の色域が出てくる

UEではAP0を使用していて、さらに赤チャンネルにだけ補正を入れているみたいなのでこのあたりも興味深い

16/8/2追記
赤チャンネルの補正は Red modifier functions としてACES 1.0 用意されている関数でユーザーからの意見で赤チャネルの補正を取り入れたみたい(詳しくは解りません)

多分ですが、ACESの色域(ap0)の原色RGBが物理特性から外れていることもあり(波長で表せないxy座標)ライティングの色に偏りがでるからだと思う。なのでap1が出てきたとも思う
ACESとは関係ないけどライティングで色の偏りが軽減できるものとして sharp RGB という色空間もある
過去にライトやマテリアルカラーをXYZ色空間に変換し、レンダリング後にsRGBに戻すのを試したが色の偏りが酷かった記憶がある。
このあたりも調べてまとめたい

その他メモ

Blogger :画像につく影と枠線を消す方法
http://www.blogger-customize.com/2014/01/images-shadow-border.html
2015年7月26日日曜日

FilmicToneCurve

フィルミックトーンカーブについてのメモ

フィルムの特性曲線

特性曲線とは、フィルムあるいは印画紙の面上に照射される光量(正確には像面照度、単位:ルクス・秒)の常用対数を横軸にとり、その光量が与えられたときの濃度(フィルムなら透過濃度、印画紙なら反射濃度)を縦軸にとってプロットしたものです
via:特性曲線と濃度
via:CMS_色彩画像工学_映画映像技術_新DIプロファイル_開発.doc

  • フィルムの入出力特性のことを特性曲線HD曲線と呼ぶ
  • 縦軸も横軸も対数値
  • 横軸露光量の対数値:log H (ルクス秒)
  • 縦軸濃度。現像後のネガフィルムの濃さかを表している。D = log(入射光/透過光)。
  • フィルムから光が10%通れば濃度は1.0、光が1%通れば濃度は2.0となる。印画紙の特性曲線の場合は反射率が濃度となる
  • ベース濃度:フィルムが完全な透明でないため100%光を通せない。なので濃度0は存在しない

特性曲線(その他細かいところや気になるところ)

  • 現像時間でも特性が変わる。http://darkroom.tokyo/?page_id=207
  • 相反則不軌。露光量と濃度の関係が保たれる範囲があり、特に長時間露光などでは露光不足になりやすい。また色によってばらつきが出るため、範囲外ではカラーバランスが著しく崩れてくる。http://darkroom.tokyo/?page_id=213
  • 現像されたネガフィルムの特性曲線より印画紙にプリントされた特性曲線も考えたほうがいいかも。でもプリントよりもTVモニタのほうがダイナミックレンジが高いと思うのでネガフィルムの特性曲線のほうがやっぱり相性が良い?
  • ポジフィルムのほうがラチチュードが狭い(直線部の傾きが大きくコントラストが強い)。http://members.jcom.home.ne.jp/camera/color/posivsnega.htm

UE4のコードをダウンロード

2015年7月11日土曜日

UEライト関連調査

引き続きUEでのライト関連調査。

Tonemapper無効時のガンマ補正は?

ToneMapperを無効にしても何かしらのトーンカーブが入っている。
なのでライト強度との関係から計測して調べた
  • ライティングされた板が1.0ぴったりになるまでライト強度を調節する
  • 1.0になったライト強度から値を小さくしてその時の板の明るさを調べていく
  • ライトの明るさの関係からカーブを割り出す
下記のようなシーンでイトの真下の値を記録する
  • マテリアルは完全拡散反射(Lambert)の適用がわからなかったのでいデフォルトのマテリアルを使用し、粗さを最大にした。
  • 今回diffuseは1.0。
  • 1m離れた場所からのポイントライトで照射し、その真下を計測
  • ポストエフェクトはすべて無効にしたつもり

結果はガンマ2.2補正

sRGB補正の可能性もあると思っていたが思っていがガンマ2.2の補正だった
下記が計測結果でライト強度のプロット値がガンマ2.2補正と一致した

トーンマップを無効にすると露光調整も出来なくなった

カメラのEV値からライトの物理的な明るさを割り出そうとしていたが、トーンマップを無効にした場合はマニュアルでもEV値を変えられないみたい

仕方ないので次はアンリアルエンジンで使われているトーンマップのカーブを調べることにする
2015年7月6日月曜日

Unreal Engine インストール

Unreal Engine をインストール
インストールしたバージョンは4.8.1


ライト、レンダリング周りとかブループリントを知りたい。

ライト関連を調査

UE4でライト強度と描画されたピクセルの値の関係から物理的な明るさや露出値を探りたくて簡易的に調べた

Lightとintesity

ポイントライト、スポットライト

マニュアルではポイントライトとスポットライトはのintensityはそのままルーメンに置き換えてよいみたい
  • 真っ白な板のマテリアル
  • 1メートル真上置いたポイントライト
  • 2000ルーメンくらいになったところで板が1.0に近づいた
  • この時の照度は約160ルクスとなる
  • 板の輝度は約50[cd/㎡]となる

並行光源

3.14のintencityで1のレンダリング結果と思われる
  • 真っ白な板のマテリアル
  • 垂直に光を当てる
  • ラフネスは0
  • トーンマップ無効の露出0固定
  • 結果は8bit値253
よって並行光源のintensityが3.14で約160ルクスなので10万ルクスの太陽光を作るとなると約1963のintensityが必要となる

この条件でマテリアルのラフネスを上げていくと真上から見たときディフューズ成分が減っていくのでデフォルトのマテリアルではディフューズ成分にオーレンネイヤー的な処理がされていると思われる

カメラのEV値

カメラ露出0EVは2.5ルクスを撮影すると言われている
そうなるとエディタでの[log0で固定]はカメラのEVに換算すると 
EV = log2(2.5/160) = -6

よってUEのカメラの0固定は-6EV相当と思われる

トーンカーブ

トーンマップ時のトーンカーブを調べる
一般的にはフィルムの写真のように高輝度成分ほど圧縮して1.0に収めることでハイライトに粘りがある絵作りをするカーブが使われる

マニュアルでは下記のカーブで説明されていた
x/(x+0.187)*1.035
GammaColor = LinearColor / (LinearColor + 0.187) * 1.035;
引用元:カラーグレーディング

Unreal ではこの固定カーブ一個だけなのかな? ← 4.81ではデフォルトでフィルミックカーブが使用されているのでこのカーブは無関係みたい(15/07/30追記)

これは双曲線のカーブ

この場合は5.34の入力値を1.0に落とし込んでいる
双曲線のカーブのほうが通常のガンマ補正より中間諧調のコントラストが強めになり暗部が締まりやすい

ガンマ2.2空間で比較

双曲線カーブ

下記の式で収める最大レンジとカーブの具合を任意で決められる
x/(x+a) /(b/(a+b))
  • a が小さいほど急なカーブとなる
  • bは1.0に収められる入力値(最大レンジ)

下のカーブは5.0までの入力値を1.0に収めるカーブの例

ビューポートを固定露出にしてトーンカーブ無効化する方法

ライトの明るさを調べるため露出の固定とカーブの無効化を行う。念のためlog0固定。
Tonemapperを無効にした時点で露出コントロールができないみたい。

その他メモ

Blogger 投稿者名の変更方法(google+プロフィールの使用をやめる方法)
http://sharepoint-techblog.blogspot.jp/2013/05/blogger-google.html

Blogger:『CSSを追加』で引用文&引用符を表示
http://jyouhou-log.blogspot.jp/2014/06/bloggercss_19.html

bloggerでフォントを"Meiryo UI"にする方法は下記をCSSに追加する。フォントの順番は優先度
body, textarea {font-family: "Meiryo UI","Meiryo","メイリオ","ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","MS Pゴシック","Osaka",sans-serif;}