对JSON Model format 3编码理解

哎,苦于良师益友难寻觅啊。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 );

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值