gltf

翻译glTF2.0 说明文档二进制存储这段

烂漫一生 提交于 2020-02-27 20:12:59
英文原文 Binary Data Storage 二进制数据存储 Buffers 以及 Buffer Views buffer 是存储为二进制blob的数据。 buffer 可以包含几何图形、动画和蒙皮的组合。 二进制blob允许高效地创建GPU缓冲区和纹理,因为它们不需要额外的解析,除了解压之外。一个资源可以有任意数量的缓冲区文件,以适应各种应用程序的灵活性。 实现注意:虽然缓冲区的大小没有上限,但是实现应该意识到,当在某些平台上运行时,JSON解析器可能只支持2^53以内的整数。当缓冲区被存储为GLB二进制块时,还有一个2^32-1字节的隐式限制。 buffer 的字段排列是小端字节的(LITTLE-ENDIAN)。 所有 buffer 都存储在资源的 buffers 数组中。 下面的示例定义了一个 buffer 。byteLength属性指定缓冲区文件的大小。uri属性是 buffer 数据的URI。 buffer 数据也可以作为base64编码的数据存储在glTF文件中,并通过数据URI进行引用。 { "buffers": [ { "byteLength": 102040, "uri": "duck.bin" } ] } bufferView 表示缓冲区中的数据子集

翻译glTF2.0 说明文档Skins这段

ε祈祈猫儿з 提交于 2020-02-25 18:24:50
英文原文 蒙皮 所有蒙皮都存储在资源的皮肤数组中。每个皮肤都由inverseBindMatrices属性定义(该属性指向一个带有IBM数据的访问器),用于将蒙皮坐标变换到每个关节相同的坐标系下; 以及一个关节数组属性,该属性列出用作蒙皮动画的关节的节点索引。关节的顺序是在 skin.joints 数组中定义的,它必须与inverseBindMatrices数据的顺序相匹配。骨架属性(如果存在)指向作为关节层次结构的公共根的节点,或者指向公共根的直接或间接父节点。 注:这里IBM指的是inverseBindMatrices 实现注意: 定义如何将蒙皮的几何形状与关节一起使用的矩阵(“绑定形状矩阵”)应该预乘到网格数据或反向绑定矩阵。 实现注意: 客户端实现应该只将骨骼根节点的转换应用于蒙皮网格物体,而忽略蒙皮网格节点的转换。在下面的示例中,应用node_0的平移和node_1的缩放,而忽略node_3的平移和node_4的旋转。 { "nodes": [ { "name": "node_0", "children": [ 1 ], "translation": [ 0.0, 1.0, 0.0 ] }, { "name": "node_1", "children": [ 2 ], "scale": [ 0.5, 0.5, 0.5 ] }, { "name": "node_2" }, {

Create an Array of Meshes from Object (THREE.JS and GLTF)

风流意气都作罢 提交于 2020-01-25 06:17:48
问题 Below is my piece of code which loads a mesh onto the object. At the moment its traversing through the entire thing. Current code: var loader = new THREE.GLTFLoader(); loader.load( '../gtf/Box.gltf', function ( gltf ) { model = gltf.scene; gltf.scene.traverse( function ( child ) { if ( child.isMesh ) { child.material.map = texture; } } ); scene.add( model); } ); How would I go about making an array of children[] ? Each child will would then allow me to assign separate textures. I have made

翻译glTF文档中的交叉数据这一段以及二进制读写生续的解释

一世执手 提交于 2020-01-09 16:42:06
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Data interleaving 数据交错 存储在单个 bufferView 中的属性的数据视图可以存储为结构数组。例如,单个 bufferView 可以以交错方式包含顶点位置和顶点法线的数据。在这种情况下,访问器的字节偏移定义相应属性的第一个相关数据元素的开头, bufferView 定义一个额外的字节步长属性。这是其访问器的一个元素的开头和下一个元素的开头之间的字节数。下图中显示了如何在 bufferView 中存储交错位置和法线属性的示例。 图中可以看到byteStride为24, 这个值存在bufferView这个元素里面. Data contents 数据内容 accessor 还包含汇总其数据内容的最小和最大属性。它们是 accessor 中包含的所有数据元素的组件最小值和最大值。因此,在顶点位置的情况下,最小和最大值属性定义对象的边界框。这对于确定下载优先级或可见性检测非常有用。通常,此信息对于存储和处理在运行时由呈现器取消量化的量化数据也很有用,但此量化的详细信息超出了本教程的范围。 Sparse accessors 稀疏访问器 在版本 2.0 中,在 glTF 中引入了稀疏访问器的概念。这是数据的特殊表示形式,允许非常紧凑的存储多个数据块,这些数据块只有几个不同的条目。例如

GLB格式的说明

半腔热情 提交于 2019-12-26 11:22:06
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 原文 GLB GLB是什么? 是个二进制文件格式, 实现三维模型存储于GL的可传输的格式(glTF). 内含节点层级、摄像机、材质、动画、网格物体都用二进制存储。这个二进制格式存储glTF的组件(JSON,.bin 以及图片) . 同时也避免了用glTF格式文件变大的问题. 通过压缩, GLB能更快地加载, 提供完整的三维场景, 且是能在未来的开发中扩展的. 该格式使用model/gltf-二进制文件作为MIME类型。 来源: oschina 链接: https://my.oschina.net/u/235558/blog/3147573

A-Frame / THREE.js, no textures simplified gltf[glb] models

我只是一个虾纸丫 提交于 2019-12-25 03:55:31
问题 After simplifying glb successfully with the answer in this post. The textures in are not being applied to the model any more (it appears completely black and unreflective(no material) How would I programmatically get the textures to work with this new simplified geometry? I think its something to do with the uv's but im not to sure how to have it work according to simplified geometry, if even possible. 回答1: THREE.SimplifyModifier currently does not preserve UVs in the geometry, which you'll

gltf file not showing in Aframe

随声附和 提交于 2019-12-24 06:53:03
问题 I have two files, an glTF and OBJ file. I'm using Glitch to develop and I uploaded both of them to my assets folder. When I read my marker, only the OBJ file is displayed. <!DOCTYPE html> <html> <script src="https://aframe.io/releases/0.9.2/aframe.min.js"></script> <script src="https://raw.githack.com/jeromeetienne/AR.js/master/aframe/build/aframe-ar.min.js"></script> <script src="https://rawgit.com/donmccurdy/aframe-extras/master/dist/aframe-extras.loaders.min.js"></script> <body style=

gltf file not showing in Aframe

天大地大妈咪最大 提交于 2019-12-24 06:51:04
问题 I have two files, an glTF and OBJ file. I'm using Glitch to develop and I uploaded both of them to my assets folder. When I read my marker, only the OBJ file is displayed. <!DOCTYPE html> <html> <script src="https://aframe.io/releases/0.9.2/aframe.min.js"></script> <script src="https://raw.githack.com/jeromeetienne/AR.js/master/aframe/build/aframe-ar.min.js"></script> <script src="https://rawgit.com/donmccurdy/aframe-extras/master/dist/aframe-extras.loaders.min.js"></script> <body style=

Import another Texture at runtime within THREE.JS and GLTF

那年仲夏 提交于 2019-12-23 21:22:53
问题 I'm still pretty new at Three.JS, I'm pretty happy where I have gotten so far, but just need some help. I have an GLTF object loaded into the scene, I want to be able to load different textures onto the object on the website by the user selecting a style, (like a customization feature). Below is my code, at the moment it outputs nothing and I get the following error: In Chrome: "TypeError: Cannot set property 'map' of undefined" In Firefox: "TypeError: model.material is undefined" var