Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
车家大少爷
three.js
提交
034e44cc
T
three.js
项目概览
车家大少爷
/
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,发现更多精彩内容 >>
提交
034e44cc
编写于
11月 17, 2014
作者:
M
Mr.doob
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Updated builds.
上级
d09baac9
变更
4
展开全部
隐藏空白更改
内联
并排
Showing
4 changed file
with
254 addition
and
185 deletion
+254
-185
build/three.js
build/three.js
+105
-39
build/three.min.js
build/three.min.js
+128
-127
src/extras/animation/MorphAnimation.js
src/extras/animation/MorphAnimation.js
+20
-18
src/renderers/WebGLRenderer.js
src/renderers/WebGLRenderer.js
+1
-1
未找到文件。
build/three.js
浏览文件 @
034e44cc
...
...
@@ -17869,11 +17869,7 @@ THREE.WebGLRenderer = function ( parameters ) {
this.domElement = _canvas;
this.context = null;
this.devicePixelRatio = parameters.devicePixelRatio !== undefined
? parameters.devicePixelRatio
: self.devicePixelRatio !== undefined
? self.devicePixelRatio
: 1;
this.devicePixelRatio = self.devicePixelRatio !== undefined ? self.devicePixelRatio : 1;
// clearing
...
...
@@ -20597,20 +20593,92 @@ THREE.WebGLRenderer = function ( parameters ) {
// render particles
if ( updateBuffers ) {
var mode = _gl.POINTS;
setupVertexAttributes( material, program, geometry, 0 )
;
var index = geometry.attributes.index
;
}
if ( index ) {
var position = geometry.attributes.position;
// indexed points
// render particles
var type, size;
_gl.drawArrays( _gl.POINTS, 0, position.array.length / 3 );
if ( index.array instanceof Uint32Array && extensions.get( 'OES_element_index_uint' ) ) {
_this.info.render.calls ++;
_this.info.render.points += position.array.length / 3;
type = _gl.UNSIGNED_INT;
size = 4;
} else {
type = _gl.UNSIGNED_SHORT;
size = 2;
}
var offsets = geometry.offsets;
if ( offsets.length === 0 ) {
if ( updateBuffers ) {
setupVertexAttributes( material, program, geometry, 0 );
_gl.bindBuffer( _gl.ELEMENT_ARRAY_BUFFER, index.buffer );
}
_gl.drawElements( mode, index.array.length, type, 0);
_this.info.render.calls ++;
_this.info.render.points += index.array.length;
} else {
// if there is more than 1 chunk
// must set attribute pointers to use new offsets for each chunk
// even if geometry and materials didn't change
if ( offsets.length > 1 ) updateBuffers = true;
for ( var i = 0, il = offsets.length; i < il; i ++ ) {
var startIndex = offsets[ i ].index;
if ( updateBuffers ) {
setupVertexAttributes( material, program, geometry, startIndex );
_gl.bindBuffer( _gl.ELEMENT_ARRAY_BUFFER, index.buffer );
}
// render indexed points
_gl.drawElements( mode, offsets[ i ].count, type, offsets[ i ].start * size );
_this.info.render.calls ++;
_this.info.render.points += offsets[ i ].count;
}
}
} else {
// non-indexed points
if ( updateBuffers ) {
setupVertexAttributes( material, program, geometry, 0 );
}
var position = geometry.attributes.position;
_gl.drawArrays( mode, 0, position.array.length / 3 );
_this.info.render.calls ++;
_this.info.render.points += position.array.length / 3;
}
} else if ( object instanceof THREE.Line ) {
...
...
@@ -30448,6 +30516,7 @@ THREE.KeyFrameAnimation.prototype.getPrevKeyWith = function( sid, h, key ) {
/**
* @author mrdoob / http://mrdoob.com
* @author willy-vvu / http://willy-vvu.github.io
*/
THREE.MorphAnimation = function ( mesh ) {
...
...
@@ -30457,6 +30526,8 @@ THREE.MorphAnimation = function ( mesh ) {
this.currentTime = 0;
this.duration = 1000;
this.loop = true;
this.lastFrame = 0;
this.currentFrame = 0;
this.isPlaying = false;
...
...
@@ -30464,6 +30535,8 @@ THREE.MorphAnimation = function ( mesh ) {
THREE.MorphAnimation.prototype = {
constructor: THREE.MorphAnimation,
play: function () {
this.isPlaying = true;
...
...
@@ -30476,45 +30549,38 @@ THREE.MorphAnimation.prototype = {
},
update: ( function () {
var lastFrame = 0;
var currentFrame = 0;
return function ( delta ) {
update: function ( delta ) {
if ( this.isPlaying === false ) return;
this.currentTime += delta;
if ( this.isPlaying === false ) return;
if ( this.loop === true && this.currentTime > this.duration ) {
this.currentTime += delta;
this.currentTime %= this.duration;
if ( this.loop === true && this.currentTime > this.duration ) {
}
this.currentTime %= this.duration;
this.currentTime = Math.min( this.currentTime, this.duration );
var interpolation = this.duration / this.frames;
var frame = Math.floor( this.currentTime / interpolation );
}
if ( frame != currentFrame ) {
this.currentTime = Math.min( this.currentTime, this.duration );
this.mesh.morphTargetInfluences[ lastFrame ] = 0;
this.mesh.morphTargetInfluences[ currentFrame ] = 1;
this.mesh.morphTargetInfluences[ frame ] = 0;
var interpolation = this.duration / this.frames;
var frame = Math.floor( this.currentTime / interpolation );
lastFrame = currentFrame;
currentFrame = frame;
if ( frame != this.currentFrame ) {
}
this.mesh.morphTargetInfluences[ this.lastFrame ] = 0;
this.mesh.morphTargetInfluences[ this.currentFrame ] = 1;
this.mesh.morphTargetInfluences[ frame ] = 0;
this.
mesh.morphTargetInfluences[ frame ] = ( this.currentTime % interpolation ) / interpolation
;
this.
mesh.morphTargetInfluences[ lastFrame ] = 1 - this.mesh.morphTargetInfluences[ frame ]
;
this.
lastFrame = this.currentFrame
;
this.
currentFrame = frame
;
}
} )()
this.mesh.morphTargetInfluences[ frame ] = ( this.currentTime % interpolation ) / interpolation;
this.mesh.morphTargetInfluences[ this.lastFrame ] = 1 - this.mesh.morphTargetInfluences[ frame ];
}
};
...
...
build/three.min.js
浏览文件 @
034e44cc
此差异已折叠。
点击以展开。
src/extras/animation/MorphAnimation.js
浏览文件 @
034e44cc
...
...
@@ -19,6 +19,8 @@ THREE.MorphAnimation = function ( mesh ) {
THREE
.
MorphAnimation
.
prototype
=
{
constructor
:
THREE
.
MorphAnimation
,
play
:
function
()
{
this
.
isPlaying
=
true
;
...
...
@@ -33,35 +35,35 @@ THREE.MorphAnimation.prototype = {
update
:
function
(
delta
)
{
if
(
this
.
isPlaying
===
false
)
return
;
if
(
this
.
isPlaying
===
false
)
return
;
this
.
currentTime
+=
delta
;
this
.
currentTime
+=
delta
;
if
(
this
.
loop
===
true
&&
this
.
currentTime
>
this
.
duration
)
{
if
(
this
.
loop
===
true
&&
this
.
currentTime
>
this
.
duration
)
{
this
.
currentTime
%=
this
.
duration
;
this
.
currentTime
%=
this
.
duration
;
}
}
this
.
currentTime
=
Math
.
min
(
this
.
currentTime
,
this
.
duration
);
this
.
currentTime
=
Math
.
min
(
this
.
currentTime
,
this
.
duration
);
var
interpolation
=
this
.
duration
/
this
.
frames
;
var
frame
=
Math
.
floor
(
this
.
currentTime
/
interpolation
);
var
interpolation
=
this
.
duration
/
this
.
frames
;
var
frame
=
Math
.
floor
(
this
.
currentTime
/
interpolation
);
if
(
frame
!=
this
.
currentFrame
)
{
if
(
frame
!=
this
.
currentFrame
)
{
this
.
mesh
.
morphTargetInfluences
[
this
.
lastFrame
]
=
0
;
this
.
mesh
.
morphTargetInfluences
[
this
.
currentFrame
]
=
1
;
this
.
mesh
.
morphTargetInfluences
[
frame
]
=
0
;
this
.
mesh
.
morphTargetInfluences
[
this
.
lastFrame
]
=
0
;
this
.
mesh
.
morphTargetInfluences
[
this
.
currentFrame
]
=
1
;
this
.
mesh
.
morphTargetInfluences
[
frame
]
=
0
;
this
.
lastFrame
=
this
.
currentFrame
;
this
.
currentFrame
=
frame
;
this
.
lastFrame
=
this
.
currentFrame
;
this
.
currentFrame
=
frame
;
}
}
this
.
mesh
.
morphTargetInfluences
[
frame
]
=
(
this
.
currentTime
%
interpolation
)
/
interpolation
;
this
.
mesh
.
morphTargetInfluences
[
this
.
lastFrame
]
=
1
-
this
.
mesh
.
morphTargetInfluences
[
frame
];
this
.
mesh
.
morphTargetInfluences
[
frame
]
=
(
this
.
currentTime
%
interpolation
)
/
interpolation
;
this
.
mesh
.
morphTargetInfluences
[
this
.
lastFrame
]
=
1
-
this
.
mesh
.
morphTargetInfluences
[
frame
];
}
}
};
src/renderers/WebGLRenderer.js
浏览文件 @
034e44cc
...
...
@@ -2825,7 +2825,7 @@ THREE.WebGLRenderer = function ( parameters ) {
// render indexed points
_gl
.
drawElements
(
mode
,
offsets
[
i
].
count
,
type
,
offsets
[
i
].
start
*
size
);
_gl
.
drawElements
(
mode
,
offsets
[
i
].
count
,
type
,
offsets
[
i
].
start
*
size
);
_this
.
info
.
render
.
calls
++
;
_this
.
info
.
render
.
points
+=
offsets
[
i
].
count
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录