sfmesh使用JSON作为WKT的表示方法,包含一些节点信息,本文介绍相关节点信息。

  • version:sfmesh的版本,目前为1。
  • srid:空间参考ID。
  • lod:LOD的层级信息。
  • root:Node的根目录ID,默认为0。
  • meshgeoms:所有引用到的meshgeom对象的数组,可以为引用对象。
  • meshes:所有基于Node引用导的sfmesh的对象的数组,可以为引用对象。
  • textures:所用的texture的对象数组。
  • materials:所有材质的对象数组。
  • primitives:所有的元组信息的数组,元组包含两种:meshgeom和mesh,其中meshgeom可以带材质信息,通过material关键字进行绑定。
  • nodes:通过node可以定义树状结构,进行组织构建。可以包含几种属性:
    • primitive: 对应的primitive的信息。
    • children: 子对象数组
    • matrix: 变换矩阵,采用以下方式进行描述。
      / a  b  c  xoff \ 
      | d  e  f  yoff | 
      | g  h  i  zoff |
      \ 0  0  0     1 / 
    • id: 对象关联的ID信息。
{
    "version":1,
    "root":0,
    "meshgeoms":[
        "MESHGEOM(PATCH(TRIANGLESTRIP(0 0,0 10,10 10,10 0)))"
    ],
    "meshes":[
        "MESH(schema(@public@), table(@t_mesh@), column(@the_mesh@), key(@num=1@))"
    ],
    "primitives":[
        {
            "mesh":0
        },
        {
            "meshgeom":0
        }
    ],
    "nodes":[
        {
            "children":[
                1,
                2
            ],
            "id":100
        },
        {
            "primitive":0
        },
        {
            "primitive":1,
            "matrix":[
                2,
                0,
                0,
                1,
                0,
                2,
                0,
                3,
                0,
                0,
                2,
                4,
                0,
                0,
                0,
                1
            ],
            "id":10
        }
    ],
    "materials":[
        {
            "type":"db",
            "attributes":{
                "schema":"public",
                "table":"t_material",
                "column":"the_material",
                "key":"num=1"
            }
        }
    ],
    "textures":[
        {
            "compressionType":"None",
            "format":"JPEG",
            "wrap":"Wrap",
            "type":"Url",
            "depth":3,
            "width":256,
            "height":256,
            "size":15,
            "data":"http://aaa.png"
        }
    ]
}
sfmesh支持对其他sfmesh对象的引用,包含schema、table、column和key 四个关键字,其中后三个为必须的内容,字符串使用@ 进行包裹。
/*
具体格式如下
MESH(
   schema(@schema_name@),
    table(@table_name@),
    column(@column_name@),
    key(@where_clause@)
   )
*/

  MESH(
   schema(@public@),
    table(@mytable@),
    column(@mycolumn@),
    key(@id=1@)
   )