Slide 1

Slide 1 text

Unity6の新機能 STPについての話 株式会社サイバーエージェント 2024.01.09 ZHANG YUBING(チャン ユービン)

Slide 2

Slide 2 text

目次 ● 機能紹介 ● 特徴 ● 注意事項 ● 使用制限 ● 実装事例紹介 今日はSTPについて、以下の順番で紹介していきます

Slide 3

Slide 3 text

機能紹介 ● 機能紹介 ● 特徴 ● 注意事項 ● 使用制限 ● 実装事例紹介

Slide 4

Slide 4 text

機能紹介 - STPの概念 STPはUnity6から正式に実装された新しいUpScaling機能 モバイル端末向けに設計されたそうだ 全称Spatial-Temporal Post-processing 周辺のピクセル情報 前のフレームのピクセル情報 何の情報を読み取る? ● ColorBuffer ● DepthBuffer ● NormalBuffer ● MotionVector 空間的  時間的 公式の紹介動画 :https://youtu.be/hKSoUX_YQcQ?t=7 29 Unity6機能紹介のE-Book https://unity.com/ja/resources/introdu ction-to-urp-advanced-creators-unity-6

Slide 5

Slide 5 text

1. RenderGraphを有効にする 機能紹介 - STPを有効にする手順

Slide 6

Slide 6 text

2. RenderPipelineAssetのQuality項目にあるRenderScaleを1.0以下にする 3. Upscaling FilterをSTPにする(RenderScaleが1.0でも有効、1.0超だと無効) 機能紹介 - STPを有効にする手順

Slide 7

Slide 7 text

STPの特徴 ● 機能紹介 ● 特徴 ● 使用時注意するべきこと ● 使用制限 ● 実装事例紹介

Slide 8

Slide 8 text

特徴 - Upscaling効果が抜群(静的な画面: 4k) 4K RenderScale1.0 (3840x2160) 4K RenderScale0.25 (960x540)

Slide 9

Slide 9 text

特徴 - Upscaling効果が抜群(静的な画面:FSRと比較) STP 4K RenderScale0.25 FSR 4K RenderScale0.25

Slide 10

Slide 10 text

特徴 - Upscaling効果が抜群(静的な画面: 1080p) 1080p RenderScale1.0 (1920x1080) 1080p RenderScale0.25 (480x270)

Slide 11

Slide 11 text

特徴 - Upscaling効果が抜群(動的な画面) 動的の画面は2パターンあります ● カメラ自身が動く ● オブジェクトが動く ○ カメラに対して運動する ○ 回転、拡大縮小などの変形も含む

Slide 12

Slide 12 text

特徴 - Upscaling効果が抜群(カメラが動く) 1080p 30FPS

Slide 13

Slide 13 text

特徴 - Upscaling効果が抜群(カメラが動く) 1.0 0.5 0.25

Slide 14

Slide 14 text

特徴 - Upscaling効果が抜群(オブジェクトが動く)

Slide 15

Slide 15 text

特徴 - Upscaling効果が抜群(オブジェクトが動く) 1.0 0.5 0.25

Slide 16

Slide 16 text

特徴 - UIに対する効果が悪い

Slide 17

Slide 17 text

特徴 - UIに向いてない ● ColorBuffer ● DepthBuffer ● NormalBuffer ● MotionVector

Slide 18

Slide 18 text

特徴 - Upscaling効果が抜群(まとめ) ● 静的な画面 ○ とても綺麗  ● カメラが動く画面 ○ とても綺麗 ● オブジェクトが動く画面 ○ 3Dオブジェクトはそこそこ綺麗 ○ UIは結構ゴースティングが発生

Slide 19

Slide 19 text

特徴 - 性能向上について

Slide 20

Slide 20 text

注意事項 ● 機能紹介 ● 特徴 ● 注意事項 ● 使用制限 ● 実装事例紹介

Slide 21

Slide 21 text

注意事項(STP実行タイミング)

Slide 22

Slide 22 text

使用制限 ● 機能紹介 ● 特徴 ● 注意事項 ● 使用制限 ● 実装事例紹介

Slide 23

Slide 23 text

使用制限 ● ComputeShaderサポートされない端末だと使えない ● FXAA、SMAA、TAAなどPostProcessのAAと併用不可 ○ STPを有効にした場合、それらは自動的で無効にされる ○ STPにTAA処理が入っているため、大した問題にはならない ● TAAの技術を使っているため、TAAが使えない場面ならSTPも使え ない ○ MSAAと併用不可 ○ CameraStackと併用不可(使える場面が結構減る)

Slide 24

Slide 24 text

実装事例紹介 ● 機能紹介 ● 特徴 ● 注意事項 ● 使用制限 ● 実装事例紹介

Slide 25

Slide 25 text

実装事例紹介 - 要望リスト 要望: 1. UIをフル解像度で描画する 2. UIにPostProcessingを適用しない 1と2だけなら、OverlayCanvasで解決 3. UIをGammaSpaceで描画する(RendererFeatureが必要) 4. UIを3Dオブジェクトに遮蔽されることができる(深度テスト が必要) 3と4も含めると、CameraCanvas + CameraStackで解決

Slide 26

Slide 26 text

実装事例紹介 - 自作RendererFeature STPを使うと、CameraStackが使えなくなるので、 解決するために、描画を制御するRendererFeatureを作り ました。 UIをCameraCanvasにして、 CameraStackを使わずに、 自作のRendererFeatureで描画することにしました。

Slide 27

Slide 27 text

実装事例紹介 - 実行タイミング

Slide 28

Slide 28 text

実装事例紹介 - RenderObjectのエラー

Slide 29

Slide 29 text

実装事例紹介 - エラーの原因

Slide 30

Slide 30 text

実装事例紹介 - UIが揺れる

Slide 31

Slide 31 text

実装事例紹介 - 完成

Slide 32

Slide 32 text

まとめ - STPの特徴 STPの強み: ● 素晴らしいUpScalingの品質 ● ハードへ依存度が低い ● 処理負荷が比較的に軽い STPの弱み: ● ComputeShader環境依存 ● UIの描画に向いてない ● CameraStackと併用不可

Slide 33

Slide 33 text

まとめ - STP実装例 自作ReandererFeatureに実装する必要があること ● 描画タイミングの制御 ● DepthBufferの作成 ● カメラマットリックスからJitterの除去 コアテクブログ: ● RenderGraphの基本概念 ● RenderGraphでRenderPassの構築 ● RenderGraphでデータの受け渡し

Slide 34

Slide 34 text

最後に ご清聴ありがとうございました

Slide 35

Slide 35 text

共通パーツ:ロゴデータ 以下はもう使わない

Slide 36

Slide 36 text

使用フォント : 見出しフォントM PLUS 1c https://fonts.google.com/specimen/M+PLUS+1p?subset=japanese 基本使用カラー テキスト:#74775e テキストのアクセント / リンク等:#a3e685 #fdc4c4 #0097a7 図形 : #74775e #a3e685 #fdc4c4 #0097a7 #f3eb83 背景 : #fffcf0 #f3eb83 本文:ウェイト__標準    行間_____1.5行 タイトル・見出し用ウェイト : 中字 文字とカラー規定

Slide 37

Slide 37 text

文字が入る × × × 文字が入る 文字が入る 文字が入る 共通パーツ:図形 文字が入る 文字が入る

Slide 38

Slide 38 text

クリックしてタイトルを追加 株式会社サイバーエージェント 2021.09.09 苗字 名前

Slide 39

Slide 39 text

英単語が長くて改行すると 読みづらい時に使用 クリックしてタイトルを追加 株式会社サイバーエージェント 2021.09.09 苗字 名前

Slide 40

Slide 40 text

クリックしてタイトルを追加 Chapter : 01

Slide 41

Slide 41 text

応用実装編1 「RenderPassの構築」 Unity6から RenderGraphを使いこなそう!

Slide 42

Slide 42 text

応用実装編2 「データの受け渡し」 Unity6から RenderGraphを使いこなそう!

Slide 43

Slide 43 text

本 文テキストが入ります。本 文はウェイト標 準、行間は1.5だとすっきりします。以下サン プル文章。昔母親から捨てられたことがずっ と心の傷となっているカフカは、15歳の誕生 日に父 親からかけられた、「お前はいつか自 分の手で父 親を殺し、母と姉と交わるだろ う」という言 葉から脱 出するために、「カラ ス」と呼ばれる少 年からアドバイスをもらい ながら、家出をします。 小見出しタイトル。ウエイトは中字です サンプル図形の使い方

Slide 44

Slide 44 text

①「文字とカラー規定」にある「テキストのアクセント」項目にある色を使う ②「共通パーツ」にある罫線もしくは座布団を引く ③書体のサイズはそのままでウエイトを一段階上げる ※あまり太さの差をつけすぎたり、 複数の要素を合わせると逆に安っぽくなるので  なるべく厳選した方がいいです。 強調の付け方

Slide 45

Slide 45 text

No content