将几何体转换为缓冲几何体

28

据我理解,Geometry 存储顶点和面的 JavaScript 对象结构,而 BufferGeometry 则通过 Float32Array 等直接存储原始的 gl 数据。

是否有办法将标准的 Geometry 转换为更加紧凑、对象更少的 BufferGeometry?例如,如果我创建了一个新的 SphereGeometry,是否有一种简便的方法将其转换为 BufferGeometry?

1个回答

41

本回答仅适用于 r.125 之前的 three.js 版本。

传统的 Geometry 类已被移除。


var bufferGeometry = new THREE.BufferGeometry().fromGeometry( geometry );

three.js r.124


我刚试着使用这个(崭新的,呵呵),但是面孔没有转移过来。我尝试将缓冲几何体上不存在的面孔属性设置为旧几何体上的属性,但是没有成功。 - Axiverse
1
对我来说可以。在r.60中不支持四面体,只支持三角形。使用调试器逐步执行代码。你可能可以找出问题所在。 - WestLangley
啊,是的,我看到了并基于那段代码做了些东西。谢谢!我将我的球体转换为了BufferGeometry:http://i.imgur.com/UCB1f61.png - Axiverse
3
似乎fromGeometry()不再是BufferGeometry的一个方法。 - undefined
2
似乎fromGeometry()不再是BufferGeometry的一个方法。 - alexis_thual
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接