1 of 17

トゥーン以外の

Non-Photorealistic Rendering (NPR)

始めませんか?

2020/8/21 - cluster.unity #3�Shanon (@___shanon)

2 of 17

誰?

Shanon (@___shanon)�株式会社クリーチャーズ / プログラマ

Maya (Python / C++) でツール書いたり�Unity (C#) でグラフィックス周りのことしたり�10月から無職になります

3 of 17

アジェンダ

  1. Non-Photorealistic Rendering (NPR) とは
  2. Toon Shading とは
  3. パターンのマッピング
    1. Hatching
    2. Halftoning
    3. Dithering
  4. マッピングと座標系

4 of 17

Non-Photorealistic Rendering (NPR) とは

Photoreal�写真のようにリアル、写実的である

Non-Photoreal

Photoreal を目指さない残り全ての表現

5 of 17

Toon Shading とは

Standard現実に寄せた陰影付け

Toon Shading

アニメーション作品のような陰影付け

6 of 17

パターンのマッピング

何かしらの座標を使ってパターンをマッピングできる

UV座標以外でもいいし、テクスチャでなくてもいい

7 of 17

パターンのマッピング

拡散反射の強さ(NdotL)と組み合わせることで�陰影になる部分のみにパターンをマッピングできる

8 of 17

パターンのマッピング

Hatching陰影を平行な線で埋める�ことで表現する

Pattern Texture

タイリング可能に�加工しておく

9 of 17

パターンのマッピング

Halftoning陰影の強度に応じて�描画する円の閾値を変更する

円のもとになるUV

Screen 座標を加工する

10 of 17

パターンのマッピング

Dithering�Halftone の一種

特殊なパターンによる二値化

Mask Texture

Screen 座標をもとに�ドット単位で敷き詰める

11 of 17

マッピングと座標系

UV 座標モデルのスケールに�影響を受けてしまう

Screen 座標

均一にパターンを�マッピングできる

12 of 17

マッピングと座標系

UV 座標�モデルのスケールに�影響を受けてしまう

Screen 座標

均一にパターンを�マッピングできる

13 of 17

マッピングと座標系

Screen 座標カメラが動くと当然�座標と模様が付いてくる

Sphere Mapping

カメラを中心に�球面状に座標を生成する

14 of 17

マッピングと座標系

Sphere Mapping

カメラを中心に�球面状に座標を生成する

球面座標

カメラの回転は無視する(カメラ前方をφ=0にしない)�normalize(v.worldpos - world_camerapos)

の球面座標を求め、 φ と θ を UV として使う

Wikipedia - 球面座標系

CC BY-SA 4.0 Attribution to 'Andeggs'

15 of 17

マッピングと座標系

Screen 座標カメラ中心に回転した�場合と大きく変わらない

Sphere Mapping

回り込むカメラワークの�場合に違和感が大きい

16 of 17

まとめ

  1. 任意の座標系に任意のパターンをマッピングするのが基本

  • 座標系とパターンの組み合わせは無限大!�君だけの陰影表現を作ろう!

  • マッピングする座標系によって得手不得手がある�必要に応じて選択、あるいは都合の良い座標に変換しよう

17 of 17

参考資料