您的位置:首页 > Web前端 > JavaScript

对JSON Model format 3编码理解

2015-03-04 20:41 405 查看
哎,苦于良师益友难寻觅啊。threejs人太少了。

原出处:
https://github.com/mrdoob/three.js/wiki/JSON-Model-format-3
虽然format3即将被淘汰了,format4格式更加规范。因为手头上的工程还是用format3格式。浅谈一下对format3格式的编码理解。

二进制编码方式:

00 00 00 00 =
TRIANGLE
00 00 00 01 =
QUAD
00 00 00 10 = FACE_MATERIAL
00 00 01 00 = FACE_UV
00 00 10 00 = FACE_VERTEX_UV
00 01 00 00 = FACE_NORMAL
00 10 00 00 = FACE_VERTEX_NORMAL
01 00 00 00 = FACE_COLOR
10 00 00 00 = FACE_VERTEX_COLOR

0是三角形;1是四边形;2是面带有法向量,以此类推

数组索引确定编码内容,那么数组下标怎么确定呢?

三角形 : 3个下标;

四边形 : 4个下标;

面-材料 : 1个下标;

面-uvs : 1个下标;

面-点-uvs :3个或4个下标;(我也不清楚怎么判断3还是4)

面-法向量 :1个下标;

面-点-法向量 : 3个或4个下标;

面-颜色 : 1个下标;

面-点-颜色: 3个或者4个下标

比如:

42, 0,1,2, 0, 0,1,2, 0,1,2,

首位 42 = 00 10 01 10 = 四叉树 + 面带曲面 + vertex_uv + vertex_normal


很惊奇发现一个(可能的)bug:

three.js源码第12028和12087行附近,jsonloader对象中,少写了

hasFaceUv           = isBitSet( type, 2 );
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息