我可以为索引使用InterleavedBufferAttribute吗?

时间:2019-06-12 20:23:42

标签: typescript three.js

我有以下代码段:

const geometry = new THREE.BufferGeometry();
const indices = new THREE.InterleavedBufferAttribute(...);
geometry.setIndex(indices); // this is invalid

最后一行导致编译器错误:

  

类型'InterleavedBufferAttribute'缺少类型'Bufferattribute'的以下属性:动态,updateRange,版本,needsUpdate和另外12个。

我什至可以使用InterleavedBufferAttribute设置索引吗?

在旁注:可以将交错数组用于索引吗?我的意思是语言独立。我从未见过。显然这不是主要问题,但我很感兴趣。

1 个答案:

答案 0 :(得分:4)

不,您通常不能交错索引。交错索引没有意义。

您会与他们交织些什么?

通常,您交错放置诸如位置,法线,纹理坐标,颜色之类的东西。而不是具有4个具有并行数组的属性

position, position, position, position
normal, normal, normal, normal
uv, uv, uv, uv,
color, color, color, color

您有一个交错的数组

pos,nrm,uv,clr,pos,nrm,uv,clr,pos,nrm,uv,clr,pos,nrm,uv,clr

现在来索引。不用说我们正在制作四边形,所以有4个顶点 和6个索引。如何将6个索引与4个顶点交错?你不能

索引引用属性中的内容,它们本身不是属性。