diff --git a/ip0443a52d.js b/ip0443a52d.js index a0d20fd..e93673c 100644 --- a/ip0443a52d.js +++ b/ip0443a52d.js @@ -28,9 +28,9 @@ if (data.code === 'KeyL') { var x, y = 0; - var positions = []; - var quaternions = []; - var scales = []; + var offsets = []; + var orientations = []; + //var scales = []; var height = 0; @@ -40,32 +40,44 @@ if (data.code === 'KeyL') { height = heightData[(y * 128) + x] * 10; scale = height * 0.1; - positions.push(x - 64, 64 - y, height); - quaternions.push(0, 0, 0, 1); - scales.push(scale, scale, scale); + offsets.push(x - 64, 64 - y, height); + orientations.push(0, 0, 0, 1); + //scales.push(scale, scale, scale); } } - this.instancedGeometry.instance.index = this.boxGeometry.instance.index; + this.instancedGeometry.instance.index = this.boxGeometry.instance.index; this.instancedGeometry.instance.attributes.position = this.boxGeometry.instance.attributes.position; this.instancedGeometry.instance.attributes.uv = this.boxGeometry.instance.attributes.uv; - - - this.instancedGeometry.instance.removeAttribute('color'); - - this.instancedGeometry.instance.removeAttribute('instancePosition'); - this.instancedGeometry.instance.removeAttribute('instanceQuaternion'); - this.instancedGeometry.instance.removeAttribute('instanceScale'); - - this.instancedGeometry.instance.addAttribute('instancePosition', new THREE.InstancedBufferAttribute( new Float32Array(positions), 3)); - this.instancedGeometry.instance.addAttribute('instanceQuaternion', new THREE.InstancedBufferAttribute( new Float32Array(quaternions), 4)); - this.instancedGeometry.instance.addAttribute('instanceScale', new THREE.InstancedBufferAttribute( new Float32Array(scales), 3)); - this.instancedGeometry.instance.addAttribute('color', new THREE.Float32BufferAttribute(colors, 3)); + var offsetAttribute = new THREE.InstancedBufferAttribute( + new Float32Array(offsets), + 3 + ); - this.instancedGeometry.instance.clearGroups(); + var orientationAttribute = new THREE.InstancedBufferAttribute( + new Float32Array(orientations), + 4 + ).setDynamic(true); + + this.instancedGeometry.instance.addAttribute('offset', offsetAttribute); + this.instancedGeometry.instance.addAttribute('orientation', orientationAttribute); - this.instancedGeometry.instance.addGroup(0, 36, 0); + + // this.instancedGeometry.instance.removeAttribute('color'); +// this.instancedGeometry.instance.removeAttribute('instancePosition'); +// this.instancedGeometry.instance.removeAttribute('instanceQuaternion'); +// this.instancedGeometry.instance.removeAttribute('instanceScale'); + +// this.instancedGeometry.instance.addAttribute('instancePosition', new THREE.InstancedBufferAttribute( new Float32Array(positions), 3)); +// this.instancedGeometry.instance.addAttribute('instanceQuaternion', new THREE.InstancedBufferAttribute( new Float32Array(quaternions), 4)); +// this.instancedGeometry.instance.addAttribute('instanceScale', new THREE.InstancedBufferAttribute( new Float32Array(scales), 3)); + +// this.instancedGeometry.instance.addAttribute('color', new THREE.Float32BufferAttribute(colors, 3)); + +// this.instancedGeometry.instance.clearGroups(); + +// this.instancedGeometry.instance.addGroup(0, 36, 0); //this.meshImageGrid.geometry.instance = this.instancedGeometry.instance;