提交 2ab9597b 编写于 作者: M Mr.doob

Updated builds.

上级 03962686
......@@ -27326,6 +27326,13 @@
* @author mrdoob / http://mrdoob.com/
*/
var _instanceLocalMatrix = new Matrix4();
var _instanceWorldMatrix = new Matrix4();
var _instanceIntersects = [];
var _mesh = new Mesh();
function InstancedMesh( geometry, material, count ) {
Mesh.call( this, geometry, material );
......@@ -27342,7 +27349,54 @@
isInstancedMesh: true,
raycast: function () {},
getMatrixAt: function ( index, matrix ) {
matrix.fromArray( this.instanceMatrix.array, index * 16 );
},
raycast: function ( raycaster, intersects ) {
var matrixWorld = this.matrixWorld;
var raycastTimes = this.count;
_mesh.geometry = this.geometry;
_mesh.material = this.material;
if ( _mesh.material === undefined ) { return; }
for ( var instanceId = 0; instanceId < raycastTimes; instanceId ++ ) {
//Calculate the world matrix for each instance
this.getMatrixAt( instanceId, _instanceLocalMatrix );
_instanceWorldMatrix.multiplyMatrices( matrixWorld, _instanceLocalMatrix );
//The mesh represents this single instance
_mesh.matrixWorld = _instanceWorldMatrix;
_mesh.raycast( raycaster, _instanceIntersects );
//Process the result of raycast
if ( _instanceIntersects.length > 0 ) {
_instanceIntersects[ 0 ].instanceId = instanceId;
_instanceIntersects[ 0 ].object = this;
intersects.push( _instanceIntersects[ 0 ] );
_instanceIntersects.length = 0;
}
}
},
setMatrixAt: function ( index, matrix ) {
......@@ -27350,7 +27404,9 @@
},
updateMorphTargets: function () {}
updateMorphTargets: function () {
}
} );
此差异已折叠。
......@@ -27318,6 +27318,13 @@ Bone.prototype = Object.assign( Object.create( Object3D.prototype ), {
* @author mrdoob / http://mrdoob.com/
*/
var _instanceLocalMatrix = new Matrix4();
var _instanceWorldMatrix = new Matrix4();
var _instanceIntersects = [];
var _mesh = new Mesh();
function InstancedMesh( geometry, material, count ) {
Mesh.call( this, geometry, material );
......@@ -27334,7 +27341,54 @@ InstancedMesh.prototype = Object.assign( Object.create( Mesh.prototype ), {
isInstancedMesh: true,
raycast: function () {},
getMatrixAt: function ( index, matrix ) {
matrix.fromArray( this.instanceMatrix.array, index * 16 );
},
raycast: function ( raycaster, intersects ) {
var matrixWorld = this.matrixWorld;
var raycastTimes = this.count;
_mesh.geometry = this.geometry;
_mesh.material = this.material;
if ( _mesh.material === undefined ) return;
for ( var instanceId = 0; instanceId < raycastTimes; instanceId ++ ) {
//Calculate the world matrix for each instance
this.getMatrixAt( instanceId, _instanceLocalMatrix );
_instanceWorldMatrix.multiplyMatrices( matrixWorld, _instanceLocalMatrix );
//The mesh represents this single instance
_mesh.matrixWorld = _instanceWorldMatrix;
_mesh.raycast( raycaster, _instanceIntersects );
//Process the result of raycast
if ( _instanceIntersects.length > 0 ) {
_instanceIntersects[ 0 ].instanceId = instanceId;
_instanceIntersects[ 0 ].object = this;
intersects.push( _instanceIntersects[ 0 ] );
_instanceIntersects.length = 0;
}
}
},
setMatrixAt: function ( index, matrix ) {
......@@ -27342,7 +27396,9 @@ InstancedMesh.prototype = Object.assign( Object.create( Mesh.prototype ), {
},
updateMorphTargets: function () {}
updateMorphTargets: function () {
}
} );
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册