CrossRoadスマートフォン用の表示で見るCrossRoadAR、MR、VR、Babylon.jsを中心とした技術ブログ。2017」の13日目の記事です。2017】世界をローポリにしてやろうか!」でした。kazumalabさんのリンクが消えていたのでURLを削除しました)本日は、モデルの処理負荷を下げるアセットを、HoloLensを交えて紹介します。はじめにHoloLensは空間認識を交えた機能が秀逸ですが、描画機能だけに絞ると性能は高くありません。そのため、VR系の開発をした経験から同じ感覚でアプリを作ると、簡単にFPSが低くなります。FPSが低くなる原因の一つに、表示させたモデルの描画負荷が高いことが挙げられます。Baker」を教えていただきました。(@waffle_makerさん、@izmさん、ありがとうございます)今回はこれの使い方と、いくつかのCGモデルを用いてHoloLensで試した結果を解説します。EditorのStatisticsに記載されている値を目安にします。Tris(ポリゴン数)、Verts(頂点数)は、Cameraの描画範囲にオブジェクトが増えるほど大きくなります。この動画では、Cubeを1つずつ増やしています。そのときにTrisとVertsという数値が増えていることが確認できます。Call(レンダリングパスの回数)は、同一マテリアルがあるかによって変化します。Callの考え方や削減方針については、こちらでとても明快な解説をされているので、ご参考ください。Qiita次に、白と赤の二つのマテリアルを使ってみました。TrisとVertsがCubeの出現によって増えるのは先ほどの動画と同じですが、SetPassCallはCube1種類のときよりも大きな値になります。ところで、動画の終わりのところでは、わざとカメラを動かしています。カメラの描画範囲にオブジェクトが増えたり減ったりすることで、TrisやVerts、SetPassCallなど、描画負荷を示す数値が変化することも確認できます。Call値ならよい」と明記したものはありませんでした。Developer→MS公式HP。FPSの値、Shaderの使用基準などは記載あり。Developer→Unityの設定に関する記載あり下記の記事では、著者はポリゴン数を減らした場合、Shaderを変えた場合のCGモデルをHoloLensで表示し、そのときのFPSを比較しています。実験による考察として、HoloLensの場合、このうちのTris値が80,000以下だと快適な描画になるという記載がありました。Calls値の変化によるパフォーマンスの差については言及がありませんでした。Callsの値も影響することがわかりました。今回試した3つのモデルでの結果ですが、「5.考察」に傾向を書きましたのでご参考ください。Bakerとは?メッシュをひとまとめにし、まとめたメッシュ単位でマテリアルを作ることで、描画負荷を減らすアセットです。モバイルやHoloLensのアプリ開発では、描画負荷が高い=処理落ちすると、コンテンツの評価が下がりやすくなるため、適用範囲が広いアセットと思います。使い方を書こうかなと思いましたが、すでに詳しく書かれているサイトがありましたので、こちらを紹介させていただきます。(:3[kanのメモ帳]主な手順は上記ブログの通りです。Bakerのバージョンアップのためか、一部見た目が変わっていたので、補足します。Objectsをクリックすると、このようなウインドウが表示されます。「アセット」については調べても出てきませんでしたが、このように結合対象のマテリアルを管理するファイルと考えればよさそうです。マテリアルをまとめる(3),(4)は同じなので説明を割愛します。Object」になっています。この状態ではMesh情報が残っていません。そのため、結合したモデルをPrefabにして、後でスクリプトからinstantiateしても何も表示されません。これを回避する方法を追記します。Prefab」に指定します。Viewから空のPrefabを生成します。ここでは「urbancityprefab」という名前にしました。Viewで空のGameObjectを生成し、先ほどのurbancityprefabにドラッグします。これで、白色だったprefabアイコンが青色になります。Prefabという項目にドラッグします。Viewのurbancityprefabの下にメッシュファイルが追加されます。ちなみに、上記の方法はこちらの動画から参照しました。4:00頃から説明されています。過去に買ったことがある3Dモデルアセットをいくつか調べてみました。Editor上のStatisticsと、HoloLensで動かした場合の動画を載せています。いずれも描画範囲によって負荷が変わるので、このようなルールで記録しました。Bakerをかける前と後では、見た目の変化はほとんどわかりません。Callsが325から14に減っています。HoloLensで見てもカクツキは気にならなくなりました。Callsが1488から27に減っています。HoloLensで見てもカクツキは気にならなくなりました。Callが76から24に減りました。Bakerの有無でとくに体感上のカクツキは気になりませんでした。Callのどちらかが大きいと、HoloLensの見た目のカクツキに大きく影響することがわかりました。Callsは1400と76と、大きな差がありました。Sceneはパフォーマンスが悪かったです。Callが14に下がるとパフォーマンスの影響は気になりませんでした。Callsが76でしたが、とくにカクツキしませんでした。3つの例だけなのであくまで傾向の一例ですが、HoloLensにおいては、以下の状況であれば描画のカクツキは気にならないと考えられそうです。220前後のモデルをHoloLensで見たところ、カクツキがありました。このアセットはパフォーマンス改善に有効なので、HoloLensに限らず汎用的に使えると思います。Folders」紹介」です。Systemがあります...2018-02-19同じモデルをHoloLensとMeta2で表示したときの見え方を比較しました先日のMeta2体験会で、@yashinutさんと話していたとき、HoloLen...2017-10-30XCodeでiOSアプリをつくるときに調べた、UnityとXCodeの違い以前書いた記事のアクセス数が多いことと、最近注目されているA...2017-07-02【Unity】機能と性能面でLineRendererとGLを比較しました最近、このツイートでお知らせした空間OS的なものを開発してい...2017-06-13UnityのGLを使って、HoloLensで線を描画してみるUnityで線を引くにはいくつか方法があります。»ProfileAR、MR、VR、Babylon.jsを中心とした技術ブログです。広く色々な技術を勉強するのが好きで、あれこれ書いています。詳細なプロフィールはこちらをご確認ください。2020)■プライバシーポリシー■こちらに記載しておりますのでご確認ください。■お問い合わせ■こちらよりお願いいたします。月別アーカイブスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。