ST_ImportObj

将基于对象存储或内存格式的Obj文件导入到数据库中。

语法

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

返回值

返回值

描述

true

导入成功。

false

导入失败。

参数

参数名称

描述

table_name

obj表名及其拆分表前缀。

url

基于对象存储服务的路径。

id

obj唯一标识,目前使用字符串形式的ID定义。

content

以二进制流方式提供的obj文件。

options

导入选项:

  • schema

  • search_path

  • ignore_missing

  • force_triangulate

  • metallic_roughness

  • obj_data_column

  • obj_id_column

描述

将基于对象存储或内存格式的Obj文件导入到数据库中。

  • 数据限制说明:

    仅支持diffusetexture类型的纹理,其他类型的纹理文件将被忽略。

  • 导入选项说明:

    参数名

    类型

    说明

    默认值

    示例

    schema

    字符串

    目标表schema。

    public

    postgres

    search_path

    字符串

    手动指定材质/纹理的搜索路径。

    若通过URL指定OBJ文件,则为OBJ对象的父路径,否则为空。

    OSS://foo/bar

    ignore_missing

    布尔

    遇到获取不到的材质或纹理文件是否忽略错误。

    true

    false

    force_triangulate

    布尔

    强制三角化非三角面。

    true

    false

    metallic_roughness

    布尔

    默认解析为metallic_roughness类型材质。设置为false时,则解析为 specular_glossiness类型材质。

    true

    false

    obj_data_column

    字符串

    主表数据字段。

    obj_data

    my_data

    obj_id_column

    字符串

    主表数据ID字段。

    obj_id

    my_id

    主表结构如下:

    字段

    类型

    说明

    备注

    id

    serial

    唯一ID。

    主键。

    [obj_id_column]

    text

    数据ID。

    字段名可指定。默认为obj_id,值为用户传入。

    [obj_data_column]

    sfmesh

    数据。

    字段名可指定。默认为obj_data。

    部件表结构如下:

    字段

    类型

    说明

    备注

    id

    serial

    唯一ID。

    主键。

    obj_id

    text

    数据ID。

    字段名固定为obj_id,值为用户传入。

    component_id

    text

    部件ID。

    值为该部件在原始OBJ中的序号。

    name

    text

    部件名称。

    值为OBJ文件的group name或object name。如有多个,将取第一个。若不存在,则为Mesh_[对象序号]。

    tags

    jsonb

    tag。

    值为OBJ文件的tags。

    component

    sfmesh

    部件。

    -

    纹理表结构如下:

    字段

    类型

    说明

    备注

    id

    serial

    唯一ID。

    主键。

    obj_id

    text

    数据ID。

    字段名固定为obj_id,值为用户传入。

    texture_id

    text

    纹理ID。

    值为该纹理在原始obj文件中的序号。

    name

    text

    纹理名称。

    值为该纹理的文件名。

    texture

    texture

    纹理。

    -

示例

SELECT ST_ImportObj('test_obj', 'OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/path_to_obj.obj');

---------
t

关闭强制三角化导入:

SELECT ST_ImportObj('test_obj', 'OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/path_to_obj.obj', '{"force_triangulate": false}');

---------
t