このトピックでは、GanosBase ユーティリティの詳細と使用方法について説明します。
はじめに
概要
GanosBase ユーティリティは、PolarDB for PostgreSQL の空間時系列拡張機能であり、OBJ、GLB、IFC、OSGB などの一般的な形式の 3D ファイルのインポート、エクスポート、検証に使用できます。 GanosBase ユーティリティが提供する関数を使用して、3D モデルをデータベースにインポートして処理できます。
GanosBase ユーティリティは、他の GanosBase 拡張機能とシームレスに統合されます。 GanosBase ユーティリティを使用して 3D モデルをデータベースにインポートした後、モデリング、レンダリング、シミュレーションなどのさらなる操作を実行して、ワークフローを合理化し、開発効率を高めることができます。次の図は、他の GanosBase 拡張機能と GanosBase ユーティリティを併用した場合の効果を示しています。
IFC ファイルのインポートと表示:

OSGB ファイルのインポートと表示:

OSGB データに対する視野 (FOV) 解析の実行:

シナリオ
3D ファイルのインポートとエクスポート
GanosBase ユーティリティを使用すると、OBJ、GLB、IFC、OSGB など、一般的な形式の 3D ファイルをインポート、エクスポート、検証できます。これにより、3D データを柔軟に処理できます。
3D データの表示と管理
GanosBase ユーティリティは、迅速なデータのインポートとエクスポートのためのツールを提供することにより、3D モデルの管理と表示を容易にします。これにより、ワークフローが大幅に合理化され、効率が向上します。
3D データの検証
GanosBase ユーティリティを使用すると、3D ファイルの形式、構造、整合性をチェックして、その有効性と整合性を確保できます。
コンポーネント
GanosBase ユーティリティは、GanosBase Sfmesh や GanosBase Scene などの他の GanosBase 拡張機能で使用するデータのインポート、エクスポート、検証を行うための関数を備えています。
データのインポート
IFC
Industry Foundation Classes (IFC) は、建築およびインフラストラクチャ情報の記述と交換に使用されるオープンな業界標準形式です。これは、Building Information Modeling (BIM) プロジェクトにおけるコラボレーションと相互運用性を促進するために、国際標準化機構 (ISO) によって開発されました。
IFC 形式は、建設プロジェクトのコンポーネント、プロパティ、および関係を表すために使用されるオブジェクト指向のファイル形式です。形状、材質、プロパティ、空間的関係を記述する情報だけでなく、施設の機能、建設プロセス、メンテナンス手順に関する情報も保存します。
OBJ
OBJ ファイル形式 (Wavefront OBJ とも呼ばれます) は、静的 3D モデルの形状とマテリアルに関する情報を保存する、広く使用されているファイル形式です。
各 OBJ ファイルには、MTL ファイルが付属しています。 OBJ ファイルには、モデルの頂点、法線、テクスチャ座標、面に関する情報が保持されます。この情報は、v (頂点)、vn (法線)、vt (テクスチャ座標) などのキーワードを使用して記述され、各面は頂点インデックスを使用して定義されます。頂点インデックスは、頂点がどのように接続されてポリゴンを形成するかを記述できます。付属の MTL ファイルには、色、テクスチャ、ライティングなど、3D モデルのマテリアル プロパティに関する情報が含まれています。
GLB
gITF Binary (GLB) は、3D モデルのバイナリ ファイル形式です。モデルの形状、マテリアル、テクスチャ、アニメーションに関する情報が含まれています。
GLB はデータをバイナリ形式で保存するため、ファイル サイズが小さく、読み込み時間が短縮されます。そのため、GLB は、仮想現実 (VR)、拡張現実 (AR)、WebGL などのリアルタイム アプリケーションで 3D モデルを送信およびレンダリングするのに理想的な形式です。
OSGB
OpenSceneGraph Binary (OSGB) 形式は、3D シーンの保存に使用されます。これは OpenSceneGraph (OSG) フレームワークの一部であり、テクスチャやマテリアル プロパティなど、3D モデルに関する情報を保持します。
OSGB はデータをバイナリ形式で保存するため、OBJ や FBX などの形式と比較して、ファイル サイズが小さく、読み込みが高速になります。これらの利点により、OSGB は巨大なシーンを扱うのに理想的な形式となっています。
データのエクスポート
3D Tiles
3D Tiles は、都市モデル、地形、点群などの大量の 3D 地理空間データを Web アプリケーションに効率的にストリーミングするために設計された、オープンな標準ベースの形式です。
3D Tiles の階層構造は、大量の地理空間データの迅速なレンダリングと可視化を必要とするユースケースに最適です。タイルは、地理空間的位置と詳細レベル (LOD) に基づいて編成されます。ユーザーがズームインすると、システムは低い LOD タイルから高い LOD タイルにシームレスに移行し、より詳細な情報を提供します。この動的なアプローチにより、読み込み時間が最小限に抑えられ、ユーザーは膨大なデータセットを効率的に表示し、操作できます。
データの検証
OSGB
OSGB ファイルはデータをバイナリ形式で保存するため、検証が困難です。 GanosBase ユーティリティは、OSGB ファイル データの有効性と整合性を検証するための関数を備えています。
その他のコンポーネント
詳細については、「ユーティリティ SQL リファレンス」をご参照ください。
クイックスタート
概要
このセクションでは、拡張機能のインストール方法、データのインポート、エクスポート、検証方法など、GanosBase ユーティリティの使用方法について説明します。
基本的な使用方法
拡張機能のインストール:
CREATE EXTENSION IF NOT EXISTS ganos_utility CASCADE;説明潜在的な権限の問題を回避するために、拡張機能を public スキーマにインストールします。
CREATE EXTENSION IF NOT EXISTS ganos_utility with schema public CASCADE;上記のステートメントを実行したときに、拡張機能がサポートされていないことを示すエラーが発生した場合は、お問い合わせください。
データのインポート:
-- gITF ファイルを gltf_table テーブルにインポートし、ID を 1 に設定します。 SELECT ST_ImportGLTF('gltf_table', 'OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/bim_wall.gltf', '1'); st_importgltf --------------- t (1 row) -- IFC ファイルをインポートし、ifc_ifc_elem テーブルを生成します。 SELECT ST_ImportIFC('ifc', 'OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/CE1314-ACM-C3_LA-ST07_WB-AR-M3_N.ifc'::cstring); st_importifc -------------- t (1 row) -- OBJ ファイルを obj_table テーブルにインポートします。 SELECT ST_ImportOBJ('obj_table', 'OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/obj/j3sn.obj', '1'); st_importobj -------------- t (1 row) -- OSGB ファイルを osgb テーブルにインポートします。 SELECT ST_ImportOSGB('osgb', 'OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/osgb'); st_importosgb --------------- t (1 row)説明IPv6 経由で OSS にアクセスする必要があります。詳細については、「オブジェクト ストレージ サービス パス」をご参照ください。
<ak>と<ak_secret>を実際のアクセスキーとアクセスシークレットに置き換えます。
データのエクスポート:
-- IFC データを 3D Tiles 形式に変換し、出力を tile テーブルに保存します。 SELECT ST_As3DTiles(element, 'tile') from ifc_ifc_elem where family = 'IfcProject'; st_as3dtiles -------------- t (1 row)データの検証:
-- OSGB ファイル内のデータを検証します。 SELECT * FROM ST_ValidateOSGB('OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/osgb'); valid | reason -------+-------- t | (1 row)(オプション) 拡張機能の削除:
DROP EXTENSION ganos_utility CASCADE;
高度な使用方法
GanosBase ユーティリティは、構成をカスタマイズできる高度なパラメータを提供します。
IFC ファイルのインポート
-- 指定されたプロジェクトをインポートします。 SELECT ST_ImportIFC('Building', 'OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/path_to_ifc'::cstring, '{"project":"building_1"}'); -- 並列インポートを無効にします。 SELECT ST_ImportIFC('local', 'OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/CE1314-ACM-C3_LA-ST07_WB-AR-M3_N.ifc'::cstring, '{"disable_multi_thread":true}');OBJ ファイルのインポート
-- 自動三角形分割を無効にします。 SELECT ST_ImportObj('test_obj', 'OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/path_to_obj.obj', '{"force_triangulate": false}');gLTF/GLB ファイルのインポート
-- データのインポート中に、y 軸と z 軸を反転します。 SELECT ST_ImportGLTF('test_gltf', 'OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/path_to_gltf.glb', 'my_glb', '{"flip_y_z": true}');OSGB ファイルのインポート
-- 並列タスクの数を指定します。 SELECT ST_ImportOSGB('test_osgb', 'OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/path_to_oblique_project/', '{"parallel": 4}'); -- ゲートウェイ モードをオンにします。このモードでは、データベースはパスを保存し、データは保存しません。 SELECT ST_ImportOSGB('test_osgb', 'OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/path_to_oblique_project/', '{"gateway": true}');OSGB ファイル内のデータの検証:
-- 並列実行で検証を実行します。 SELECT ST_ValidateOSGB('OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/path_to_oblique_project/', '{"parallel": 4}');3D Tile ファイルのエクスポート
-- 並列実行でエクスポートを実行します。 SELECT ST_As3DTiles(element, 'test', '{"parallel": 4}') from ifc_ifc_elem where family = 'IfcProject'; -- 最大タイル サイズを KB 単位で指定します。これを超えるジオメトリ オブジェクトはセグメント化されます。 SELECT ST_As3DTiles(element, 'test', '{"size_threshold": 1024}') from ifc_ifc_elem where family = 'IfcProject'; -- 3D Tiles ファイルの座標系をエクスポートします。 SELECT ST_As3DTiles(element, 'test', '{"srid": 4326}') from ifc_ifc_elem where family = 'IfcProject'; -- 3D タイル空間の編成方法を設定します。有効な値: oct (八分木)、quad (四分木)、bsp (BSP 木)。 SELECT ST_As3DTiles(element, 'test', '{"method": "oct"}') from ifc_ifc_elem where family = 'IfcProject';
SQL リファレンス
詳細については、「ユーティリティ SQL リファレンス」をご参照ください。