「PLATEAU 最適化」の版間の差分

提供: ディーズガレージ wiki
移動先: 案内検索
(具合)
(具合)
54行目: 54行目:
 
| style="padding-left:10px;padding-right:10px;text-align:left;" | GLB M (MB)
 
| style="padding-left:10px;padding-right:10px;text-align:left;" | GLB M (MB)
 
| style="padding-left:10px;padding-right:10px;text-align:right;" | 11
 
| style="padding-left:10px;padding-right:10px;text-align:right;" | 11
| style="padding-left:10px;padding-right:10px;text-align:right;" | 7
+
| style="padding-left:10px;padding-right:10px;text-align:right;" | 8
 
| style="padding-left:10px;padding-right:10px;text-align:right;" | 12
 
| style="padding-left:10px;padding-right:10px;text-align:right;" | 12
 
| style="padding-left:10px;padding-right:10px;text-align:right;" | 11
 
| style="padding-left:10px;padding-right:10px;text-align:right;" | 11

2022年8月18日 (木) 20:22時点における版

PLATEAU LOD2データ最適化とビューアを作成してみます。

PLATEAUV[プラトービューア]

Qr PLATEAU.png

具合

PLATEAUV thumb.jpg

新宿 品川
53394525 53394526 53394535 53394536 ALL
FBX (MB) 337 99 190 178 116
texture (枚) 1,714 465 1,032 1,053 808
FBX L (MB) 36 24 42 37 28
GLB L (MB) 28 20 33 29 20
GLB M (MB) 11 8 12 11 9
GLB S (MB) 5 3 6 5 4
texture (枚) 6 4 6 5 4

L: ゲーミングPC向け
M: 一般PC向け
S: スマホ・タブレット向け
澁谷・池袋・大丸有地区: スマホ動作テスト目的で中央から15万ポリゴン範囲外を削除

最適化データ
https://dz.plala.jp/plateauv/data/
https://dz.plala.jp/plateauv/data/fbx/

最適化エリア

13100 indexmap op.jpg

最大解像度の確認

UV200.jpg

L: 8192x8192 丁度いい
LL: 16384x16384 必要ない
original: ボケてる
ワークフローにphotoshopシャープ処理必要

メモ
データ最適化

  • 設定済みデータで太陽光源の位置を推定しマイナスライトを当てると影を消せるかも
  • 設定済みデータでAOマップを作成し除算すると環境光の陰影を消せるかも
  • ガラス材質の反射マテリアル作成できないだろうか?
  • 夜景マテリアル作成できないだろうか?
  • DEM1枚に建つ建物平均数から逆算(現状200棟でUV1枚)で最適な解像度出せる
  • 植生分布の色分けDEM画像があれば樹木を自動生成できる
  • FBX階層と原点は変更しない方がよさげ バウンディングボックスは修正
  • LOD2フォルダのファイル数は80 データ構築範囲索引図のマス目は673

PLATEAUV[プラトービューア]

  • クリック操作でカメラターゲットを移動していいかも
  • カメラターゲットからの距離で表示ポリゴン数制限にすれば全国対応できるかも
  • 複数の設定済みバードビューのランダム再生の方が気持ちいいかも

類似コンテンツ
Multiverse XR Viewer - wiki
Googleとデータ作成の考え方が同じ
少しの調整でAR,VR,XRに流用可

変換

方向性

LOD2のFBX1個につきオブジェクトとオブジェクト名は変更せず、
テクスチャとマテリアルを数個にまとめる
「建物200棟のUVテクスチャ」を「1枚のUVテクスチャにベイク」を目安にしてみる
Lサイズを作成し、M, Sサイズが必要な場合はテクスチャサイズ変更で対応
Lサイズ: 8192x8192
Mサイズ: 4096x4096
Sサイズ: 2048x2048

見込み

Unityの頂点結合は恐ろしく最適化が見込める
テクスチャ1000枚が5枚にまとまるのでファイルアクセス200倍最適化見込み
更に最適化なら1枚毎にメッシュマージでdraw call 200倍最適化見込み
マルチサブオブジェクトならdraw call 最大1000倍最適化見込み
プロオプティマイザー頂点結合でさらに5倍最適化見込み
draco採用でさらに50%程度容量削減の見込み
glTF採用でPBRマテリアルを保持

以下とりあえず不採用

LLサイズ: 16384x16384
Draco Compressed Meshes with glTF and 3D Tiles – Cesium
gzip採用でさらに20%削減?
glTFエクスポート時のDraco圧縮.... – Shade3D Knowledge Base
メッシュマージでさらに90%削減?

環境

データセット 3D都市モデル(Project PLATEAU)東京都23区 - データセット
FBXをダウンロード
DCCツール unity, 3dsmax, photoshop, blender

配慮が必要

Unity 2020.1.13f1 FBX Exporter UVの欠落なし まれにあり
Unity 2018.3.6f1 FBX Exporter UVの欠落あり
読込みだけ
Unity 2020.1.13f1以上?使用
3dsmax 2017 FBX Import 一部がマルチタイル(3dsmax 2017新機能)に自動変換 都合悪い
3dsmax 2014 FBX Import 全てビットマップ
読込みだけ
3dsmax 2014使用
3dsmax 2017 ジオメトリ226個目のベイク処理でエラー
3dsmax 2014 ジオメトリ219個目のベイク処理でエラー
200個はOK
photoshop script ファイルをレイヤーとして読み込み
200枚は途中でエラー 処理能力の限界
50枚はOK

Mesh

Unity 2020.1.13f1

1.新規project
  install MeshOptimizerWindow.cs
  install FBX Exporter
2.fbxをインポート
  ダウンロードしたデータセットの\bldg\lod2フォルダ
  FBXはtexture付きなのでtextureとmaterialを設定
  Hierarchyに配置
3.PLATEAU Mesh Optimizer
  適用
4.Hierarchyに作成される変換データを選択
  Export to FBX
  同名になるので末尾に_newなど名前変更
  off: Compatible Naming

3dsmax 2014

5._newのfbx読込み
  MAX保存

3dsmax 20xx

6.MAX読込み
7.全て親階層に移動
  ダミーオブジェクト削除
8.バウンディングボックス修正
  ジオメトリ全て選択
  基点調整 > 基点にのみ影響 > 位置合わせ: 中心オブジェクト
9.全てのメッシュを選択
  最適化 > 自動エッジ
  まれにUVが壊れる 壊れるメッシュだけ最適化に入れない
  MAX保存

Texture

3dsmax 20xx

1.MAX読込み
2.ジオメトリ200個でグループ分けと名前変更
  5339****_bldg_001
  5339****_bldg_002
  5339****_bldg_003
  ...
3.グループ1つ選択
4.UVWアンラップ > チャネル 2(移動)
5.UVエディタ > マッピング > フラッテンマッピング
6.テクスチャレンダリング
  保存先 グループ同名フォルダ作成
  一般設定 > 出力 > パス > グループ同名フォルダ指定
  off: レンダリングフレームウインドウ
  マッピング座標 > 既存チャネルを使用 > チャネル 2
  出力 > 追加 > DiffuseMap
  ターゲットマップスロット 空を選択
  8192x8192
  画像形式の指定
    A."選択オブジェクト" > "個別設定" に変更
    B.ファイル名とタイプの設定が可能
       PNG アルファ付 保存
    C.ベイク処理するオブジェクト > "プリセットを保存"
    D."個別設定" > "選択オブジェクト" に戻す
    E.ベイク処理するオブジェクト > "プリセット選択"
  レンダリング
7.MAX保存

photoshop

8.50枚でフォルダ分け
  処理能力限界の為
9.8192x8192 新規作成
  ファイル > スクリプト > ファイルをレイヤーとして読み込み
  PNG アルファ付 保存
10.グループ分け全てのPNG配置
  ファイル > スクリプト > ファイルをレイヤーとして読み込み
  背景黒追加
  グループ名と同名JPG保存

作成グループで繰り返し

具合

53393585 bldg 6677 001.jpg 53393585 bldg 6677 002.jpg 53393585 bldg 6677 003.jpg

Material

3dsmax 20xx

1.グループ1つ選択
2.UVWアンラップ > チャネル 2 > 1(移動)
3.新規マテリアル
  グループと同名 同名ベイク画像設定
  グループに適用

グループ全てで繰り返し

4.全てグループ解除
5.全て頂点連結 0.0
6.クリーニング
   FBX書き出し
   FBX読込み
7.MAX保存

頂点

3dsmax 20xx
処理が重いのでジオメトリ200個程度でグループ分け
グループ1つを選択し、グループにプロオプティマイザー適用
全てのグループで設定完了後、全てのグループを解除

3dsmax pro optimizer.jpg

書き出し

3dsmax 20xx
全てのマテリアル修正
Babylon exporter01.jpg

MAX保存
Lサイズ8192x8192を作成しているのでM, Sサイズが必要な場合フォルダで管理
LサイズフォルダをコピーしてM, Sサイズをリサイズ アセットトラッキングで切り替え

FBX書き出し

GLB書き出し
GitHub - BabylonJS/Exporters

Output format: glb
Model path: *****
✓ Export Materials
✓ Export Textures
   Texture quality: 50
✓ Use Draco compression
✓ Write Textures
✓ Overwrite Textures

GLB改修

Blender
glb読込み > texture付きfbxで書き出し

Blender fbx export.jpg

DEM

参考 PLATEAUのDEMファイルに空中写真のテクスチャを貼りたい - Qiita

Ubuntu
デスクトップにtmpディレクトリ作成
テキスト作成 > 貼り付け

for x in {232787..232807}; do
  for y in {103210..103226}; do
    url=https://cyberjapandata.gsi.go.jp/xyz/seamlessphoto/18/${x}/${y}.jpg
    curl -o ${y}-${x}.jpg ${url}
  done
done
montage *.jpg -tile 2x2 -geometry 512x512+0+0 combined.jpg

名前変更 > merge.sh

$ cd /home/xxx/デスクトップ/tmp
$ bash merge.sh

更新履歴

  • 2022.08.16 見直し 澁谷、品川、大丸有地区 追加
  • 2021.05.21 見直し
  • 2021.04.04 公開