Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
2ab9597b
T
three.js
项目概览
Ablesons
/
three.js
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
three.js
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
2ab9597b
编写于
11月 23, 2019
作者:
M
Mr.doob
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Updated builds.
上级
03962686
变更
3
展开全部
隐藏空白更改
内联
并排
Showing
3 changed file
with
541 addition
and
427 deletion
+541
-427
build/three.js
build/three.js
+58
-2
build/three.min.js
build/three.min.js
+425
-423
build/three.module.js
build/three.module.js
+58
-2
未找到文件。
build/three.js
浏览文件 @
2ab9597b
...
@@ -27326,6 +27326,13 @@
...
@@ -27326,6 +27326,13 @@
* @author mrdoob / http://mrdoob.com/
* @author mrdoob / http://mrdoob.com/
*/
*/
var _instanceLocalMatrix = new Matrix4();
var _instanceWorldMatrix = new Matrix4();
var _instanceIntersects = [];
var _mesh = new Mesh();
function InstancedMesh( geometry, material, count ) {
function InstancedMesh( geometry, material, count ) {
Mesh.call( this, geometry, material );
Mesh.call( this, geometry, material );
...
@@ -27342,7 +27349,54 @@
...
@@ -27342,7 +27349,54 @@
isInstancedMesh: true,
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 ) {
setMatrixAt: function ( index, matrix ) {
...
@@ -27350,7 +27404,9 @@
...
@@ -27350,7 +27404,9 @@
},
},
updateMorphTargets: function () {}
updateMorphTargets: function () {
}
} );
} );
build/three.min.js
浏览文件 @
2ab9597b
此差异已折叠。
点击以展开。
build/three.module.js
浏览文件 @
2ab9597b
...
@@ -27318,6 +27318,13 @@ Bone.prototype = Object.assign( Object.create( Object3D.prototype ), {
...
@@ -27318,6 +27318,13 @@ Bone.prototype = Object.assign( Object.create( Object3D.prototype ), {
* @author mrdoob / http://mrdoob.com/
* @author mrdoob / http://mrdoob.com/
*/
*/
var _instanceLocalMatrix = new Matrix4();
var _instanceWorldMatrix = new Matrix4();
var _instanceIntersects = [];
var _mesh = new Mesh();
function InstancedMesh( geometry, material, count ) {
function InstancedMesh( geometry, material, count ) {
Mesh.call( this, geometry, material );
Mesh.call( this, geometry, material );
...
@@ -27334,7 +27341,54 @@ InstancedMesh.prototype = Object.assign( Object.create( Mesh.prototype ), {
...
@@ -27334,7 +27341,54 @@ InstancedMesh.prototype = Object.assign( Object.create( Mesh.prototype ), {
isInstancedMesh: true,
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 ) {
setMatrixAt: function ( index, matrix ) {
...
@@ -27342,7 +27396,9 @@ InstancedMesh.prototype = Object.assign( Object.create( Mesh.prototype ), {
...
@@ -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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录