Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
日本全国・都市3D化プロジェクト「PLATEAU」とデータ変換OSS「PLATEAU GI...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
nokonoko1203
November 30, 2024
Technology
7.3k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
日本全国・都市3D化プロジェクト「PLATEAU」とデータ変換OSS「PLATEAU GIS Converter」の公開
nokonoko1203
November 30, 2024
More Decks by nokonoko1203
See All by nokonoko1203
Introduction to Point Tiler
nokonoko1203
0
67
CloudflareでGIS × AIエージェント開発!
nokonoko1203
0
470
GISエンジニアから見たLINKSデータ
nokonoko1203
0
250
釣り地図SNSにおける有料機能の実装
nokonoko1203
0
300
EMがLLMで仕様書駆動開発したらすごい捗った
nokonoko1203
1
110
都市をデータで見るってこういうこと PLATEAU属性情報入門
nokonoko1203
1
820
Hono・Prisma・AWSでGeoなAPI開発
nokonoko1203
5
1.3k
日本全国の都市3D化プロジェクト「PLATEAU」の紹介
nokonoko1203
0
190
PLATEAU Hands-on 11 PLATEAUデータの高さや位置合わせについて理解する
nokonoko1203
0
950
Other Decks in Technology
See All in Technology
Redmine 7.0で私が開発した新機能の狙いと背景
vividtone
1
100
When Does a Local Qwen Start to Break
morshoto
0
160
はじめてのDatabricks:技術者向けワークショップ / beginner-workshop
databricksjapan
PRO
0
140
KPIだけでは評価できないプロダクトが考えるべき Evalsという第二の評価系 / Beyond KPIs: Evals as a Second Evaluation Framework for Products #PdEConf
aki_iinuma
3
3.5k
Bet AI Day 2026丨How We Bet AI: AIとともに働く場をつくる
layerx
PRO
1
2.1k
『止めない』を設計する — 制約の中で、事業の根幹を支える判断
hiroyaterui
0
160
Instana&Bob トラブルシュートハンズオン
mayamasaki68
0
110
Where Is JetBrains AI Heading- — Central CLI, Air Alpha, and the Agentic Development Stack
x5gtrn
PRO
0
120
こんなアーキテクチャ図は嫌だ BEYOND THE TIME: 半年後の自分へ贈る15のメッセージ / 15 of Anti-pattern in AWS Architecture Diagrams
naospon
3
220
AIエージェントを雇う前に決める5つのこと
knishioka
1
150
PM領域でのAI Agentの活用
lycorptech_jp
PRO
0
260
AIエージェントの開発・提供におけるセキュリティリスクの論点と対策
flatt_security
1
530
Featured
See All Featured
Design in an AI World
tapps
1
300
[RailsConf 2023] Rails as a piece of cake
palkan
59
7k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
230
Abbi's Birthday
coloredviolet
3
9.7k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4.6k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.3k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
700
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Automating Front-end Workflow
addyosmani
1369
210k
For a Future-Friendly Web
brad_frost
183
10k
Transcript
株式会社MIERUNE 西 尾 悟(@nokonoko_ 12 0 3 ) 2 0
2 4 - 1 1 - 3 0 Rust.Tokyo 2 0 2 4 都市3D化 プ ロ ジ ェクト「PLATEAU」と 「PLATEAU GIS Converter」の公開 RustによるGIS × 3 Dデータ処理
• 西 尾 悟(@nokonoko_ 12 0 3 ) • 前職:
建設コンサルタント(河川構造物) • 現職: 2児の 父 をやりながら株式会社 MIERUNEでGIS(地理空間情報)とWeb開 発を 行 う、Engineering Managerです! • Python / Rust / GIS / 点群 / 3D Tiles / AWS / WebGL / PLATEAU ADVOCATE / Cesium Certi fi ed Developer https://twitter.com/nokonoko_ 1203 https://qiita.com/nokonoko_ 1 203
None
さまざまなWeb技術を活 用 している「Web屋」です
文 化財総覧WebGIS 奈良 文 化財研究所 https://heritagemap.nabunken.go.jp/ かつ「位置情報」に関わるならなんでもやる「GIS屋」です PLATEAU QGIS Plugin
国 土 交通省 https://github.com/MIERUNE/plateau-qgis-plugin マインクラフト 高 松市 https://www.city.takamatsu.kagawa.jp/kurashi/shinotorikumi/machidukuri/toshi/maikura.html AIST 3 DDB Client 産総研 https://mierune.github.io/aist_ 3 ddb_client/
PLATEAU to Minecraft( 高 松市) https://x.com/G 7 _MLIT_JAPAN/status/ 167 76
44 599 643 47 18 72 https://x.com/MIERUNE_inc/status/ 16 731 578 62 69 106 585 7 ?s= 2 0
自己 紹介(会社や個 人 としての活動の 一 部) PLATEAU ADVOCATEとして、PLATEAUの社会実装に貢献 https://www.mlit.go.jp/plateau/journal/j 0
6 2 /
自己 紹介(会社や個 人 としての活動の 一 部) Cesiumに関連する優れた開発スキルを証明し、Cesium Certi fi ed
Developerに認定 https://cesium.com/cesium-certi fi ed-developer-program---japan/
自己 紹介(会社や個 人 としての活動の 一 部) 技術ブログなどでの積極的なアウトプット https://qiita.com/nokonoko_ 120 3
自己 紹介(会社や個 人 としての活動の 一 部) 東京 大 学でのデジタルツイン ・
GISに関わる講義の 一 部に講師として参加 https://dss.csis.u-tokyo.ac.jp/event/ 2 023 10 12 /
https://twitter.com/MIERUNE_inc https://www.mierune.co.jp/ https://github.com/MIERUNE/ https://qiita.com/organizations/MIERUNE カジュアル 面 談やってます! 気軽にご連絡ください!! https://www.mierune.co.jp/careers
目 次 • Project PLATEAUとは • データ変換ツールの必要性 • Rustの選定 ・
課題と解決策 • プロジェクトの今後の展望
Project PLATEAUとは プロジェクトの背景と 目 的
Project PLATEAUとは 国 土 交通省主導の「 日 本全国3D化プロジェクト」 https://www.mlit.go.jp/plateau/
Project PLATEAUとは Webサイトのデザインにも 力 を 入 れている https://www.mlit.go.jp/plateau/
PLATEAUの「デジタルツイン」実現に向けた多様な取り組み データ整備の効率化‧ 高 度化 https://www.mlit.go.jp/plateau/about/ 先進的なユースケース開発 データ‧カバレッジの拡 大
PLATEAL VIEW v 3 . 0 https://plateauview.mlit.go.jp/ • ブラウザで3D都市モデルを閲覧可能 •
218都市 ・ 2000万棟のデータが整備
地理空間情報としての3Dデータ https://plateauview.mlit.go.jp/ ただの3Dデータではなく、現実世界の情報を反映させた「地理空間情報」 建築年度 ・高 度 ・土 地利 用 分類など
エンタメなどの分野でも活 用 されている https://www.youtube.com/watch?v=Jb 6 Zlg 30 rgk&ab_channel=mwamjapan
ユースケースの整備 3 D都市モデルの有 用 性 https://www.mlit.go.jp/plateau/about/ →現実世界にユースケースが数多く転がっている
市 民 協働による樹 木 管理DX https://www.mlit.go.jp/plateau/use-case/uc 2 3 - 14
/ • 市 民 がスマートフォンアプリを使って都市公園内の樹 木 情報を収集し、データベース化する取り組み • 収集したデータは、樹 木 の環境価値(CO 2 吸収量など) の評価や、都市緑化 ・ 脱炭素まちづくりの推進に活 用 • 仙台市の榴岡公園で実施され、市 民 参加型のワークショ ップを通じてデータ収集が 行 われた • この取り組みは、 行 政と市 民 の協働による樹 木 管理のデ ジタル化(DX)を 目 指している
都市 高 速道路管理の効率化 https://www.mlit.go.jp/plateau/use-case/uc 2 3 - 22 / •
MMS測量で取得した 高 密度な点群データを 用 い、都市 高 速道 路の各部材を 自 動分類 ・ モデリングし、3D都市モデルを 自 動 生 成するシステムを開発 • 生 成した3D都市モデルをGISソフトやBIMソフトで活 用 し、都 市 高 速道路の管理 ・ 保全業務の効率化を 目 指している • 自 動分類機能の精度は77% ~ 82%で、 工 数を75% ~ 80%削減 できましたが、複雑な構造物の分類精度向上が課題として残っ た • アルゴリズムの 高 度化や3D都市モデルの詳細度向上を図り、低 コストかつ効率的な道路インフラ管理業務の実現を 目 指す
地下街データを活 用 したナビゲーションシステム https://www.mlit.go.jp/plateau/use-case/uc 2 3 - 05 / •
東京駅や品川 ・高 輪エリアで、地上と地下の情報を統合したデジタルツイ ン基盤を構築し、エリア全体をシームレスに繋ぐナビゲーションシステム を開発した • 既存の「東京ステーションナビ」アプリに、3D都市モデルを活 用 した三次 元ルートナビゲーション機能やARナビゲーション機能を追加し、ユーザー の利便性を向上させた • 平常時だけでなく、災害時を想定した情報配信システムを開発し、避難場 所や帰宅困難者受 入 施設の情報を提供することで、来街者の安全 ・ 安 心 を サポートしている • 駅と街を繋ぐ統合デジタルツインを活 用 し、エリアマネジメントのDX(デ ジタルトランスフォーメーション)を推進し、安全 ・ 安 心・ 快適なエリア の実現を 目 指している
オープンデータの整備 Webサイトから 自 由にダウンロード可能 https://www.mlit.go.jp/plateau/open-data/
データ変換ツールの必要性
「PLATEAU」のデータは地理空間情報としての3Dデータ https://plateauview.mlit.go.jp/ ただの3Dデータではなく、現実世界の情報を反映させた「地理空間情報」 建築年度 ・高 度 ・土 地利 用 分類など
地理空間情報とは https://www.geographyrealm.com/ 80 -percent-data-is-geographic/ 「地理空間情報」とは、地球上のありとあらゆるデータのこと 「位置情報」と「属性情報」をもつ “ 8 0 %
of data is geographic”(世にあるデータの80%は地理的なものである)
地理空間情報とは https://heritagemap.nabunken.go.jp/ 点 ・ 線 ・面 の位置情報と、遺跡名 ・ 年代などの属性情報
地理空間情報とは https://maps.gsi.go.jp/ 航空写真などの「画像」も地理空間情報
地理空間情報とは 地図投影法 早 見 表 https://www.wing fi eld.gr.jp/archives/ 1 09
39 「座標参照系」: 地球上の位置を数値の座標で表現するための基準 地球のような楕円体を平 面 (画 面・ 紙)に投影する場合、距離 ・面 積 ・角 度が必ず歪む
地理空間情報を利 用 した効果的なビジュアライゼーション例 全国100万件の交通事故マップ-みえない交差点 朝 日 新聞デジタル https://www.asahi.com/special/jiko-kosaten/ ウクライナ 戦時下の復興
キーウ近郊からの報告 読売新聞オンライン, 特別協 力 :渡邉英徳 ・ 東京 大 学 大 学院教授 https://www.yomiuri.co.jp/world/ukraine-reconstruction/ あなたの街の地価は? マップで 見 る上昇と下落 日 本経済新聞 https://vdata.nikkei.com/newsgraphics/land-value-map/
「 3 D」の「地理空間情報」 https://en.wikipedia.org/wiki/CityGML • 「都市機能」を記述するデータ形式である「CityGML」の採 用 • 都市の3Dモデルを保存するための交換形式 •
建物 ・ 道路 ・ 河川 ・ 橋梁 ・ 植 生・ 都市設備など
世界中の様々な都市でデータ整備がされている https:// 3 d.bk.tudelft.nl/opendata/opencities/
「都市機能を記述する」という 目 的から、ファイルサイズも巨 大 なものになる • 3 Dデータ記述した「XML」であるため、重たい(解凍後10GBを超えることがほとんど) • 変換して利
用 することが前提の中間形式である
仕様書は膨 大 PDFで1000ページを超える https://www.mlit.go.jp/plateau/ fi le/libraries/doc/plateau_doc_ 00 01 _ver 04
.pdf
仕様が難解
仕様が難解
仕様が難解
仕様が難解だが、 高 品質なモデルが作成できる https://plateauview.mlit.go.jp/
仕様が難解だが、 高 品質なモデルが作成できる https://plateauview.mlit.go.jp/
仕様が難解だが、 高 品質なモデルが作成できる https://plateauview.mlit.go.jp/
仕様が難解だが、 高 品質なモデルが作成できる https://plateauview.mlit.go.jp/
高 品質だが、利 用 までのハードルが 高 い →変換のためのOSS実装に 至 る •
「機械可読可能なXML形式」ではあるが、仕様が難解すぎる • ファイルサイズが膨 大 なため、そのままの利 用 はできない • 変換のためには 高 価な有償ソフトウェアが必要
「PLATEAU GIS Converter」の実装 https://github.com/MIERUNE/plateau-gis-converter
「 3 D Tiles」への変換 https://github.com/MIERUNE/plateau-gis-converter
変換可能フォーマット • GeoPackage • GeoJSON • Wavefront OBJ • glTF
• 3 D Tiles • Mapbox Vector Tiles (MVT) • CZML • KML • Shape fi le • Minecraft
変換可能フォーマット • GeoPackage → GISに特化したSQLite • GeoJSON → GISに特化したJSON •
Wavefront OBJ → 3 Dデータを格納するテキストデータ群 • glTF → 3 Dデータを格納するバイナリデータ群 • 3 D Tiles → glTF • Mapbox Vector Tiles (MVT) → タイル形状に分割されたpbf • CZML → 4 Dデータを格納するJSON • KML → Google Earthで利 用 するXML • Shape fi le → GISに特化したバイナリデータ群 • Minecraft → ボクセル
GeoPackage • SQLiteをGISに特化する形で拡張したもの • 単 一 のファイルで複数のレイヤー(道路と 建物、など)を管理できる • DBのため、パフォーマンスも良い
• オープンソースGIS界隈では実質の業界標 準となっている OGC® GeoPackage Encoding Standard https://www.geopackage.org/spec/
GeoJSON • JSON形式(テキスト形式)で地物を表現 • 点(Point) ・ 線(LineString) ・面 (Polygon)の他に複数形(Multi〇〇) が定義可能
• JavaScriptで取り扱いやすい • 人 間可読性が 高 い • テキスト形式のため、ファイルサイズが肥 大 化しやすい
Wavefront OBJ • 3 Dモデルの形状データを記録するファイ ル形式 • 頂点座標や 面 の情報などをテキスト形式で
記述する • 多くの3DCGソフトウェアで採 用 され、標 準的なデータ交換形式の1つ • マテリアル情報は別ファイル(.mtl)で定義 し、テクスチャマッピングなども可能
glTF • WebGLでの利 用 が想定された3Dデータ • JSON/.bin/Textureの3パートに分かれる • 3 D形状の他に、カメラ
・ ライトの位置、 アニメーションなどの3Dシーン全体を記 録する • JSON形式の「glTF」とバイナリ形式の 「glb」がある • 3 D Tilesは複数のglbからなるフォーマッ ト glTF https://www.khronos.org/gltf/
3 D Tiles • Webで 大 規模3Dデータを可視化するため のデータ • 「タイル」に分割されているため、個々の
ファイルサイズが 小 さくなる • カメラとの距離によってタイルが変わる • 点群データやメッシュデータなどの 高 速に 描画することができる • glTFがベースとなっている • Cesiumなどで可視化することができる 3 D Tiles https://github.com/CesiumGS/ 3 d-tiles
Mapbox Vector Tiles (MVT) • ベクタータイルとも呼ばれるタイル形式の Protocol Bu ff ers
• 主にWeb地図利 用 される • ベクトル形式(点、線、ポリゴン)のまま タイル分割されて配信される • 拡張 子 は.mvtや.pbfが利 用 される 国 土 地理院ベクトルタイル提供実験 https://maps.gsi.go.jp/development/vt_expt.html
CZML • Cesiumで利 用 可能な4D( 3 D × 時系列) フォーマット
• JSON形式で記述される • 線、点、3Dモデルなどを利 用 した時系列 アニメーションを作成することができる • CZMLからglTFを参照することも可能 Cesium Time Animation using CZML https://cesium.com/blog/ 2 0 1 8 / 03 / 21 /czml-time-animation/
KML • Google Earthなど使 用 されるXMLベース のファイル形式 • ポイント、ライン、ポリゴンや各要素に対 して、説明
文 や 色・大 きさなどのスタイル を設定可能 • 圧縮形式のKMLも存在する
Shape fi le • 1990年代から存在する、古いバイナリ形 式のフォーマット • 地 方 公共団体などで広く利
用 されている が、デメリットが多い • ファイルサイズに2GBの制限がある • フィールド名が最 長 10 文 字まで • フィールド数が最 大 255個まで • 最低3ファイル必要 • など
Minecraft(MCA) • .mcaファイルは、Minecraft(Java版) のワールドデータを保存するために使 用 さ れる独 自 のファイル形式 •
1つの.mcaファイルには、最 大 1024個の チャンク( 32 x 32 のチャンク領域)のデー タが含まれている • 5 12 m× 512 m(× 38 4 mの 高 さ)の領 域に相当
Rustの選定 ・ 課題と解決策
Rustである必然性があった 大 規模データの 高 速変換 XMLのような冗 長 なテキスト形式かつ3Dデータであるため、変換対象は10GBを超えることもある。 1都市丸ごと変換するユースケースは多々あり、これらを現実的な時間で変換するためには 高
速かつ安全に並列処理を 行 う必要があった。 クロスプラットフォームでのビルド 幅広いユーザーを取り込む必要があったため、WindowsとmacOSの2つのプラットフォームで動作させる必要があった。 Rustのように1つのコードベースから複数のプラットフォームにビルドすることが可能な点は、 非 常に魅 力 的に 見 えた。 GUIの構築 複雑なコマンドライン操作を避け、 一 般ユーザーでも直感的に利 用 できるGUIが求められていた。 Web屋が簡単に構築でき、Rustの恩恵を受けることができるTauriの存在は 大 きかった。
Tauri(GUI)の存在 • JavaScriptでフロントエンドを開発可能 • Rustでバックエンド開発を 行 う • Tauri 2
. 0 ではLinux、macOS、Windows、Android、iOS 用 のアプリを開発可能 https://tauri.app/
TypeScript or Python? 🙆GISに利 用 されるツール群が数多く揃っている 🙅低速 🙅良いGUI構築ツールがなかった 🙆全てTSでGUIが作れる(Electron) 🙅GIS処理
・ XMLのパースなどはフルスクラッチ
ただし、ハードルは 高 い • RustのGISクレートは存在しないが、3次元に対応したクレートは存在しない • ポリゴンの三 角 化 ・
専 用 の幾何データ表現を実装 • 標 高 を楕円体 高 に変換、地 心 座標系への変換、平 面 直 角 座標系の定義などを実装 • MIERUNE/ fl atgeom-rs ・ MIERUNE/earcut-rs ・ MIERUNE/japan-geoidなどを公開 • PLATEAU仕様に準拠したCityGMLをパースするクレートも存在しない • XMLスキーマを解析し、定義 • 手 続きマクロで導出 • 個別ファイル形式ごとの仕様を満たす、出 力 ドライバーを実装 • 特に、プロジェクトで最重要な3D Tilesの最新仕様を満たすクレートを実装 • テクスチャアトラス作成 ・ 解像度最適化のためのクレートも実装
アーキテクチャ パイプラインアーキテクチャを採 用 、各処理はチャネルを利 用 した並列化で処理
Rust × Geometry 3次元データを別の座標系に変換させるための機能は、すぐに実装されない(2次元データ専 用 ) https://github.com/georust/proj/issues/ 1 50
Rust × Geometry 3次元ポリゴン 用 の幾何データ表現を実装(MIERUNE/ fl atgeom-rs) • ジャグ配列を回避したフラットなデータ構造
• 効率的なシリアライズ ・ デシリアライズが可能 • 3次元座標に対応 https://github.com/MIERUNE/ fl atgeom-rs
Rust × Geometry 3次元での座標変換 • 3次元の地理座標(経緯度 ・ 標 高 )から地
心 座標 (XYZ)への変換 • 経緯度だけでなく、平 面 直 角 座標系とよばれる 日 本固有のXYZ座標も 入力 として受け付ける • 独 自 に計算処理を実装 https://www.gsi.go.jp/kanshi/faq.html# 3
• mapbox/earcutを参考にRustで再実装 • 入力 されたポリゴンを全て三 角 形に分割する • glTFに変換するためには、事前に分割が必要 https://github.com/MIERUNE/earcut-rs
Rust × Geometry 3 Dデータ変換のための三 角 形化(MIERUNE/earcut-rs)
XMLスキーマを解析し、構造体を定義 • CityGML ・ GML ・ i-UR のスキーマの上に、 PLATEAU独 自
の仕様が定められている • XMLスキーマから、構造体定義 用 の 文 字列を得 るプログラムも実装 • 20種類ある地物の型を個別にパスを定義 Rust × CityGML https://github.com/MIERUNE/plateau-gis-converter/tree/main/nusamai-plateau
quick-xmlによる 高 速なXMLパース • ファイルサイズが 大 きいため、DOMツリー全体 をメモリに載せるのは難しい • StAX(Streaming
API for XML)ベースのパー サーのためストリーミング可能で、メモリ効率 が良い • オーバーヘッドも少ないため、 高 速に処理可能 Rust × CityGML https://github.com/ta fi a/quick-xml
• 地物を地理的に「タイル分割」し、glTF拡張仕 様を満たしたglbファイルを 大 量に出 力 • 3 D Tiles仕様を満たしたtileset.jsonを出
力 • テクスチャなどを適切に貼り付ける • 大 量にファイル出 力 を 行 うため 至 る所で並列化 • テクスチャなしのデータであれば、1GB程度の CityGML to 3 D Tilesが1s未満で完了 Rust × 3 D Tiles 「 3 D Tiles」の出 力 (MIERUNE/cesiumtiles-rs) https://github.com/MIERUNE/cesiumtiles-rs
• {zoom}/{x}/{y}.glbのように、タイル分割された ファイルを出 力 する • 地物を分割→タイル順にソート→タイルを出 力 の 手
順を全てRayonとmpscで並列化 Rust × Parallel Processing タイル分割の並列化 https://maps.gsi.go.jp/development/siyou.html
• glTFのモデル定義がなされたクレートは存在す るが、属性情報を取り扱うことは出来ないた め、 自 作 • 具体的に以下の拡張機能に対応していない • EXT_mesh_features:
頂点に「地物ID」を振る • EXT_structural_metadata: 地物IDと属性情報 を紐付ける https://github.com/CesiumGS/glTF/tree/ 3 d-tiles-next/extensions/ 2 . 0 /Vendor/EXT_mesh_features Rust × 3 D Tiles https://github.com/CesiumGS/glTF/tree/ 3 d-tiles-next/extensions/ 2 . 0 /Vendor/EXT_structural_metadata glTFの拡張仕様に対応
• 元データは(基本的に)地物ごとにテクスチャ が作成されている上、重複箇所も多い • そのまま利 用 すると 大 量の画像ファイルがglTF に組み込まれ、ファイルサイズやドローコール
増加により描画パフォーマンスが低下する • テクスチャアトラスを作成することで、どちらも 低減を図れる https://github.com/MIERUNE/atlas-packer Rust × Texture 数千枚の画像を効率的に配置 テクスチャアトラス作成のためのモジュールを実装(MIERUNE/atlas-packer)
• ファイルサイズ ・ 処理時間のどちらも効率よく • タイルのズームレベルに合わせた低解像度化 • webp利 用 などによるファイルサイズ軽減
• アトラスの空きスペースを埋めるように配置 • 画像キャッシュなどによる読み書き速度軽減 https://github.com/MIERUNE/atlas-packer Rust × Texture タイルごとの更なる画像最適化
(おまけ)Rust × Minecraft • ポリゴンをボクセライズするアルゴリズムを実装 • Minecraftで利 用 可能な.mca形式に変換 •
CityGMLが保有する「地物型」(道路、植 生 な ど)に応じて利 用 するブロックを変更 https://github.com/MIERUNE/dda-voxelize-rs ddaアルゴリズムによるボクセライザーの実装(MIERUNE/dda-voxelize-rs)
(おまけ)Rust × PointCloud • LAS/LAZやCSVなどの 一 般的な点群データを取り 込み、3D Tilesに変換するツールを作成 •
ズームに応じた適切な点群の間引きや量 子 化によ る圧縮アルゴリズムなどを実装 • ロードされれば超 高 速で動作する https://github.com/MIERUNE/point-tiler 点群データの3D Tiles化(MIERUNE/point-tiler)
プロジェクトの今後の展望
より 手 軽に、便利に • 現状はシンプルというなの無 骨 なUI • 地図屋らしく、地図から選択できるようにしたい
よりファイルサイズを削減 • ジオメトリ • meshopt/Dracoなどによる圧縮 • テクスチャ • Basis Universalによる超圧縮
• KTX 2 の利 用 https://www.khronos.org/ktx/
Basis Universal • GPUが直接扱える圧縮テクスチャフォーマッ ト • 解凍する必要がないため、メモリ使 用 量が 大
幅に削減される • glTFファイルフォーマットでサポートされて いる • ファイルサイズとGPUメモリ使 用 量の 大 幅な 削減につながる • レンダリング速度が向上する https://www.khronos.org/ktx/
RustでのGIS × 3 D分野への貢献 • GeoRustへの貢献 • 特に、3次元座標 • その他、OSSの
自 作など https://georust.org/
継続して開発中! 興味があれば皆さんも是 非 !