【Unite2015】Unity5グラフィックガイド実践編メモ #unite2015tokyo

はじめに

Unite2015のUnity5グラフィックガイド実践編を受けた時の走り書きです。

基本設定

Color Space

Gammaはガンマ補正しない
Linearはガンマ補正オン

ガンマ補正を行わないと暗い画面になる。

CRTモニタはGamma補正2.2かけてくれる。
ゲームはハードでサポートされていない。Lightをかけてあげればいいじゃないという。

「ガンマ補正重そうじゃね?ライトかければいいんじゃね」
→ハイライトが飽和、さちレーションしちゃう。
ライトだけでガンマ補正を補うのはつらい。

暗い部分の柔らかな表現の話。Linearを使っていこう。

デフォではGamma、Linearに変えよう。
残念ながらDeskTOpのみサポート、モバイルはまだハードサポートしてない。マルチプラットフォーム歌うので無理

HDR Rendering

カメラごとの設定。ハイダイナミックレンジ、1.0-0から65504-0まで、白より明るい色を扱える。

HDRをオン。

ベース白と、エミッション→見た目同じ。
これにブルームでエフェクトがかけられる。

自己発光しているものを扱うのには必須。

※HDRのオプションを使うと、アンチエイリアス使えない。

Standard Sharder

物理ベースレンダリングを実現するための統一shader。

独特の設定

Rendering Moode: Opaque (不透明)

→Transparent、半透明の材質を設定。色のついたガラス玉みたいな。

→Fade、半透明。αブレンディンぐを変えるためだけ。幽霊が消えるような、アイテムが消えるようなもの。

→Cutout、Alpha Cutoff以下のドットはOffになる。
AlbedにNoiseを設定(例)、Alpha Cutoffのスライダー操作でアルファの低いところから消えていく。

※Standard Shaderは片面のみ

Emission

Standard ShaderのサンプルシーンのLampのEmission値を変えれば。ゲームをプレイする前のみ。リアルタイムには無理、Global Illminationに焼き付けられちゃう。実行中に変えると周りの影表現は変わらない。

Secondary Maps

ディテールの表現を行うための機能。
Albedoの改造を上げるしかない。ここにSecondary MapsのTilingを細かくする。

DetailMaskでSecandary Mapsを抜く。組み合わせでつかう。

Custom Shader

Standard Shaderを拡張できる。テキストで書ける。

例)Cutout片面なのを両面に変えたもの

気になる?

物理でちゃんとやってるの重くないの?

Standard Shader on Mobile

・BRDF1(Desktop)

・BRDF2(OpenGL ES3.0、Metal)

・BRDF3(OpenGL ES2.0)

1→2 スムースネスの低い素材が荒くなったり、陰影がおかしくなる?

2→3 金属質のテカり、触れネルの計算の省略、マッハバンド出てしまったり

Standard Shader、モバイルでも使えるということで

Shader Variant

shader内部のバリエーション、省略できたら内部で省略するようになっている。

Graphics Settingsからshaderの種類が確認できる。

一番下のCurrently tracked:x shadersと丸丸個のshaderのバリエーション

データの容量が増えたり負荷が高くなったり、ゲームのカクツキの原因でもある。

バリエーションを使い分けることにより

Save to AssetでPreloadでガクッとなるのを避けられる。

Lighting

Ambient Light

今まではそりっとカラーのみ、今後はSkybox、Gradant、Color(Unity4と同じ

サンプル)Lightingのプロジェクト。

今まではSceneとかLightingに分かれていた。

Gradiant
 Sky Color、空の色
 Equator Color 水平線
 Ground Color 土の色

Skybox、Skyboxの値をそのまま

Skybox

Procedural Skybox

Cubemap Skybox

今までは6面のテクスチャ。5からはプロシージャルなスカイボックス。
Cubemapでパノラマの写真も使えるようになった。

Material作成

ShadarのモードをSkybox→Procedual。個のマテリアルをLightingのSkyboxに設定。

Sun

Direcional Lightを設定すると、太陽の位置を設定、水平線以下になるとシーン全体が変わる。

Materialの設定でSun size変えたり、Atmoshpere Thicknessで空気の厚さのパラメータ(成層圏にいるような表現)、Exposianは空全体の表現を変えることができる。

Cubemapが使えるという話。

HDRIのフォルダにハイダイナミックブランケット撮影された画像あり。ググればexr、hdrの拡張子の画像がある。

ハイダイナミックのパノラマ画像をUnity5から扱える。
(Texture TypeをCubemapへ変える。

→これを先ほどのCubemapに設定したMaterialにHDRI画像を設定。

→背景が切り替わり、アンビエントライトもHDRIの画像から設定。画像によってライティングされる。

→ただ明るさが足りてないので、一個くらい足してあげるとよい。

Cubemapを使ったイメージメイクドライティングは安いコストできれいに出せる。おいしい!

Lightingのほかにおいしい要素

影、Cast Shadows Options

今まではCast ShadowsのON。OFFから、Two SidedとShadows onliy追加。

サンプル)Shadow Baseシーン

Quadのゲームオブジェクト、裏で消えるけど、Two Sidedを入れると両面影を落とせる。たとえば洞窟の場合も正しく影を落とせる。(外側もモデリングしないですよねということで)

Shadows Onliyは見た目はハイポリ、影はローポリで影だけ設定できる。

PCF Soft Shadow

シャドウマップの解像度、じゃぎーが発生していた→ぶらーかけてたのを変更。

以前のSoft Shadowより軽い。

Baked Soft Shadow

べいくしたときのソフトシャドー

サンプル)Baked Soft Shadow

ベイクされた影の場合はオプションが変わる、Baked Shadow Angleで影の開きぐわい、小さければくっきり、大きければぼやっと。
反影領域の開きぐわい。

今までとは格段にきれいにかけをつけられる。

Shadow Bias

バイアスをかけてアーティファクト(ノイズ)を省く、セルフシャドーのアーティファクトが出ちゃうのを何とかする、

サンプル)Shadow Biasシーン

一個だけDirectional Lightがある、これのBiasを変えるとモアレ、うろこみたいなの。

BiasからNormalBias、ずらしからちじめに方式が変わった。

使い分け、サンプルシーンの横に段々とものすごく浅いもの。
→影を伸ばしていくと、アーティファクトが出る。
Biasをかけるとシャドーの範囲がずれてしっぽが切れる。
→この場合はノーマルバイアスをかける。

Biasが強い場合
複雑なオブジェクトに対して影をかける場合、モデルがひしゃげて影ができる。

アーティファクトが出始めたら→ノーマルバイアスあげる→影ひしゃげて隙間空いたらバイアスあげる。

Shadow Quality Settings

シャドーのカスケード、視点からの距離の解像度を下げていく、カスケードを1,2,4のオプションしかなかったのを視覚的にシーンビューのShadow Cascadesで可視化できるようになった。

れんだりんぐぱすはスキップ

Image Effects

パーソナルエディションでも使えるようになった。

画面の特殊効果、飛び道具系のイメージ持たれているのでは?→絵作りの根幹です!

高橋さんの個人的な分類

・レンダリング効果

・レンズ効果

・ポストプロセス

ワールド内の現象

カメラ内の現象

フィルム上の現象

に分かれる。

サンプル)公式配布のバイキング

Unity5のImport Package→Effectsから。(今まではImage Effecst)

RenderEffects

SSAO

物体に密集している部分を暗くする。

Screen Space Ambient Occlusion

おぶすきなんす

2つの違いは、、Occlusionのほうが薄味な効果、Obscuranceのほうが、正確ではないが濃い影が落とせるし負荷が低い。
Obscuranceのほうでよければこっちで。

Sample CountはOcclusionの正確性

Downsamplingを上げると解像度下げて負荷を下げることができる。

Occlusion Intensityで強さ、
Occlusion A物体が密集しているほど暗く、下げると遠くのぽちぽちが薄く(滑らかな場合は1以下にする)

Radiusを広げると広いところも暗がり調整。
じゃりじゃり感はBlurをかける。あげれば滑らかに。

オブスキナンスはパラメータ少なくなっている。うっすらに筋がでるのがよい。
入ってるのとはいっていないのでは違う。
のっぺりしてしまうのを避ける。

影になっているところものっぺりを避けられる。

 

Global Fog

LightingのFogで設定できるが、Deferred RenderingがONだとFogがかからないのでGlobalFogのImageEffectをつける。

Lens Effects

Bloom
光ってる範囲に光の広がりをあたえて明るい感じに。
Video Bloom(Unity Labsに含まれる)がUnity5のいいBloom。

今までのエフェクトとは違って広い範囲にやわらかい表現、ミディアムとラージで2段階設定も可能。2つのブルームを組み合わせてできる。

ブレンドモードでAddだけじゃなくてScreenで重ね合わせることもできる。
(明るすぎることが多いけど、やわらかい表現ができるようにある。

Vignetting

写真とかの端っこが黒くなる現象、(写真屋的には嫌われるけど、いんすたぐらむっぽさ、かめらっぽさを出せる。

Chromatic Aberration(あべれーしょん

色収差、レンズっぽさの表現

Aberrationで収差、端っこずらせる

Simpleからあどばんすとにかえると明るいところだけ色のボケを出せる。ケースバイケース

Depth Of Field

遠くの表現。被写界深度の表現

調整はVisualizeをONで、白い領域ほどぼける。どの範囲がフォーカスがボケるべきか可視化できる。

 

Post Process

フィルムに焼きこむ表現

Tone Mapping

HDRの絵をいい感じにLDRへ落とし込む、(ハイダイナミックレンジ、ローダイナミックレンジ)1以上をディスプレイに送ると切り落とされるのを、ダイナミックレンジのカーブをぐいっと0-1の範囲に落とし込む。

Offにすると白が飽和してしまってあとでColorコレクションする時にもったいない。

Color Correction(Color Grading)

 

まとめ

のーんマッピングでトーンマップしてヒストグラムを調整
レベル

ColorSuiteとしてエフェクト配布、Unityに搭載されているカラーグレーでぃんぐが昨日不足なので機能追加したもの

色温度を変えたりできる

トーンマッピングした後に眠たい絵になっちゃってるので、Curveで設定できる。グレースケールをちじめたり。白く飽和してる感じなど、黒をしまった絵作りなど。

最後にRGBのカラーカーブで調整。最近のCGは緑系がおおい、赤みを下げて緑っぽくも、Curveの左でS時に変えたりで絵を調整できる。

Antialiasing

FXAA、FXAA 2(ためし)、FXAA 3(ぶなん)、NFAA、SSAA、DLAA

QualityのAnti Aliasingのほうがなじみ深い、HDRやでファー度ライティングONだと使えない。→ポストプロセスでONにする。

アンチエイリアスでジャギーを補正

何でもかんでも画質が良くなるわけでなく、ジャギーがでたら。

Realtime GI

の説明は、Room3の説明で説明済み。後日公開の動画で。

 質疑応答

本格的なベイキング、数が多いときはContinueasBakingをOFFったほうがいい。

Lightingのバグは5.0.1までに相当つぶした。

2晩かかって終わらなければバグなので報告してほしい。