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

[FOSS4G 2016 Hokkaido] Cesiumマニアックス

[FOSS4G 2016 Hokkaido] Cesiumマニアックス

★ この資料は FOSS4G 2016 Hokkaido の登壇発表資料です ★

Cesium だけで地物を大量表示するには?地形データを軽量化するには?観測データを3次元表示するには?物理演算するには?
Cesium.js のマニアックな知見をご紹介します!

発表者:中洞 友希(株式会社ノーザンシステムサービス 研究開発部)

More Decks by ノーザンシステムサービス | Northern System Services

Other Decks in Technology

Transcript

  1. それぞれのメリット・デメリット 【メリット】 ・お手軽に時系列アニメーションが できる。 ・ポイントのスタイルを自由に いじれる。 【デメリット】 ・数万ポイントしか表示できない。 Point Primitive

    Collection 【メリット】 ・大量のポイントを表示できる。 【デメリット】 ・時系列アニメーションに対応して いない。 ・ポイントのスタイルをあまりいじ れない。 Entity
  2. Cesiumで3次元震源データの 時系列アニメーション デモ Entity 2011年~ https://www.youtube.com/watch?v=EUKj5oG3mEk&feature=youtu.be 熊本地震 https://www.youtube.com/watch?v=vdJ_aLzykoc&feature=youtu.be Point Primitive

    Collection 2000年~ https://www.youtube.com/watch?v=0fJ2GEk9wCQ&feature=youtu.be 2000年~(時系列アニメーション) https://www.youtube.com/watch?v=fcdMRxyzyWY&feature=youtu.be
  3. ・Google summer of codeのアイディアでoimo.jsとか使った物理 演算とか実装出来るとクール! とか書いてあったので、現時点で は物理演算機能は実装されていないようだ。 ・oimo.jsってそもそもなんだ?お芋? ・元々はOimoPhysicsというactionscript3で実装された物理演算ラ イブラリをjavascriptに移植した軽量物理演算らしい。

    ・とりあえず、物理演算だけを実装するには向いてそうなので採択。 ・ではこれをどうやってCesiumに組み込むか? ・まず座標系を合わせなければいけない。 ・Cesiumではcartesian(カーテシアンと読みます。デカルト座標 系=直交座標系)という地球楕円体の中心を原点とした座標系を採 用している。 ・oimo.js等、物理演算系は大抵直交座標なので、 cartesianで渡し てやればいけそう。 物理演算エンジンは何を使うか?
  4. レンダリングはthree.jsで ・本来的にはCesiumのprimitiveを動かしてやるのが早そうだけど、 試したら遅かった。 ・Cesiumのレンダリングではなく、 oimo.jsと相性が良いthree.js ではどうか? ・幸いpotreeと言うポイントクラウド表示ライブラリでcesiumと three.jsとpotreeを組み合わせたサンプルがあったので、こちらを 拡張して作ってみた。 ・

    three.jsは基本的にレンダリング自体はCesiumより早いので大規 模な点群やパーティクルなどを表示する場合は併用してもよいかも しれない。ちなみにpotreeは予めoctree化(Cesiumで言うところ の3DTilesのようなもの)しておかないと使えないため、リアルタイ ム点群は表示できないようだ。この辺は調査中。