根据传入的GLB构建Scene对象。
语法
scene ST_SceneFromGlb(bytea glb,
integer srid default 0,
integer lod default 0);
scene ST_SceneFromGlb(bytea glb,
integer srid,
integer lod,
float8[] affine);
参数
参数名称 | 描述 |
---|---|
glb | 基于二进制表示的glb。 |
srid | 空间参考ID,默认值为0。 |
lod | LOD层级,默认值为0。 |
affine | 仿射变换数组,参数数量必须是12或16。如果是16个参数,最后4个参数会被忽略。 |
描述
根据传入的GLB构建Scene对象。
对于仿射变换矩阵Affine:
/ p[1] p[2] p[3] p[4] \
| p[5] p[6] p[7] p[8] |
\ p[9] p[10] p[11] p[12] /
每一个坐标点执行以下变换操作:
x' = p[1]*x + p[2]*y + p[3]*z + p[4]
y' = p[5]*x + p[6]*y + p[7]*z + p[8]
z' = p[9]*x + p[10]*y + p[11]*z + p[12]
示例
- 示例一:
SELECT ST_AsText(ST_sceneFromGLB(\x676c544602...)); -------------- {"type" : "gltf", "content" : {"accessors":...}}
- 示例二:
SELECT ST_AsText(ST_sceneFromGLB(\x676c54460..., 4326)); -------------- {"type" : "gltf", "srid" : 4326, "content" : {"accessors":...}}
- 示例三:
SELECT ST_AsText(ST_sceneFromGLB(\x676c544602..., 4326, 1)); -------------- {"type" : "gltf", "srid" : 4326, "lod" : 1, "content" : {"accessors":...}}
- 示例四:
SELECT ST_AsText(ST_sceneFromGLB(\x676c544602..., 4326, 1,ARRAY[0.5, 0, 0, 1, 0, 0.5, 0, 1, 0, 0, 0.5, 1]::float8[])); -------------- {"type" : "gltf", "srid" : 4326, "lod" : 1, "affine" : [0.5,0,0,1,0,0.5,0,1,0,0,0.5,1,0,0,0,1], "content" : {"accessors":...}}