すべてのプロダクト
Search
ドキュメントセンター

PolarDB:ST_ImportGLTF

最終更新日:Feb 25, 2025

このトピックでは、ST_ImportGLTF関数について説明します。 この関数は、GL伝送フォーマット (glTF) ファイルをデータベースにインポートする。

構文

  • 構文1

    boolean ST_ImportGLTF(text table_name, text url,  text id, text options default '{}');
  • 構文2

    boolean ST_ImportGLTF(text table_name, text url,  text id, text options default '{}');

Parameters

パラメーター

説明

table_name

glTFテーブルの名前とglTFテーブルのシャードテーブルのプレフィックス。

url

gIFCファイルがobject storage service (OSS) バケットなどのオブジェクトストレージサービスに保存されている場合は、このパラメーターを使用します。 詳細については、「オブジェクトストレージパス」をご参照ください。

id

gIFCファイルのID。

コンテンツ

バイナリ表現を使用してgIFCファイルをインポートする場合は、このパラメーターを使用します。 または、urlパラメーターを使用することもできます。

オプション

インポートのオプション。 有効な値:

  • schema

  • flip_y_z

  • split_meshgeom

  • split_texture

  • sfmesh_column

  • gltf_id_column

次の表に、optionsパラメーターのフィールドを示します。

項目

タイプ

説明

デフォルト値

値の例

schema

String

必要なテーブルのスキーマ。

パブリック

postgres

flip_y_z

Boolean

y軸とz軸で値を交換するかどうかを指定します。

説明

デフォルトでは、glTFのy軸は垂直ですが、z軸は垂直で ガノスベース このパラメーターをtrueに設定した場合、次の点に注意してください。

  • y軸とz軸の値は入れ替わっている。

  • glTFファイルが保存され、y軸が垂直である場合にのみ、y軸とz軸で値を交換できます。

true

false

split_meshgeom

Boolean

ジオメトリデータを分割するかどうかを指定します。

説明

ジオメトリデータを分割する場合は、次の項目に注意してください。

  • ジオメトリデータが存在する場合、[プライマリテーブル名]_meshgeomという名前のジオメトリテーブルが生成されます。 参照が完了した後、プライマリテーブルのテクスチャジオメトリは、参照先テーブルの対応するデータを指します。 これは、多数の複雑な形状を有するデータレコードの分割を容易にし、単一のレコードの過剰なサイズを防止する。

  • 複数のモデルを1つのテーブルにインポートする場合は、インポートしたモデルのIDが異なることを確認してください。 重複IDが存在する場合、重複ジオメトリが生成されます。

  • ジオメトリテーブルとテクスチャテーブルは、互いに干渉することなく同時に分割できます。

false

true

split_texture

Boolean

テクスチャデータを分割するかどうかを指定します。

説明

テクスチャデータを分割する场合は, 次の项目に注意してください。

  • 埋め込み画像テクスチャが存在する場合、[プライマリテーブル名]_textureという名前のテクスチャテーブルが生成されます。 一次テーブル内のテクスチャデータは、参照が完了した後、参照されたテーブル内の対応するデータを指す。 これにより、多数のテクスチャを有するデータレコードの分割が容易になり、1つのレコードのサイズが過剰になることが防止される。 例えば、斜めの写真を効率的に分割することができる。

  • テクスチャデータを分割したいが、テクスチャデータがURL形式である場合、参照モードは使用できません。

  • テクスチャデータを分割したいが、データに埋め込み画像テクスチャが含まれていない場合は、テクスチャテーブルは生成されません。

  • 複数のモデルを1つのテーブルにインポートする場合は、インポートしたモデルのIDが異なることを確認してください。 重複IDが存在する場合、重複ジオメトリが生成されます。

  • ジオメトリテーブルとテクスチャテーブルは、互いに干渉することなく同時に分割できます。

false

true

sfmesh_column

String

プライマリテーブルのデータフィールド。

gltf_data

my_data

gltf_id_column

String

プライマリテーブルのデータIDフィールド。

gltf_id

my_id

説明

この関数は、sfmesh型のglTFファイルをデータベースにインポートします。

説明
  • この関数を呼び出して、OSSバケットなどのオブジェクトストレージサービスに保存されているglTFファイルをデータベースにインポートできます。

  • この関数を呼び出して、glTFファイルのバイナリデータをメモリに読み込み、そのデータをデータベースにインポートできます。

次のリストは、データの制限を示しています。

  • sfmeshタイプのデータのみがサポートされています。 カメラによってキャプチャされ、スケルトンとアニメーションから取得されたデータは無視されます。

  • 三角測量法を使用して取得されたデータのみがサポートされます。

  • Dracoで圧縮されたデータはサポートされていません。

  • 完全埋め込みモードのみがサポートされています。 バイナリプラグインまたはテクスチャプラグインはサポートされていません。 前述の制限が満たされない場合、失敗が発生します。

インポートが成功すると、データベースに次のテーブルが生成されます。

glTFプライマリテーブル

プライマリテーブルのデータフィールドとプライマリキーフィールドを指定することで、ビジネステーブルにデータをインポートできます。 データフィールドとプライマリキーフィールドのみをプライマリテーブルに挿入でき、プライマリテーブルのその他の必須フィールドが自動的に設定されることを確認します。

次の表に、プライマリテーブルのスキーマを示します。

項目

タイプ

説明

補足

id

シリアル

一意のID。

主キー

[gltf_id_column]

text

データID。

このフィールドを指定できます。

デフォルト値: gltf_id。

[sfmesh_column]

sfmesh

データ。

このフィールドを指定できます。

デフォルト値: gltf_data。

glTFテクスチャテーブル

次の表に、テクスチャテーブルのスキーマを示します。

項目

タイプ

説明

補足

id

シリアル

一意のID。

テーブルの主キー。

gltf_id

text

データID。

このフィールドはgltf_idに設定する必要があります。

texture_id

text

テクスチャのID。

このフィールドの値は、元のglTFファイル内のテクスチャのインデックスである。

テクスチャ

テクスチャ

データ。

-

glTFジオメトリテーブル

次の表に、ジオメトリテーブルのスキーマを示します。

項目

タイプ

説明

補足

id

シリアル

一意のID。

テーブルの主キー。

gltf_id

text

データID。

このフィールドはgltf_idに設定する必要があります。

meshgeom_id

text

ジオメトリID。

このフィールドの値は、元のglTFファイル内のメッシュのインデックスである。

meshgeom

meshgeom

データ。

-

SELECT ST_ImportGLTF('test_gltf', 'OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/path_to_gltf.gltf', 'my_gltf');

---------
t