ue4の色について v1.1

29
UE4の色について Epic Games Japan Yutaro Sawada

Upload: -epic-games-japan

Post on 21-Jan-2018

949 views

Category:

Engineering


2 download

TRANSCRIPT

Page 1: UE4の色について v1.1

UE4の色について

Epic Games Japan

Yutaro Sawada

Page 2: UE4の色について v1.1

自己紹介

Epic Games JapanEngine support Technician

澤田 祐太朗(@urota_uyu)

Page 3: UE4の色について v1.1

色をやる理由

ツール間で素材を受け渡す時のトラブルを防ぐ。

そろそろHDR対応.........

Page 4: UE4の色について v1.1

備考

スライド作成時の検証バージョンは4.18.2です。

スライドは公開します。

Page 5: UE4の色について v1.1

目次

•色を扱うにあたって基礎知識

• UE4の色の扱いについて• Material

• Texture

• Tonemapping(Color grading)

Page 6: UE4の色について v1.1

人の目に絵が届くまで

• 人の目に絵がくるまでには何度も色が補正される変換がかかっている。

• 主な原因としては

•各ツール

•表示ディスプレイ

•人の目

Page 7: UE4の色について v1.1

人の目の認識(人間の視覚特性)

• 暗い所ほど敏感• 明るい所は鈍感

例えば、、、• 各色を256段階にして0~1に割り当てた時、

• (0.5, 0.5, 0.5)が中間の灰色に見えてほしいが人間の目に補正があるため、そうはならず、

およそ(0.18, 0.18, 0.18) が中間グレーに見える(18%グレー)

• 人間の目の明るさ認識は非線形(ノンリニア)。。。

出力(

認識)

入力

約0.5

約0.2

参考http://compojigoku.blog.fc2.com/blog-entry-23.html

Page 8: UE4の色について v1.1

計算上は線形の値が便利

•線形的(リニア)な数値に合わせて、扱いたい。

Page 9: UE4の色について v1.1

ツールでは...

•表示は人間の目を基準に、

内部では線形値で計算している場合が多い。

Page 10: UE4の色について v1.1

色ごとの特性

•実際には色ごとに少し違ったりするので少し複雑。

• その他諸々を取り決めた規格が策定されている

Page 11: UE4の色について v1.1

規格について

Page 12: UE4の色について v1.1

色々な規格

• Rec.709

• Rec.2020

• sRGB

• ACES

Page 13: UE4の色について v1.1

Rec.709とRec.2020

Rec.709(ITU-R BT.709)

Rec.2020(ITU-R BT.2020)

ガマット(色域)が広い

画像引用https://en.wikipedia.org/wiki/Rec._709

https://en.wikipedia.org/wiki/Rec._2020

Page 14: UE4の色について v1.1

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

sRGB Gumma

ガマット(色域)とガンマ

Rec.709(ITU-R BT.709)

• ガマット(色域)

画像引用https://en.wikipedia.org/wiki/Rec._709

• ガンマ(階調を制御)

Page 15: UE4の色について v1.1

sRGB(standard Red Green Blue)

Rec.709に近く、よく使われてるカラースペース

sRGBのガンマ

式、画像引用

https://en.wikipedia.org/wiki/SRGB

𝐶srgb = 12.92𝐶𝑙𝑖𝑛𝑒𝑎𝑟 , 𝐶𝑙𝑖𝑛𝑒𝑎𝑟 ≤ 0.0031308

1 + 𝑎 𝐶𝑙𝑖𝑛𝑒𝑎𝑟

12.4 − 𝑎, 𝐶𝑙𝑖𝑛𝑒𝑎𝑟 > 0.0031308

Page 16: UE4の色について v1.1

ACES(Academy Color Encoding System)

広範囲な色域を扱う規格。

カラーマネジメントを行うための様々な規格が決められている。

色域が広範囲で、素材等を扱うためのAP0

AP0よりも少し狭い色域でレンダリング用などに使うAP1があります。

UE4.15からこのカラースペースでトーンマッピングで行っています。

詳しい変換については、Githubにコードがあり、

UE4の実装も、これが取り込まれています。

https://github.com/ampas/aces-dev

参考資料と画像引用https://en.wikipedia.org/wiki/Academy_of_Motion_Picture_Arts_and_Sciences

https://en.wikipedia.org/wiki/Academy_Color_Encoding_System

Page 17: UE4の色について v1.1

UE4の色について

Page 18: UE4の色について v1.1

Material

Page 19: UE4の色について v1.1

MaterialのColor値とプレビューについて線形(リニア)なColor値を保持しつつ、表示時(UI含めて)にsRGBに変換して表示している。

各色ごとに以下の式で変換

FloatR = FloatR <= 0.0031308f ? FloatR * 12.92f : FMath::Pow( FloatR, 1.0f / 2.4f ) * 1.055f - 0.055f;

\Engine\Source\Runtime\Core\Private\Math\Color.cpp 120行目当たりから引用

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

sRGB Gumma

Page 20: UE4の色について v1.1

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

sRGB Gumma

sRGB Preview設定

4.18.2時点だとデフォルトEnableになっていますが、

これを外すと、Color Previewのプレビューから

sRGB変換がないプレビューになります。

グラフ矢印のような変化で、

見た目が暗くなるようにみえる

リニア

sRGB

Page 21: UE4の色について v1.1

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

sRGB Gumma

sRGB Preview例

出力

リニア

sRGB

入力

Page 22: UE4の色について v1.1

Texture

Page 23: UE4の色について v1.1

Textureインポートの設定

テクスチャのDetails内にオプションがある。

これをEnableにすると、

sRGBの補正がかかる(デフォルトEnable)

リニアなテクスチャを用意している場合は、

Disableにする。

Page 24: UE4の色について v1.1

Tone mapping

Page 25: UE4の色について v1.1

Tone mapping

4.15からTonemapperが新しくなりました。(Filmic Tonemapper)以前のTonemappingが使いたい場合は、r.TonemapperFilm=0を設定することで使用できます。

新しいFilmic Tonemapperでは、一度ACES空間に変換して色を弄る処理をしています。

詳しくは....\Engine\Shaders\Private\PostProcessCombineLUTs.usf 233行目当たりから処理を確認できます。

Page 26: UE4の色について v1.1

HDR出力

r.HDR.Display.OutputDevice

0: sRGB (LDR)

1: Rec709 (LDR)

2: Explicit gamma mapping (LDR)

3: ACES 1000 nit ST-2084 (Dolby PQ) (HDR)

4: ACES 2000 nit ST-2084 (Dolby PQ) (HDR)

5: ACES 1000 nit ScRGB (HDR)

6: ACES 2000 nit ScRGB (HDR)} Filmic Tone Mappingはかかりません。

Page 27: UE4の色について v1.1

Auto Exposuer

UE4では自動的に露出を制御しているため、

色周りの実験をするときは、

切るまたは手動で行ったほうが良いかも?

Page 28: UE4の色について v1.1

色を扱う上で気を付けること

• UE4は基本的にリニアの色空間で計算されている。

•人間の認識はノンリニア

•色の値は使用する処理によって、

都合の良い空間に変換されているので意識する必要がある。

Page 29: UE4の色について v1.1