「PLATEAU 最適化」の版間の差分
(→具合) |
|||
5行目: | 5行目: | ||
[https://dz.plala.jp/plateau/viewer/ Viewer]<br /> | [https://dz.plala.jp/plateau/viewer/ Viewer]<br /> | ||
− | [https://dz.plala.jp/plateau/viewer/index_lod.html Viewer | + | [https://dz.plala.jp/plateau/viewer/index_lod.html Viewer LOD] |
[[ファイル:qr_PLATEAU.png|240px|border]] | [[ファイル:qr_PLATEAU.png|240px|border]] |
2021年7月2日 (金) 11:41時点における版
Project PLATEAU データセットを最適化、軽量化してみます。
具合
GLB L: 8192x8192
GLB M: 4096x4096
GLB S: 2048x2048
(*): LOD付き
新宿 | 池袋 | |||||
---|---|---|---|---|---|---|
53394525 | 53394526 | 53394535 | 53394536 | ALL | 53394577 | |
FBX (MB) | 1,830 | 1,180 | 2,190 | 1,860 | 7,060 | 432 |
FBX テクスチャ (枚) | 1,487 | 453 | 1,012 | 1,042 | 3,994 | 1,866 |
GLB L Draco (MB) | 30 | 21 | 34 | 29 | 115 | 42 |
GLB M Draco (MB) | 11 | 8 | 13 | 11 | 45 | 18 |
GLB S Draco (MB) | 4 (6) | 3 | 5 | 5 | 21 | 9 |
triangles 最大 | 115,582 | 67,094 | 126,598 | 130,902 | 440,176 | 180,153 |
geometries 最大 | 798 | 492 | 1,131 | 1,054 | 3,427 | 1,866 |
textures 最大 | 6 | 4 | 6 | 5 | 21 | 10 |
draw calls 最大 | 786 | 480 | 1,119 | 1,042 | 3,427 | 1,866 |
メモ
距離LOD有効分岐処理ほしい 15万程度以下無効
距離LODでなく見かけの大きさでLOD or アスペクト比でLOD距離変更?
ジオメトリ名で操作する場合lodグループは信用できない mainとlod紐付けしたい > 名前の一括変更スクリプトは?
地形
GitHub - domlysz/BlenderGIS
3D Tiles
GitHub - NASA-AMMOS/3DTilesRendererJS
CityGML
https://ascii.jp/elem/000/004/044/4044198/
XR
How to create VR content - three.js docs
WebXR ポリフィル - MDN - Mozilla
AI
スペースデータ
SameSite Cookie 警告出てる
環境
データセット | 3D都市モデル 東京都23区(FBX 2020年度) |
DCCツール | unity, 3dsmax, photoshop |
配慮が必要
Unity 2020.1.13f1 FBX Exporter UVの欠落なしまれにあり Unity 2018.3.6f1 FBX Exporter UVの欠落あり
3dsmax 2017 FBX Import 一部がマルチタイル(3dsmax 2017新機能)は都合悪い 3dsmax 2014 FBX Import 全てビットマップ
3dsmax 2017 ジオメトリ226個目のベイク処理でエラー 3dsmax 2014 ジオメトリ219個目のベイク処理でエラー
photoshop script ファイルをレイヤーとして読み込み 200枚は途中でエラー 50枚程度はOK メモリ容量の問題?
変換
FBX1個につきオブジェクト数とオブジェクト名は変更せず、
メッシュの頂点連結とテクスチャとマテリアルを数個にまとめる
建物200棟を1枚にベイクを目安にしてみる
メッシュ
Unity 2020.1.13f1
1.新規project MeshOptimizerWindow.cs PlateauLod2FbxImporterWindow.cs FBX Exporter 2.fbxとfbmディレクトリを同時にドラッグアンドドロップでインポート Hierarchyに配置 3.PLATEAU Mesh Optimizer 4.Hierarchyに作成される変換データ Export to FBX 同名になるので末尾に_newなど名前変更 off: Compatible Naming
3dsmax 2014
5._newのfbx読込み アセットトラッキング修正 MAX保存
3dsmax 20xx
6.MAX読込み 目立つUVの欠落修正 7.バウンディングボックス修正 ジオメトリ全て選択 基点調整 > 基点にのみ影響 > 位置合わせ: 中心オブジェクト MAX保存
テクスチャ
3dsmax 20xx
1.MAX読込み 2.ジオメトリ200個でグループ分け 533945**_bldg_6677_001 533945**_bldg_6677_002 533945**_bldg_6677_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.ファイル > スクリプト > ファイルをレイヤーとして読み込み 表示レイヤを結合 全て合成 背景レイヤ黒追加 FBXと同名保存
作成グループで繰り返し
マテリアル
3dsmax 20xx
1.グループ1つ選択 2.UVWアンラップ > チャネル 2 > 1(移動) 3.新規マテリアル グループと同名 ベイク画像設定 4.頂点連結 0.0cm 5.グループ解除 6.MAX保存 7.クリーニング FBX書き出し FBX読込み
GLB
3dsmax 20xx
GitHub - BabylonJS/Exporters
3DS MAX Plugin | Babylon.js Documentation
Draco compression | Babylon.js Documentation
Node.js
gltf-pipeline
マテリアル修正
スペキュラカラーとスペキュラレベルは、3dsMaxで2つの属性に分割され、Babylonでマージされます。 グローバル値の場合、鏡面反射色とレベルが乗算されて、Babylonで結果の鏡面反射色が得られます。
Babylon Exporter
Output format: glb Model path: ***** ✓ Export Materials ✓ Export Textures Texture quality: 50 ✓ Use Draco compression ✓ Write Textures ✓ Overwrite Textures
LOD
WebGLビューワ向けに最適化、軽量化してみます。
親がダミーの子ジオメトリはグローバル座標計算コストが高い
モデル(main)にリダクションモデル(lod)を追加 テクスチャとマテリアルは共有 距離に応じてmainとlodを表示切替え
1.全てのジオメトリを親に変更 ダミー削除 2.全てのジオメトリを複製しグループmainとlod作成 3.lodの処理が重いのでlod下層で100個にグループ分け 4.lod下層グループ1つ選択 5.プロオプティマイザー ✓マテリアル境界を保持 ✓テクスチャを保持 □UV境界を保持 > 計算 > 頂点34% 新宿ALLの場合 15万÷44万 6.lod下層グループで繰り返し 7.max保存 8.lod下層グループ解除 mainとlodに 9.GLB書き出し
データ
533945_shinjuku_fbx.zip
533945_shinjuku_glb_draco.zip
更新履歴
- 2021.06.16 バウンディングボックス修正
- 2021.06.05 Dracoに変更
- 2021.05.21 見直し
- 2021.04.04 公開