全部產品
Search
文件中心

:ST_ImportGLTF

更新時間:Oct 16, 2024

將glTF檔案匯入到資料庫中。

文法

  • 文法一:

    boolean ST_ImportGLTF(text table_name, text url,  text id, text options default '{}');
  • 文法二:

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

參數

參數名稱

描述

table_name

glTF表名及其拆分表的首碼。

url

如果glTF檔案儲存體在OSS等Object Storage Service服務中,使用此參數。更多資訊,請參見Object Storage Service服務路徑

id

glTF的唯一標識。

content

如果通過二進位方式提供glTF檔案,使用此參數,與參數url任選其一即可。

options

匯入選項:

  • schema

  • flip_y_z

  • split_meshgeom

  • split_texture

  • sfmesh_column

  • gltf_id_column

匯入選項options說明:

參數名

類型

說明

預設值

範例

schema

字串

目標表schema。

public

postgres

flip_y_z

布爾

是否交換Y軸和Z軸座標值。

說明

glTF資料預設Y軸向上,而GanosBase預設Z軸向上。若指定交換Y軸和Z軸座標值:

  • 開啟後將視Y值為Z值,Z值為Y值。

  • 該操作適用於原生Y軸向上的glTF資料。

true

false

split_meshgeom

布爾

是否拆分幾何部分。

說明

若指定拆分幾何:

  • 若存在幾何資料,會產生幾何表[主表名]_meshgeom,主表中的紋理幾何部分將會通過引用指向參考資料表中的對應資料,方便拆分具有大量複雜幾何的資料,避免單條記錄過大。

  • 若需要將多個模型匯入同一張表內,需要保證傳入的ID不同,否則會發生幾何重複。

  • 拆分幾何表和拆分紋理表可同時存在,互不干擾。

false

true

split_texture

布爾

是否拆分紋理部分。

說明

若指定拆分紋理:

  • 若存在內嵌的圖片紋理,會產生紋理表[主表名]_texture,主表中的紋理部分將會通過引用指向參考資料表中的對應資料,方便拆分如傾斜攝影等具有大量紋理的資料,避免單條記錄過大。

  • 若指定了拆分紋理,但紋理為URL形式,則不會變為參考模式。

  • 若指定了拆分紋理,但資料不含任何內嵌圖片紋理,則不會產生紋理表。

  • 若需要將多個模型匯入同一張表內,需要保證傳入的ID不同,否則會發生紋理重複。

  • 拆分幾何表和拆分紋理表可同時存在,互不干擾。

false

true

sfmesh_column

字串

主表資料欄位。

gltf_data

my_data

gltf_id_column

字串

主表資料ID欄位。

gltf_id

my_id

描述

將glTF檔案以SFMesh格式匯入到資料庫中。

說明
  • 支援將儲存在OSS等Object Storage Service服務中的glTF檔案匯入資料庫。

  • 支援將glTF檔案的位元據讀取到記憶體,然後匯入資料庫。

資料限制說明:

  • 僅支援SFMesh支援的資料,將忽視相機/骨架/動畫等資料。

  • 僅支援三角網資料。

  • 不支援DRACO壓縮後的資料。

  • 僅支援完全內嵌模式,不支援外掛二進位或外掛紋理,上述情況將視為資料錯誤而導致失敗。

匯入成功後,將在資料庫中產生三張表:

glTF主表

通過指定主表資料欄位和主表主鍵欄位,您可以將資料匯入自己的業務表中,該表需要支援僅插入這兩個欄位的操作(即必須欄位需要有自動填滿值)。

主表結構如下:

欄位

類型

說明

備忘

id

serial

唯一ID

主鍵

[gltf_id_column]

text

資料ID

欄位名可指定。

預設為gltf_id,值為使用者傳入。

[sfmesh_column]

sfmesh

資料

欄位名可指定。

預設為gltf_data。

glTF紋理表

紋理表結構如下:

欄位

類型

說明

備忘

id

serial

唯一ID

主鍵。

gltf_id

text

資料ID

欄位名固定為gltf_id,值為使用者傳入。

texture_id

text

紋理ID

值為該紋理在原始glTF檔案中的index。

texture

texture

資料

-

glTF幾何表

幾何表結構如下:

欄位

類型

說明

備忘

id

serial

唯一ID

主鍵。

gltf_id

text

資料ID

欄位名固定為gltf_id,值為使用者傳入。

meshgeom_id

text

幾何ID

值為該Mesh在原始glTF檔案中的index。

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