Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Azure Remote Rendering 公式サンプル徹底解説

Azure Remote Rendering 公式サンプル徹底解説

4/28(火) 18:30~
Azure Tech Lab #7 セッション登壇資料
「Azure Remote Rendering 公式サンプル徹底解説」
#azure #HoloLens2 #RemoteRendering #MRTK

Fccbd625997f63e7b251d9725cb905a5?s=128

堀尾風仁 Futo Horio

April 28, 2020
Tweet

Transcript

  1. 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/
  2. 堀 尾 風 仁 株 式 会 社 神 戸

    デ ジ タ ル 新 事 業 創 造 係 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 - )
  3. 01. Azure Remote Rendering 概要 02. 公式サンプル 徹底解説 03. サービス利用時の留意点

    04. まとめ ア ジ ェ ン ダ
  4. 01. Azure Remote Rendering 概要 A z u r e

    M i x e d R e a l i t y 新 サ ー ビ ス
  5. 高品質な対話型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 としてリリース
  6. 高品質な対話型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 概 要
  7. 高品質な対話型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 概 要
  8. ※ 現在、サポートされているデバイスは、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データを処理する場面
  9. ク イ ッ ク ス タ ー ト / 公

    式 サ ン プ ル 2 つ 試 し て み ま し た クイックスタート 公式サンプル : 1870万ポリゴン : 2073箇所 : 94 ポリゴン数 可動パーツ マテリアル数 3DCG の表示のみ ( 操作なし ) 各種機能の検証が可能 ( 操作あり )
  10. 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
  11. ア ー キ テ ク チ ャ / 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分かかるので注意!
  12. ア ー キ テ ク チ ャ / 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コード : ストリームデータとローカルコンテンツの マージ処理を行う (存在する場合) レンダリング要求から処理結果を受け取るプロセス
  13. ア ー キ テ ク チ ャ / 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がブレるので注意が必要
  14. 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
  15. 本 日 ご 紹 介 す る も の クイックスタート

    公式サンプル : 1870万ポリゴン : 2073箇所 : 94 ポリゴン数 可動パーツ マテリアル数 3DCG の表示のみ ( 操作なし ) 各種機能の検証が可能 ( 操作あり )
  16. 公 式 サ ン プ ル の 画 面 遷

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

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

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

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

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

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

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

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

    移 と U I 機 能 ( 9 ) Tools > Lighting を使うと、ライトの表現を動的に切り替えることができます。 Default Satara Night
  25. 公 式 サ ン プ ル / 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 上に公開されています。
  26. 検 証 環 境 ・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 ハードウェア ビデオデコーダー
  27. シ ス テ ム 要 求 仕 様 : ネ

    ッ ト ワ ー ク 環 境 ( ※ 重 要 ) 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の電波強度、同帯域内での競合トラフィックの有無等を確認した上で 利用を検討するのが良さそうです。 検証環境 ( 自宅 )
  28. 公 式 サ ン プ ル 検 証 手 順

    ( 所 要 時 間 : 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
  29. 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 リソースを作成ボタンを押下
  30. A z u r e R e m o t

    e R e n d e r i n g ア カ ウ ン ト 準 備 (3) サブスクリプション、リソースグループを指定 リソースを作成 ( デプロイまで1分程度 )
  31. 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 がデプロイされるリージョンは リソースグループ のリージョンに依存?
  32. A z u r e P o r t a

    l : セ ッ シ ョ ン 確 認 Remote Rendering の有効セッションは、「Sessions」から確認することが可能です。 サービス内の Azure VM にはアクセスできない ので、セッションで管理を行う必要がある ( 部分時間課金 )
  33. 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 を行う
  34. 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を配置
  35. 03. サービス利用時の留意点 提 供 リ ー ジ ョ ン 、

    プ ラ ン と 価 格 etc..
  36. 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 利 用 可 能 リ ー ジ ョ ン
  37. 利 用 プ ラ ン と 価 格 ― 2つのプラン

    と アセット変換 の利用プランが存在 Standard Remote Rendering Premium Remote Rendering Asset Conversion 最大 2000万 ポリゴン 8 TFLOP ( 毎秒8兆回演算可 ) 最大 数億 ポリゴン 40 TFLOP ( 毎秒40兆回浮動小数点演算 ) FBX, GLTF ファイルを リモートレンダリング用に変換する 仕組み ( モデルごとに1回必要 )
  38. 利 用 プ ラ ン と 価 格 ― 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 倍 以 上 の 処 理 が 可 能 に ! ? ( 単 純 計 算 )
  39. 利 用 プ ラ ン と 価 格 利 用

    プ ラ ン 利 用 料 金 概 要 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 使用リージョン リージョンごとに、利用価格が異なるで注意が必要です。
  40. 利 用 プ ラ ン と 価 格 利 用

    プ ラ ン 利 用 料 金 概 要 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円 価格ダウン 価格変動なし
  41. 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
  42. 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
  43. 特 徴 1 : Cut planes / 切断面 https://docs.microsoft.com/en-us/azure/remote-rendering/overview/features/cut-planes メッシュ内部を表示する視覚機能

    ( ※ plane などを用いる )
  44. 特 徴 2 : Hierarchical state override / 階層状態のオーバーライド https://docs.microsoft.com/en-us/azure/remote-rendering/overview/features/override-hierarchical-state

    Tint color See-throught オブジェクトの状態をオーバライドする機能
  45. 特 徴 3 : PBR materials / PBR 素材 https://docs.microsoft.com/en-us/azure/remote-rendering/overview/features/pbr-materials

    PBR (Physical Based Rendering) 物理ベースレンダリングとも呼ばれる 実写のようなリアリティのある映像の制作や、 建築物、自動車などの表現が可能になる
  46. 特 徴 4 : Outline rendering / アウトラインレンダリング https://docs.microsoft.com/en-us/azure/remote-rendering/overview/features/outlines オブジェクトにアウトラインを追加する機能

    outlineSettins.Color 色 outlineSettings.PluseRateHz 1秒当たりの振動数 outlineSettings.PulseIntensity アウトラインの強弱
  47. 04. まとめ A z u r e R e m

    o t e R e n d e r i n g を 利 用 し た 所 感
  48. ・とにもかくにも 3DCG が高精細 ( エンジンの泥汚れまで再現可能 ) ・Standard Remote Rendering でも十分に綺麗なコンテンツを楽しめる

    所感 注意すべきポイント ・使用リージョンによって料金に差があるので、利用前に事前チェックを行う ・Remote Rendering は部分時間課金なので、セッション管理 (削除) をこまめに行う ・ネットワーク環境がUXのカギになるので、使用する環境の事前チェックを行う ・セッションスタートからCG表示までに3~5分弱かかるので注意する (初回起動時) ・映像と実機で見た際の差が大きいので実機でみるべし
  49. ・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 参 考 文 献
  50. チャンネルのご登録よろしくお願いします! 告 知 Y o u T u b e

    チ ャ ン ネ ル 開 設 し ま し た ! https://www.youtube.com/channel/UC_wQXEG9Wm371ynvaPs6IJg
  51. ご 質 問 、 ご 相 談 等 お 気

    軽 に ど う ぞ ! https://twitter.com/Futo_Horio ご 清 聴 あ り が と う ご ざ い ま し た ! T h a n k s