Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Three.js THREEJS-带2种材质的索引缓冲几何体_Three.js - Fatal编程技术网

Three.js THREEJS-带2种材质的索引缓冲几何体

Three.js THREEJS-带2种材质的索引缓冲几何体,three.js,Three.js,我想创建一个可以容纳许多材质的缓冲区几何体。 我已经读到为了在BufferGeometry中实现这一点,我需要使用组。因此,我创建了以下“地板”网格: var gg=new THREE.BufferGeometry(),vtx=[],fc=[],[]],mm=[ 新的3.MeshLambertMaterial({color:0xff0000}), 新的3.MeshLambertMaterial({color:0x0000ff}) ]; 对于(var y=0;y请查看以下内容: 修复#1-不定

我想创建一个可以容纳许多材质的缓冲区几何体。 我已经读到为了在BufferGeometry中实现这一点,我需要使用组。因此,我创建了以下“地板”网格:

var gg=new THREE.BufferGeometry(),vtx=[],fc=[],[]],mm=[
新的3.MeshLambertMaterial({color:0xff0000}),
新的3.MeshLambertMaterial({color:0x0000ff})
];
对于(var y=0;y请查看以下内容:


修复#1-不定义组0

fix#2-addGroup
中的第二个参数是缓冲区长度,它必须是3的倍数(100是错误的)

var gg=new THREE.BufferGeometry(),
vtx=[],
fc=[],[],
毫米=[
新的三点网格材料({
颜色:0xff0000
}),
新的三点网格材料({
颜色:0x0000ff
})
];
对于(变量y=0;y<11;y++)
对于(变量x=0;x<11;x++){
垂直推力(x-5,0,y-5);
if(x&y){
var p=(vtx.length/3)-1;
fc[(x%2)^(y%2)]。推送(
p、 p-11,p-1,
p-1、p-11、p-12
);
}
}
addAttribute('position',新的三个.Float32BufferAttribute(vtx,3));
fc[0].push.apply(fc[1]);
gg.setIndex(fc[0]);
gg.computeVertexNormals();
//组0就是一切,除非定义组1
//修复#1-不定义组0
//fix#2-第二个参数是缓冲区长度,它必须是3的倍数(100是错误的)
gg.addGroup(0,102,1);
添加(新的三个网格(gg,mm));

是的,这为我提供了关于缓冲区长度的正确移动方向-尽管我在代码中使用[].push.apply而不是Array.prototype.push.apply(arr1,arr2)实现该目标时出错。