将基于对象存储或内存格式的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 | 导入选项:
|
描述
将基于对象存储或内存格式的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