Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
6e7b6483
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,发现更多精彩内容 >>
提交
6e7b6483
编写于
2月 21, 2017
作者:
M
Mr.doob
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Performance optimisations.
上级
9dd57d8c
变更
7
展开全部
隐藏空白更改
内联
并排
Showing
7 changed file
with
57 addition
and
33 deletion
+57
-33
examples/models/json/suzanne.json
examples/models/json/suzanne.json
+22
-0
examples/webgl_performance.html
examples/webgl_performance.html
+2
-2
examples/webgl_performance_static.html
examples/webgl_performance_static.html
+2
-2
src/core/Layers.js
src/core/Layers.js
+5
-5
src/math/Quaternion.js
src/math/Quaternion.js
+12
-8
src/renderers/WebGLRenderer.js
src/renderers/WebGLRenderer.js
+13
-15
src/renderers/webgl/WebGLShadowMap.js
src/renderers/webgl/WebGLShadowMap.js
+1
-1
未找到文件。
examples/models/json/suzanne.json
0 → 100644
浏览文件 @
6e7b6483
此差异已折叠。
点击以展开。
examples/webgl_performance.html
浏览文件 @
6e7b6483
...
...
@@ -52,8 +52,8 @@
var
material
=
new
THREE
.
MeshNormalMaterial
();
var
loader
=
new
THREE
.
JSON
Loader
();
loader
.
load
(
'
obj/Suzanne.js
'
,
function
(
geometry
)
{
var
loader
=
new
THREE
.
BufferGeometry
Loader
();
loader
.
load
(
'
models/json/suzanne.json
'
,
function
(
geometry
)
{
geometry
.
computeVertexNormals
();
...
...
examples/webgl_performance_static.html
浏览文件 @
6e7b6483
...
...
@@ -50,8 +50,8 @@
var
material
=
new
THREE
.
MeshNormalMaterial
();
var
loader
=
new
THREE
.
JSON
Loader
();
loader
.
load
(
'
obj/Suzanne.js
'
,
function
(
geometry
)
{
var
loader
=
new
THREE
.
BufferGeometry
Loader
();
loader
.
load
(
'
models/json/suzanne.json
'
,
function
(
geometry
)
{
geometry
.
computeVertexNormals
();
...
...
src/core/Layers.js
浏览文件 @
6e7b6483
...
...
@@ -4,7 +4,7 @@
function
Layers
()
{
this
.
mask
=
1
;
this
.
mask
=
1
|
0
;
}
...
...
@@ -12,25 +12,25 @@ Object.assign( Layers.prototype, {
set
:
function
(
channel
)
{
this
.
mask
=
1
<<
channel
;
this
.
mask
=
1
<<
channel
|
0
;
},
enable
:
function
(
channel
)
{
this
.
mask
|=
1
<<
channel
;
this
.
mask
|=
1
<<
channel
|
0
;
},
toggle
:
function
(
channel
)
{
this
.
mask
^=
1
<<
channel
;
this
.
mask
^=
1
<<
channel
|
0
;
},
disable
:
function
(
channel
)
{
this
.
mask
&=
~
(
1
<<
channel
);
this
.
mask
&=
~
(
1
<<
channel
|
0
);
},
...
...
src/math/Quaternion.js
浏览文件 @
6e7b6483
...
...
@@ -197,24 +197,28 @@ Object.assign( Quaternion.prototype, {
setFromEuler
:
function
(
euler
,
update
)
{
if
(
(
euler
&&
euler
.
isEuler
)
===
false
)
{
if
(
(
euler
&&
euler
.
isEuler
)
===
false
)
{
throw
new
Error
(
'
THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.
'
);
}
var
x
=
euler
.
_x
,
y
=
euler
.
_y
,
z
=
euler
.
_z
,
order
=
euler
.
order
;
// http://www.mathworks.com/matlabcentral/fileexchange/
// 20696-function-to-convert-between-dcm-euler-angles-quaternions-and-euler-vectors/
// content/SpinCalc.m
var
c
1
=
Math
.
cos
(
euler
.
_x
/
2
)
;
var
c2
=
Math
.
cos
(
euler
.
_y
/
2
)
;
var
c3
=
Math
.
cos
(
euler
.
_z
/
2
);
var
s1
=
Math
.
sin
(
euler
.
_
x
/
2
);
var
s2
=
Math
.
sin
(
euler
.
_
y
/
2
);
var
s3
=
Math
.
sin
(
euler
.
_
z
/
2
);
var
c
os
=
Math
.
cos
;
var
sin
=
Math
.
sin
;
var
c1
=
cos
(
x
/
2
);
var
c2
=
cos
(
y
/
2
);
var
c3
=
cos
(
z
/
2
);
var
order
=
euler
.
order
;
var
s1
=
sin
(
x
/
2
);
var
s2
=
sin
(
y
/
2
);
var
s3
=
sin
(
z
/
2
);
if
(
order
===
'
XYZ
'
)
{
...
...
src/renderers/WebGLRenderer.js
浏览文件 @
6e7b6483
...
...
@@ -1121,7 +1121,7 @@ function WebGLRenderer( parameters ) {
_localClippingEnabled
=
this
.
localClippingEnabled
;
_clippingEnabled
=
_clipping
.
init
(
this
.
clippingPlanes
,
_localClippingEnabled
,
camera
);
projectObject
(
scene
,
camera
);
projectObject
(
scene
,
camera
,
_this
.
sortObjects
);
opaqueObjects
.
length
=
opaqueObjectsLastIndex
+
1
;
transparentObjects
.
length
=
transparentObjectsLastIndex
+
1
;
...
...
@@ -1381,11 +1381,11 @@ function WebGLRenderer( parameters ) {
}
function
projectObject
(
object
,
camera
)
{
function
projectObject
(
object
,
camera
,
sortObjects
)
{
if
(
object
.
visible
===
fals
e
)
return
;
if
(
!
object
.
visibl
e
)
return
;
var
visible
=
(
object
.
layers
.
mask
&
camera
.
layers
.
mask
)
!==
0
;
var
visible
=
object
.
layers
.
test
(
camera
.
layers
)
;
if
(
visible
)
{
...
...
@@ -1395,7 +1395,7 @@ function WebGLRenderer( parameters ) {
}
else
if
(
object
.
isSprite
)
{
if
(
object
.
frustumCulled
===
false
||
isSpriteViewable
(
object
)
===
true
)
{
if
(
!
object
.
frustumCulled
||
isSpriteViewable
(
object
)
)
{
sprites
.
push
(
object
);
...
...
@@ -1407,10 +1407,9 @@ function WebGLRenderer( parameters ) {
}
else
if
(
object
.
isImmediateRenderObject
)
{
if
(
_this
.
sortObjects
===
true
)
{
if
(
sortObjects
)
{
_vector3
.
setFromMatrixPosition
(
object
.
matrixWorld
);
_vector3
.
applyMatrix4
(
_projScreenMatrix
);
_vector3
.
setFromMatrixPosition
(
object
.
matrixWorld
).
applyMatrix4
(
_projScreenMatrix
);
}
...
...
@@ -1424,12 +1423,11 @@ function WebGLRenderer( parameters ) {
}
if
(
object
.
frustumCulled
===
false
||
isObjectViewable
(
object
)
===
true
)
{
if
(
!
object
.
frustumCulled
||
isObjectViewable
(
object
)
)
{
if
(
_this
.
sortObjects
===
true
)
{
if
(
sortObjects
)
{
_vector3
.
setFromMatrixPosition
(
object
.
matrixWorld
);
_vector3
.
applyMatrix4
(
_projScreenMatrix
);
_vector3
.
setFromMatrixPosition
(
object
.
matrixWorld
).
applyMatrix4
(
_projScreenMatrix
);
}
...
...
@@ -1445,7 +1443,7 @@ function WebGLRenderer( parameters ) {
var
group
=
groups
[
i
];
var
groupMaterial
=
material
[
group
.
materialIndex
];
if
(
groupMaterial
&&
groupMaterial
.
visible
===
true
)
{
if
(
groupMaterial
&&
groupMaterial
.
visible
)
{
pushRenderItem
(
object
,
geometry
,
groupMaterial
,
_vector3
.
z
,
group
);
...
...
@@ -1453,7 +1451,7 @@ function WebGLRenderer( parameters ) {
}
}
else
if
(
material
.
visible
===
true
)
{
}
else
if
(
material
.
visible
)
{
pushRenderItem
(
object
,
geometry
,
material
,
_vector3
.
z
,
null
);
...
...
@@ -1469,7 +1467,7 @@ function WebGLRenderer( parameters ) {
for
(
var
i
=
0
,
l
=
children
.
length
;
i
<
l
;
i
++
)
{
projectObject
(
children
[
i
],
camera
);
projectObject
(
children
[
i
],
camera
,
sortObjects
);
}
...
...
src/renderers/webgl/WebGLShadowMap.js
浏览文件 @
6e7b6483
...
...
@@ -388,7 +388,7 @@ function WebGLShadowMap( _renderer, _lights, _objects, capabilities ) {
if
(
object
.
visible
===
false
)
return
;
var
visible
=
(
object
.
layers
.
mask
&
camera
.
layers
.
mask
)
!==
0
;
var
visible
=
object
.
layers
.
test
(
camera
.
layers
)
;
if
(
visible
&&
(
object
.
isMesh
||
object
.
isLine
||
object
.
isPoints
)
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录