我有以下代码段:
const geometry = new THREE.BufferGeometry();
const indices = new THREE.InterleavedBufferAttribute(...);
geometry.setIndex(indices); // this is invalid
最后一行导致编译器错误:
类型'InterleavedBufferAttribute'缺少类型'Bufferattribute'的以下属性:动态,updateRange,版本,needsUpdate和另外12个。
我什至可以使用InterleavedBufferAttribute
设置索引吗?
在旁注:可以将交错数组用于索引吗?我的意思是语言独立。我从未见过。显然这不是主要问题,但我很感兴趣。
答案 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个顶点交错?你不能
索引引用属性中的内容,它们本身不是属性。