Slide 1

Slide 1 text

Azure Remote Rendering 公式サンプル 徹底解説 神 戸 デ ジ タ ル ・ ラ ボ 新 事 業 創 造 係 堀 尾 風 仁 A z u r e T e c h L a b # 7 セ ッ シ ョ ン 資 料 ク ラ ウ ド で 高 品 質 な 3 D コ ン テ ン ツ を レ ン ダ リ ン グ し て く れ る サ ー ビ ス プ レ ビ ュ ー https://azure.microsoft.com/ja-jp/services/remote-rendering/

Slide 2

Slide 2 text

堀 尾 風 仁 株 式 会 社 神 戸 デ ジ タ ル 新 事 業 創 造 係 M R 班 班 長 M i x e d R e a l i t y ア プ リ ケ ー シ ョ ン 企 画 ・ 導 入 ・ 開 発 な ど を 担 当 神 戸 デ ジ タ ル ・ ラ ボ 入 社 ( 2 0 1 5 ) I o T / M R な ど の 新 規 事 業 担 当 ( 2 0 1 6 - 2 0 1 8 ) Microsoft Mixed Reality パートナープログラム M R P P 認 定 ( 2 0 1 8 / 0 7 ) M i x e d R e a l i t y 専 任 ( 2 0 1 8 - 現 在 ) コ ミ ュ ニ テ ィ 運 営 A z u r e T e c h L a b . ( 2 0 1 9 - ) A R K O B E ( 2 0 1 9 - )

Slide 3

Slide 3 text

01. Azure Remote Rendering 概要 02. 公式サンプル 徹底解説 03. サービス利用時の留意点 04. まとめ ア ジ ェ ン ダ

Slide 4

Slide 4 text

01. Azure Remote Rendering 概要 A z u r e M i x e d R e a l i t y 新 サ ー ビ ス

Slide 5

Slide 5 text

高品質な対話型3Dコンテンツをクラウドでレンダリング、ローカルにストリーム可能にする Azure サービス です。 これまで Azure Remote Rendering 使用時 3DCGをローカルで処理 ( 端末のスペックに依存する ) HoloLens 2 の場合 Snapdragon 850 ( SoC ) に含まれる Adreno 630 ( GPU ) で処理 Azure VM 上の ハイエンドな GPU で処理 レンダリング結果をエッジ端末にストリーム ① ③ ② ① セッションリクエスト ( 初回は、Azure VM 起動 ) ② 対象の3DCGをクラウドリソースにてレンダリング処理 ③ レンダリング結果を エッジ端末 にストリーム 最大 十数万ポリゴン!? 最大 数億ポリゴン!? A z u r e R e m o t e R e n d e r i n g 概 要 ※ 2020年4月7日に Public Preview としてリリース

Slide 6

Slide 6 text

高品質な対話型3Dコンテンツをクラウドでレンダリング、ローカルにストリーム可能にする Azure サービス です。 これまで Azure Remote Rendering 使用時 3DCGをローカルで処理 ( 端末のスペックに依存する ) HoloLens 2 の場合 Snapdragon 850 ( SoC ) に含まれる Adreno 630 ( GPU ) で処理 Azure VM 上の ハイエンドな GPU で処理 レンダリング結果をエッジ端末にストリーム ① ③ ② ① セッションリクエスト ( 初回は、Azure VM 起動 ) ② 対象の3DCGをクラウドリソースにてレンダリング処理 ③ レンダリング結果を エッジ端末 にストリーム 最大 十数万ポリゴン!? 最大 数億ポリゴン!? A z u r e R e m o t e R e n d e r i n g 概 要

Slide 7

Slide 7 text

高品質な対話型3Dコンテンツをクラウドでレンダリング、ローカルにストリーム可能にする Azure サービス です。 これまで Azure Remote Rendering 使用時 3DCGをローカルで処理 ( 端末のスペックに依存する ) HoloLens 2 の場合 Snapdragon 850 ( SoC ) に含まれる Adreno 630 ( GPU ) で処理 Azure VM 上の ハイエンドな GPU で処理 レンダリング結果をエッジ端末にストリーム ① ③ ② ① セッションリクエスト ( 初回は、Azure VM 起動 ) ② 対象の3DCGをクラウドリソースにてレンダリング処理 ③ レンダリング結果を エッジ端末 にストリーム 最大 十数万ポリゴン!? 最大 数億ポリゴン!? A z u r e R e m o t e R e n d e r i n g 概 要

Slide 8

Slide 8 text

※ 現在、サポートされているデバイスは、HoloLens 2 / PC のみとなります。 A z u r e R e m o t e R e n d e r i n g 活 用 シ ナ リ オ https://azure.microsoft.com/en-us/services/remote-rendering/ 想定される活用シナリオ ・ 工業プラントなどの建築データのデジタルツイン作成 ・ 高精度の3DCG設計レビュー (トラックエンジン など) ・ 医療分野での手術前レビュー ( 患者臓器データ など ) etc ... 複雑かつ、高解像度の3Dデータを処理する場面

Slide 9

Slide 9 text

ク イ ッ ク ス タ ー ト / 公 式 サ ン プ ル 2 つ 試 し て み ま し た クイックスタート 公式サンプル : 1870万ポリゴン : 2073箇所 : 94 ポリゴン数 可動パーツ マテリアル数 3DCG の表示のみ ( 操作なし ) 各種機能の検証が可能 ( 操作あり )

Slide 10

Slide 10 text

A z u r e R e m o t e R e n d e r i n g レ ン ダ リ ン グ 処 理 の 特 徴 ( 2 つ ) 1. Hybrid rendering 2. Multi-GPU rendering ✅ ク ラ ウ ド と エ ッ ジ で レ ン ダ リ ン グ を 両 立 す る こ と が 可 能 ✅ R e m o t e R e n d e r i n g 専 用 の U I フ レ ー ム ワ ー ク は 存 在 し な い M R T K ( M i x e d R e a l i t y T o o l k i t ) 等 で 自 由 に U I を カ ス タ マ イ ズ 可 能 ✅ レ ン ダ リ ン グ 処 理 を 複 数 の G P U イ ン ス タ ン ス に 分 散 可 能 ✅ 処 理 結 果 を マ ー ジ し 、 1 つ に 統 合 す る こ と が 可 能 + 軽 量 な 3 D ( U I 領 域 ) 大 き な 3 D C G

Slide 11

Slide 11 text

ア ー キ テ ク チ ャ / H i g h t B r e a k d o w n https://docs.microsoft.com/en-us/azure/remote-rendering/overview/about#high-level-architecture Azure Remote Rendering は ARR SDK を介して実行されます。 Azure VM 起動タイミング Remote Rendering 初回リクエスト時 VM起動には、2~3分かかるので注意!

Slide 12

Slide 12 text

ア ー キ テ ク チ ャ / H i g h t B r e a k d o w n https://docs.microsoft.com/en-us/azure/remote-rendering/overview/about#high-level-architecture クライアント側 サーバー側 クライアント側 サーバー側 クライアント側 独自コード : ユーザー入力処理、シーングラフ更新 ARRコード : シーングラフ更新、予想される頭部姿勢を サーバーに送信 1. 利用可能なGPUにレンダリングを分散 2. 複数GPUの処理結果を統合 3. 処理結果をエンコードして、ストリーム 独自コード : ローカルコンテンツのレンダリング ARRコード : ストリームデータとローカルコンテンツの マージ処理を行う (存在する場合) レンダリング要求から処理結果を受け取るプロセス

Slide 13

Slide 13 text

ア ー キ テ ク チ ャ / H i g h t B r e a k d o w n https://docs.microsoft.com/en-us/azure/remote-rendering/overview/about#high-level-architecture Azure Remote Rendering は ユーザーの視点が動くたびにレンダリング処理を実行します。 注意すべきポイント レンダリング処理を要求、実行を行い、 エッジ側で結果を受け取るまでに ネットワークの待ち時間が発生 動作の激しい動きをすると、 3DCGがブレるので注意が必要

Slide 14

Slide 14 text

02. 公式サンプル 徹底解説 A z u r e R e m o t e R e n d e r i n g E x a m p l e s

Slide 15

Slide 15 text

本 日 ご 紹 介 す る も の クイックスタート 公式サンプル : 1870万ポリゴン : 2073箇所 : 94 ポリゴン数 可動パーツ マテリアル数 3DCG の表示のみ ( 操作なし ) 各種機能の検証が可能 ( 操作あり )

Slide 16

Slide 16 text

公 式 サ ン プ ル の 画 面 遷 移 と U I 機 能 ( 1 ) アプリを起動すると、MRTK で作られたメニューが表示されます。 ・Tools : 操作機能設定 ・Models : モデルの追加 ・Sessions : セッションの管理 ・Status : デバッグログ確認

Slide 17

Slide 17 text

公 式 サ ン プ ル の 画 面 遷 移 と U I 機 能 ( 2 ) Sessions > Start Session を押下すると、Remote Rendering セッションがスタートします ・Status : セッションの状態 ・Session Region : 利用リージョン ・Session Size : ARRプラン ・Status Duration : 開始からの経過時間

Slide 18

Slide 18 text

公 式 サ ン プ ル の 画 面 遷 移 と U I 機 能 ( 3 ) Sessions > Web Inspector を押下すると、Web上で Remote Rendering のログを確認することができます。 アプリ上では表示されていない細かなログや パフォーマンスチェックを行うことができます。

Slide 19

Slide 19 text

公 式 サ ン プ ル の 画 面 遷 移 と U I 機 能 ( 4 ) セッション開始から5分程度で 3DCG が表示されます。 セッション開始、コネクション確立 3~5分程度 3DCGのダウンロード 30秒~1分程度 ( 1870万ポリゴン )

Slide 20

Slide 20 text

公 式 サ ン プ ル の 画 面 遷 移 と U I 機 能 ( 5 ) 公式サンプルでは、Tools を使用してオブジェクトの操作ができます。 エンジンのCGを分解している様子

Slide 21

Slide 21 text

公 式 サ ン プ ル の 画 面 遷 移 と U I 機 能 ( 6 ) Tools では 8種類 の操作機能切り替えを行うことができます。 Move all Erase Color Move Place Explode Lighting Slice Revert : オブジェクト全体を移動・拡大縮小 : オブジェクトを削除 : マテリアルカラー変更 : 限定的な部分の移動・拡大縮小 : オブジェクトをばらけさせる : ライトの切り替え : オブジェクトを輪切りにする : ひとつ前の動作を元に戻す

Slide 22

Slide 22 text

公 式 サ ン プ ル の 画 面 遷 移 と U I 機 能 ( 7 ) Tools > Color を使うと、マテリアルカラーを動的に変更することができます。 変更後 変更前

Slide 23

Slide 23 text

公 式 サ ン プ ル の 画 面 遷 移 と U I 機 能 ( 8 ) Tools > Slice を使うと、平面 ( Plane ) を使って、オブジェクトの断面を見ることができる。 切断後 切断前

Slide 24

Slide 24 text

公 式 サ ン プ ル の 画 面 遷 移 と U I 機 能 ( 9 ) Tools > Lighting を使うと、ライトの表現を動的に切り替えることができます。 Default Satara Night

Slide 25

Slide 25 text

公 式 サ ン プ ル / a z u r e - r e m o t e - r e n d e r i n g https://github.com/Azure/azure-remote-rendering/tree/master/Unity/AzureRemoteRenderingShowcase ソースコードは、GitHub 上に公開されています。

Slide 26

Slide 26 text

検 証 環 境 ・Windows 10 バージョン 1903 以降 ・Windows SDK 10.0.18362.0 以降 ・最新のグラフィックドライバー 開発用PC : Windows 10 Pro 使用ソフトウェア 一覧 ・Visual Studio 2019 Community 最新版 ( ※ 2017ではビルドできない ) ・Version 16.5.3 ・Unity 2019.3.1f1 ・UWP - ユニバーサル Windows プラットフォーム Build Support ・IL2CPP - Windows Build Support https://docs.microsoft.com/ja-jp/azure/remote-rendering/overview/system-requirements Unity 上でローカルプレビューを行う場合 ・ (オプション) : H265 ハードウェア ビデオデコーダー

Slide 27

Slide 27 text

シ ス テ ム 要 求 仕 様 : ネ ッ ト ワ ー ク 環 境 ( ※ 重 要 ) https://docs.microsoft.com/ja-jp/azure/remote-rendering/reference/network-requirements ― Azure Remote Rendering を シングルセッション で使用する場合 • Download : 50 Mbps • Upload : 10 Mbps ネットワークの状態が悪いと、接続が切断されたり、ホログラムが揺れたり、飛ぶなどの遅延が発生します。 Wifi使用時は、2.4-GHz 帯 よりも 5-GHz 帯 の方が良い結果が得られる ようです。 その他、Wifiの電波強度、同帯域内での競合トラフィックの有無等を確認した上で 利用を検討するのが良さそうです。 検証環境 ( 自宅 )

Slide 28

Slide 28 text

公 式 サ ン プ ル 検 証 手 順 ( 所 要 時 間 : 1 時 間 程 度 ) 1. Azure Remote Rendering サンプルのソースコードをクローン 2. Unity 2019.3 にて 対象ディレクトリを開く 3. Unity > Build Settings にて Switch Platform を行う ( Universal Windows Platform ) 4. Sample Scene を開く 5. ヒエラルキーより RemoteRenderingService オブジェクトを選択 6. RemoteRenderingService コンフィグに自分の Remote Rendering 認証情報を入力 7. グローバルメニュー [ Builder ] より Build HoloLens 2 Client を選択し、実行 8. Device Portal より Appx ファイルをデプロイする 9. 検証実施 https://github.com/Azure/azure-remote-rendering/tree/master/Unity/AzureRemoteRenderingShowcase

Slide 29

Slide 29 text

A z u r e R e m o t e R e n d e r i n g ア カ ウ ン ト 準 備 (1)Marketplace で Remote Rendering を検索 (2)Remote Rendering リソースを作成ボタンを押下

Slide 30

Slide 30 text

A z u r e R e m o t e R e n d e r i n g ア カ ウ ン ト 準 備 (3) サブスクリプション、リソースグループを指定 リソースを作成 ( デプロイまで1分程度 )

Slide 31

Slide 31 text

A z u r e R e m o t e R e n d e r i n g ア カ ウ ン ト 準 備 (4) アカウントID、アクセスキー 使用リージョンをメモ Azure Remote Rendering がデプロイされるリージョンは リソースグループ のリージョンに依存?

Slide 32

Slide 32 text

A z u r e P o r t a l : セ ッ シ ョ ン 確 認 Remote Rendering の有効セッションは、「Sessions」から確認することが可能です。 サービス内の Azure VM にはアクセスできない ので、セッションで管理を行う必要がある ( 部分時間課金 )

Slide 33

Slide 33 text

U n i t y 上 で の 作 業 arr-showcase-app ディレクトリを Unity プロジェクトに追加する。 azure-remote-rendering¥Unity¥AzureRemoteRenderingShowcase¥arr-showcase-app https://github.com/Azure/azure-remote-rendering/tree/master/Unity/AzureRemoteRenderingShowcase ショートカット[ Ctrl + Shift + B ] Build Settings を開き ⇒ Switch Platform を行う

Slide 34

Slide 34 text

U n i t y 上 で の 作 業 Remote Rendering サービスの アカウントID, アクセスキーを Inspector から入力する。 【 ヒエラルキー 】 MixedRealityToolkit > RemoteRenderingService [ Remote Rendering Account Settings ] Account Id : アカウントID Account Key : アクセスキー [ Storage Account Settings ] Azure Blob ストレージに任意の3DCGを配置

Slide 35

Slide 35 text

03. サービス利用時の留意点 提 供 リ ー ジ ョ ン 、 プ ラ ン と 価 格 etc..

Slide 36

Slide 36 text

Azure Remote Rendering は、以下4つのリージョンでサービスが提供されています ( 2020年4月現在 ) ※ どのリージョンでも使用可能ですが、アプリケーション使用場所から 物理的に最も近いリージョンを使用することを推奨 ・米国西部2 ( westus2 ) ・米国東部 ( eastus ) ・西ヨーロッパ ( westeurope ) ・東南アジア ( southeastasia ) A z u r e R e m o t e R e n d e r i n g 利 用 可 能 リ ー ジ ョ ン

Slide 37

Slide 37 text

利 用 プ ラ ン と 価 格 ― 2つのプラン と アセット変換 の利用プランが存在 Standard Remote Rendering Premium Remote Rendering Asset Conversion 最大 2000万 ポリゴン 8 TFLOP ( 毎秒8兆回演算可 ) 最大 数億 ポリゴン 40 TFLOP ( 毎秒40兆回浮動小数点演算 ) FBX, GLTF ファイルを リモートレンダリング用に変換する 仕組み ( モデルごとに1回必要 )

Slide 38

Slide 38 text

利 用 プ ラ ン と 価 格 ― 2つのプラン と アセット変換 の利用プランが存在 Standard Remote Rendering Premium Remote Rendering Asset Conversion 最大 2000万 ポリゴン 8 TFLOP ( 毎秒8兆回演算可 ) 最大 数億 ポリゴン 40 TFLOP ( 毎秒40兆回浮動小数点演算 ) FBX, GLTF ファイルを リモートレンダリング用に変換する 仕組み ( モデルごとに1回必要 ) HoloLens 2 SoC ( Snapdragon 850 ) に搭載されている GPU ( Adreno 630 ) 727 GFLOP ≒ 0.73 TFLOP https://japanese.engadget.com/2018/06/05/windows-10-snapdragon-850/ 1 0 倍 以 上 の 処 理 が 可 能 に ! ? ( 単 純 計 算 )

Slide 39

Slide 39 text

利 用 プ ラ ン と 価 格 利 用 プ ラ ン 利 用 料 金 概 要 Standard Remote Rendering Premium Remote Rendering Asset Conversion 487.200 円 / 時間 1948.800円 / 時間 100 トランザクション無料 / 月 84 円 / 1アセット変換 最大 2000万 ポリゴン 8 TFLOP ( 毎秒8兆回演算可 ) 最大 数億 ポリゴン 40 TFLOP ( 毎秒40兆回浮動小数点演算 ) FBX, GLTF ファイルをリモートレンダリング用に 変換する仕組み ( モデルごとに1回必要 ) https://azure.microsoft.com/en-us/pricing/details/remote-rendering/ 東南アジア / southeastasia 使用リージョン リージョンごとに、利用価格が異なるで注意が必要です。

Slide 40

Slide 40 text

利 用 プ ラ ン と 価 格 利 用 プ ラ ン 利 用 料 金 概 要 Standard Remote Rendering Premium Remote Rendering Asset Conversion 336 円 / 時間 1,334 円 / 時間 100 トランザクション無料 / 月 84 円 / 1アセット変換 最大 2000万 ポリゴン 8 TFLOP ( 毎秒8兆回演算可 ) 最大 数億 ポリゴン 40 TFLOP ( 毎秒40兆回浮動小数点演算 ) FBX, GLTF ファイルをリモートレンダリング用に 変換する仕組み ( モデルごとに1回必要 ) 米国西部2 / westus2 使用リージョン 今回の検証では、米国西部2 / westus2 を使用しましたが、特に遅延等は気になりませんでした 151円 価格ダウン 614円 価格ダウン 価格変動なし

Slide 41

Slide 41 text

A z u r e R e m o t e R e n d e r i n g / 特 徴 1 3 個 1. Cut planes / 切断面 2. Debug Rendering / デバッグレンダリング 3. Hierarchical state override / 階層状態のオーバーライド 4. Late Stage Reprojection 5. Light / 照明 6. PBR materials / PBR 素材 7. Color materials / 色素材 8. Outline rendering / アウトラインレンダリング 9. Single-sided rendering / 片面レンダリング 10. Spatial queries / 空間クエリ 11. Sky reflections / 空の反射 12. Z-fighting mitigation / Z ファインディングの軽減 13. Server-side performance queries / サーバー側のパフォーマンスクエリ https://docs.microsoft.com/en-us/azure/remote-rendering/overview/about

Slide 42

Slide 42 text

A z u r e R e m o t e R e n d e r i n g / 特 徴 1 3 個 1. Cut planes / 切断面 2. Debug Rendering / デバッグレンダリング 3. Hierarchical state override / 階層状態のオーバーライド 4. Late Stage Reprojection 5. Light / 照明 6. PBR materials / PBR 素材 7. Color materials / 色素材 8. Outline rendering / アウトラインレンダリング 9. Single-sided rendering / 片面レンダリング 10. Spatial queries / 空間クエリ 11. Sky reflections / 空の反射 12. Z-fighting mitigation / Z ファインディングの軽減 13. Server-side performance queries / サーバー側のパフォーマンスクエリ https://docs.microsoft.com/en-us/azure/remote-rendering/overview/about

Slide 43

Slide 43 text

特 徴 1 : Cut planes / 切断面 https://docs.microsoft.com/en-us/azure/remote-rendering/overview/features/cut-planes メッシュ内部を表示する視覚機能 ( ※ plane などを用いる )

Slide 44

Slide 44 text

特 徴 2 : Hierarchical state override / 階層状態のオーバーライド https://docs.microsoft.com/en-us/azure/remote-rendering/overview/features/override-hierarchical-state Tint color See-throught オブジェクトの状態をオーバライドする機能

Slide 45

Slide 45 text

特 徴 3 : PBR materials / PBR 素材 https://docs.microsoft.com/en-us/azure/remote-rendering/overview/features/pbr-materials PBR (Physical Based Rendering) 物理ベースレンダリングとも呼ばれる 実写のようなリアリティのある映像の制作や、 建築物、自動車などの表現が可能になる

Slide 46

Slide 46 text

特 徴 4 : Outline rendering / アウトラインレンダリング https://docs.microsoft.com/en-us/azure/remote-rendering/overview/features/outlines オブジェクトにアウトラインを追加する機能 outlineSettins.Color 色 outlineSettings.PluseRateHz 1秒当たりの振動数 outlineSettings.PulseIntensity アウトラインの強弱

Slide 47

Slide 47 text

04. まとめ A z u r e R e m o t e R e n d e r i n g を 利 用 し た 所 感

Slide 48

Slide 48 text

・とにもかくにも 3DCG が高精細 ( エンジンの泥汚れまで再現可能 ) ・Standard Remote Rendering でも十分に綺麗なコンテンツを楽しめる 所感 注意すべきポイント ・使用リージョンによって料金に差があるので、利用前に事前チェックを行う ・Remote Rendering は部分時間課金なので、セッション管理 (削除) をこまめに行う ・ネットワーク環境がUXのカギになるので、使用する環境の事前チェックを行う ・セッションスタートからCG表示までに3~5分弱かかるので注意する (初回起動時) ・映像と実機で見た際の差が大きいので実機でみるべし

Slide 49

Slide 49 text

・Microsoft Azure / Remote Rendering (公式) https://azure.microsoft.com/ja-jp/services/remote-rendering/ ・Azure Remote Rendering documentation (公式) https://docs.microsoft.com/en-us/azure/remote-rendering/ ・Azure Remote Rendering について ~概要(まずはQuick Start)~ https://www.slideshare.net/TakahiroMiyaura/azure-remote-rendering 参 考 文 献

Slide 50

Slide 50 text

チャンネルのご登録よろしくお願いします! 告 知 Y o u T u b e チ ャ ン ネ ル 開 設 し ま し た ! https://www.youtube.com/channel/UC_wQXEG9Wm371ynvaPs6IJg

Slide 51

Slide 51 text

ご 質 問 、 ご 相 談 等 お 気 軽 に ど う ぞ ! https://twitter.com/Futo_Horio ご 清 聴 あ り が と う ご ざ い ま し た ! T h a n k s