Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
fktz008
three.js
提交
bffdc03c
T
three.js
项目概览
fktz008
/
three.js
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
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,发现更多精彩内容 >>
提交
bffdc03c
编写于
12月 24, 2010
作者:
M
Mr.doob
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
`*.material`→ `*.materials`
上级
309fffe9
变更
36
展开全部
隐藏空白更改
内联
并排
Showing
36 changed file
with
819 addition
and
772 deletion
+819
-772
build/Three.js
build/Three.js
+186
-182
build/ThreeDebug.js
build/ThreeDebug.js
+187
-183
build/ThreeExtras.js
build/ThreeExtras.js
+231
-227
examples/geometry_birds.html
examples/geometry_birds.html
+1
-1
examples/geometry_cube.html
examples/geometry_cube.html
+1
-1
examples/interactive_cubes.html
examples/interactive_cubes.html
+1
-1
examples/interactive_voxelpainter.html
examples/interactive_voxelpainter.html
+3
-3
examples/webglrenderer2_sandbox.html
examples/webglrenderer2_sandbox.html
+10
-0
src/core/Face3.js
src/core/Face3.js
+3
-3
src/core/Face4.js
src/core/Face4.js
+3
-3
src/core/Geometry.js
src/core/Geometry.js
+17
-17
src/extras/GeometryUtils.js
src/extras/GeometryUtils.js
+1
-1
src/materials/LineBasicMaterial.js
src/materials/LineBasicMaterial.js
+7
-3
src/materials/MeshBasicMaterial.js
src/materials/MeshBasicMaterial.js
+7
-3
src/materials/MeshDepthMaterial.js
src/materials/MeshDepthMaterial.js
+7
-3
src/materials/MeshFaceMaterial.js
src/materials/MeshFaceMaterial.js
+6
-2
src/materials/MeshLambertMaterial.js
src/materials/MeshLambertMaterial.js
+6
-2
src/materials/MeshNormalMaterial.js
src/materials/MeshNormalMaterial.js
+8
-5
src/materials/MeshPhongMaterial.js
src/materials/MeshPhongMaterial.js
+7
-3
src/materials/MeshShaderMaterial.js
src/materials/MeshShaderMaterial.js
+7
-4
src/materials/ParticleBasicMaterial.js
src/materials/ParticleBasicMaterial.js
+6
-2
src/materials/ParticleCircleMaterial.js
src/materials/ParticleCircleMaterial.js
+6
-2
src/materials/ParticleDOMMaterial.js
src/materials/ParticleDOMMaterial.js
+7
-2
src/materials/Texture.js
src/materials/Texture.js
+6
-2
src/objects/Line.js
src/objects/Line.js
+2
-2
src/objects/Mesh.js
src/objects/Mesh.js
+3
-32
src/objects/Object3D.js
src/objects/Object3D.js
+8
-4
src/objects/Particle.js
src/objects/Particle.js
+3
-2
src/renderers/CanvasRenderer.js
src/renderers/CanvasRenderer.js
+9
-9
src/renderers/Projector.js
src/renderers/Projector.js
+10
-10
src/renderers/SVGRenderer.js
src/renderers/SVGRenderer.js
+12
-12
src/renderers/WebGLRenderer.js
src/renderers/WebGLRenderer.js
+11
-10
src/renderers/WebGLRenderer2.js
src/renderers/WebGLRenderer2.js
+33
-32
src/renderers/renderables/RenderableFace3.js
src/renderers/renderables/RenderableFace3.js
+2
-2
src/renderers/renderables/RenderableLine.js
src/renderers/renderables/RenderableLine.js
+1
-1
src/renderers/renderables/RenderableParticle.js
src/renderers/renderables/RenderableParticle.js
+1
-1
未找到文件。
build/Three.js
浏览文件 @
bffdc03c
此差异已折叠。
点击以展开。
build/ThreeDebug.js
浏览文件 @
bffdc03c
此差异已折叠。
点击以展开。
build/ThreeExtras.js
浏览文件 @
bffdc03c
此差异已折叠。
点击以展开。
examples/geometry_birds.html
浏览文件 @
bffdc03c
...
...
@@ -407,7 +407,7 @@
bird
=
birds[
i
];
color
=
bird.material
[0
].color;
color
=
bird.material
s[
0
].color;
color.r
=
color.g
=
color.b
=
(
500
-
bird.position.z
)
/
1000;
color.updateStyleString();
...
...
examples/geometry_cube.html
浏览文件 @
bffdc03c
...
...
@@ -54,7 +54,7 @@
info
.
innerHTML
=
'
Drag to spin the cube
'
;
container
.
appendChild
(
info
);
camera
=
new
THREE
.
Camera
(
70
,
window
.
innerWidth
/
window
.
innerHeight
,
1
,
1000
0
);
camera
=
new
THREE
.
Camera
(
70
,
window
.
innerWidth
/
window
.
innerHeight
,
1
,
1000
);
camera
.
position
.
y
=
150
;
camera
.
position
.
z
=
500
;
camera
.
target
.
position
.
y
=
150
;
...
...
examples/interactive_cubes.html
浏览文件 @
bffdc03c
...
...
@@ -93,7 +93,7 @@
if
(
intersects
.
length
>
0
)
{
intersects
[
0
].
object
.
material
[
0
].
color
.
setHex
(
Math
.
random
()
*
0xffffff
|
0x80000000
);
intersects
[
0
].
object
.
material
s
[
0
].
color
.
setHex
(
Math
.
random
()
*
0xffffff
);
var
particle
=
new
THREE
.
Particle
(
new
THREE
.
ParticleCircleMaterial
(
{
color
:
0x000000
}
)
);
particle
.
position
=
intersects
[
0
].
point
;
...
...
examples/interactive_voxelpainter.html
浏览文件 @
bffdc03c
...
...
@@ -205,14 +205,14 @@
if
(
intersects
[
0
].
face
!=
rollOveredFace
)
{
if
(
rollOveredFace
)
rollOveredFace
.
material
=
[];
if
(
rollOveredFace
)
rollOveredFace
.
material
s
=
[];
rollOveredFace
=
intersects
[
0
].
face
;
rollOveredFace
.
material
=
[
new
THREE
.
MeshBasicMaterial
(
{
color
:
0xff0000
,
opacity
:
0.5
}
)
];
rollOveredFace
.
material
s
=
[
new
THREE
.
MeshBasicMaterial
(
{
color
:
0xff0000
,
opacity
:
0.5
}
)
];
}
}
else
if
(
rollOveredFace
)
{
rollOveredFace
.
material
=
[];
rollOveredFace
.
material
s
=
[];
rollOveredFace
=
null
;
}
...
...
examples/webglrenderer2_sandbox.html
浏览文件 @
bffdc03c
...
...
@@ -158,6 +158,16 @@
];
for
(
var
i
=
0
,
l
=
geometry
.
faces
.
length
;
i
<
l
;
i
++
)
{
var
face
=
geometry
.
faces
[
i
];
if
(
Math
.
random
()
>
0.5
)
face
.
material
=
[
materials
[
Math
.
floor
(
Math
.
random
()
*
materials
.
length
)
]
];
}
materials
.
push
(
new
THREE
.
MeshFaceMaterial
()
);
for
(
var
i
=
0
;
i
<
5000
;
i
++
)
{
var
mesh
=
new
THREE
.
Mesh
(
geometry
,
materials
[
Math
.
floor
(
Math
.
random
()
*
materials
.
length
)
]
);
...
...
src/core/Face3.js
浏览文件 @
bffdc03c
...
...
@@ -2,7 +2,7 @@
* @author mr.doob / http://mrdoob.com/
*/
THREE
.
Face3
=
function
(
a
,
b
,
c
,
normal
,
material
)
{
THREE
.
Face3
=
function
(
a
,
b
,
c
,
normal
,
material
s
)
{
this
.
a
=
a
;
this
.
b
=
b
;
...
...
@@ -12,7 +12,7 @@ THREE.Face3 = function ( a, b, c, normal, material ) {
this
.
normal
=
normal
instanceof
THREE
.
Vector3
?
normal
:
new
THREE
.
Vector3
();
this
.
vertexNormals
=
normal
instanceof
Array
?
normal
:
[];
this
.
material
=
material
instanceof
Array
?
material
:
[
material
];
this
.
material
s
=
materials
instanceof
Array
?
materials
:
[
materials
];
};
...
...
@@ -24,4 +24,4 @@ THREE.Face3.prototype = {
}
}
}
;
src/core/Face4.js
浏览文件 @
bffdc03c
...
...
@@ -2,7 +2,7 @@
* @author mr.doob / http://mrdoob.com/
*/
THREE
.
Face4
=
function
(
a
,
b
,
c
,
d
,
normal
,
material
)
{
THREE
.
Face4
=
function
(
a
,
b
,
c
,
d
,
normal
,
material
s
)
{
this
.
a
=
a
;
this
.
b
=
b
;
...
...
@@ -13,7 +13,7 @@ THREE.Face4 = function ( a, b, c, d, normal, material ) {
this
.
normal
=
normal
instanceof
THREE
.
Vector3
?
normal
:
new
THREE
.
Vector3
();
this
.
vertexNormals
=
normal
instanceof
Array
?
normal
:
[];
this
.
material
=
material
instanceof
Array
?
material
:
[
material
];
this
.
material
s
=
materials
instanceof
Array
?
materials
:
[
materials
];
};
...
...
@@ -26,4 +26,4 @@ THREE.Face4.prototype = {
}
}
}
;
src/core/Geometry.js
浏览文件 @
bffdc03c
...
...
@@ -293,7 +293,7 @@ THREE.Geometry.prototype = {
if
(
this
.
vertices
.
length
>
0
)
{
this
.
b
b
ox
=
{
'
x
'
:
[
this
.
vertices
[
0
].
position
.
x
,
this
.
vertices
[
0
].
position
.
x
],
this
.
b
oundingB
ox
=
{
'
x
'
:
[
this
.
vertices
[
0
].
position
.
x
,
this
.
vertices
[
0
].
position
.
x
],
'
y
'
:
[
this
.
vertices
[
0
].
position
.
y
,
this
.
vertices
[
0
].
position
.
y
],
'
z
'
:
[
this
.
vertices
[
0
].
position
.
z
,
this
.
vertices
[
0
].
position
.
z
]
};
...
...
@@ -301,33 +301,33 @@ THREE.Geometry.prototype = {
vertex
=
this
.
vertices
[
v
];
if
(
vertex
.
position
.
x
<
this
.
b
b
ox
.
x
[
0
]
)
{
if
(
vertex
.
position
.
x
<
this
.
b
oundingB
ox
.
x
[
0
]
)
{
this
.
b
b
ox
.
x
[
0
]
=
vertex
.
position
.
x
;
this
.
b
oundingB
ox
.
x
[
0
]
=
vertex
.
position
.
x
;
}
else
if
(
vertex
.
position
.
x
>
this
.
b
b
ox
.
x
[
1
]
)
{
}
else
if
(
vertex
.
position
.
x
>
this
.
b
oundingB
ox
.
x
[
1
]
)
{
this
.
b
b
ox
.
x
[
1
]
=
vertex
.
position
.
x
;
this
.
b
oundingB
ox
.
x
[
1
]
=
vertex
.
position
.
x
;
}
if
(
vertex
.
position
.
y
<
this
.
b
b
ox
.
y
[
0
]
)
{
if
(
vertex
.
position
.
y
<
this
.
b
oundingB
ox
.
y
[
0
]
)
{
this
.
b
b
ox
.
y
[
0
]
=
vertex
.
position
.
y
;
this
.
b
oundingB
ox
.
y
[
0
]
=
vertex
.
position
.
y
;
}
else
if
(
vertex
.
position
.
y
>
this
.
b
b
ox
.
y
[
1
]
)
{
}
else
if
(
vertex
.
position
.
y
>
this
.
b
oundingB
ox
.
y
[
1
]
)
{
this
.
b
b
ox
.
y
[
1
]
=
vertex
.
position
.
y
;
this
.
b
oundingB
ox
.
y
[
1
]
=
vertex
.
position
.
y
;
}
if
(
vertex
.
position
.
z
<
this
.
b
b
ox
.
z
[
0
]
)
{
if
(
vertex
.
position
.
z
<
this
.
b
oundingB
ox
.
z
[
0
]
)
{
this
.
b
b
ox
.
z
[
0
]
=
vertex
.
position
.
z
;
this
.
b
oundingB
ox
.
z
[
0
]
=
vertex
.
position
.
z
;
}
else
if
(
vertex
.
position
.
z
>
this
.
b
b
ox
.
z
[
1
]
)
{
}
else
if
(
vertex
.
position
.
z
>
this
.
b
oundingB
ox
.
z
[
1
]
)
{
this
.
b
b
ox
.
z
[
1
]
=
vertex
.
position
.
z
;
this
.
b
oundingB
ox
.
z
[
1
]
=
vertex
.
position
.
z
;
}
...
...
@@ -385,9 +385,9 @@ THREE.Geometry.prototype = {
for
(
f
=
0
,
fl
=
this
.
faces
.
length
;
f
<
fl
;
f
++
)
{
face
=
this
.
faces
[
f
];
material
=
face
.
material
;
material
s
=
face
.
materials
;
mhash
=
materialHash
(
material
);
mhash
=
materialHash
(
material
s
);
if
(
hash_map
[
mhash
]
==
undefined
)
{
...
...
@@ -399,7 +399,7 @@ THREE.Geometry.prototype = {
if
(
this
.
geometryChunks
[
ghash
]
==
undefined
)
{
this
.
geometryChunks
[
ghash
]
=
{
'
faces
'
:
[],
'
material
'
:
material
,
'
vertices
'
:
0
};
this
.
geometryChunks
[
ghash
]
=
{
'
faces
'
:
[],
'
material
s
'
:
materials
,
'
vertices
'
:
0
};
}
...
...
@@ -412,7 +412,7 @@ THREE.Geometry.prototype = {
if
(
this
.
geometryChunks
[
ghash
]
==
undefined
)
{
this
.
geometryChunks
[
ghash
]
=
{
'
faces
'
:
[],
'
material
'
:
material
,
'
vertices
'
:
0
};
this
.
geometryChunks
[
ghash
]
=
{
'
faces
'
:
[],
'
material
s
'
:
materials
,
'
vertices
'
:
0
};
}
...
...
src/extras/GeometryUtils.js
浏览文件 @
bffdc03c
...
...
@@ -53,7 +53,7 @@ var GeometryUtils = {
}
faceCopy
.
material
=
face
.
material
.
slice
();
faceCopy
.
material
s
=
face
.
materials
.
slice
();
faces1
.
push
(
faceCopy
);
...
...
src/materials/LineBasicMaterial.js
浏览文件 @
bffdc03c
...
...
@@ -28,7 +28,11 @@ THREE.LineBasicMaterial = function ( parameters ) {
if
(
parameters
.
linejoin
!==
undefined
)
this
.
linejoin
=
parameters
.
linejoin
;
}
this
.
toString
=
function
()
{
};
THREE
.
LineBasicMaterial
.
prototype
=
{
toString
:
function
()
{
return
'
THREE.LineBasicMaterial (<br/>
'
+
'
color:
'
+
this
.
color
+
'
<br/>
'
+
...
...
@@ -39,6 +43,6 @@ THREE.LineBasicMaterial = function ( parameters ) {
'
linejoin:
'
+
this
.
linejoin
+
'
<br/>
'
+
'
)
'
;
}
;
}
}
;
}
src/materials/MeshBasicMaterial.js
浏览文件 @
bffdc03c
...
...
@@ -65,7 +65,11 @@ THREE.MeshBasicMaterial = function ( parameters ) {
}
this
.
toString
=
function
()
{
};
THREE
.
MeshBasicMaterial
.
prototype
=
{
toString
:
function
()
{
return
'
THREE.MeshBasicMaterial (<br/>
'
+
'
id:
'
+
this
.
id
+
'
<br/>
'
+
...
...
@@ -86,8 +90,8 @@ THREE.MeshBasicMaterial = function ( parameters ) {
'
wireframe_linejoin:
'
+
this
.
wireframe_linejoin
+
'
<br/>
'
+
'
)
'
;
}
;
}
}
}
;
THREE
.
MeshBasicMaterialCounter
=
{
value
:
0
};
src/materials/MeshDepthMaterial.js
浏览文件 @
bffdc03c
...
...
@@ -36,10 +36,14 @@ THREE.MeshDepthMaterial = function ( parameters ) {
this
.
__farPlusNear
=
this
.
far
+
this
.
near
;
this
.
__farMinusNear
=
this
.
far
-
this
.
near
;
this
.
toString
=
function
()
{
};
THREE
.
MeshDepthMaterial
.
prototype
=
{
toString
:
function
()
{
return
'
THREE.MeshDepthMaterial
'
;
}
;
}
}
}
;
src/materials/MeshFaceMaterial.js
浏览文件 @
bffdc03c
...
...
@@ -4,10 +4,14 @@
THREE
.
MeshFaceMaterial
=
function
()
{
this
.
toString
=
function
()
{
};
THREE
.
MeshFaceMaterial
.
prototype
=
{
toString
:
function
()
{
return
'
THREE.MeshFaceMaterial
'
;
}
;
}
};
src/materials/MeshLambertMaterial.js
浏览文件 @
bffdc03c
...
...
@@ -65,7 +65,11 @@ THREE.MeshLambertMaterial = function ( parameters ) {
}
this
.
toString
=
function
()
{
};
THREE
.
MeshLambertMaterial
.
prototype
=
{
toString
:
function
()
{
return
'
THREE.MeshLambertMaterial (<br/>
'
+
'
id:
'
+
this
.
id
+
'
<br/>
'
+
...
...
@@ -87,7 +91,7 @@ THREE.MeshLambertMaterial = function ( parameters ) {
'
wireframe_linejoin:
'
+
this
.
wireframe_linejoin
+
'
<br/>
'
+
'
)
'
;
}
;
}
};
...
...
src/materials/MeshNormalMaterial.js
浏览文件 @
bffdc03c
...
...
@@ -14,19 +14,22 @@ THREE.MeshNormalMaterial = function ( parameters ) {
this
.
shading
=
THREE
.
FlatShading
;
this
.
blending
=
THREE
.
NormalBlending
;
if
(
parameters
)
{
if
(
parameters
.
opacity
!==
undefined
)
this
.
opacity
=
parameters
.
opacity
;
if
(
parameters
.
shading
!==
undefined
)
this
.
shading
=
parameters
.
shading
;
if
(
parameters
.
shading
!==
undefined
)
this
.
shading
=
parameters
.
shading
;
if
(
parameters
.
blending
!==
undefined
)
this
.
blending
=
parameters
.
blending
;
}
this
.
toString
=
function
()
{
};
THREE
.
MeshNormalMaterial
.
prototype
=
{
toString
:
function
()
{
return
'
THREE.MeshNormalMaterial
'
;
}
;
}
}
}
;
src/materials/MeshPhongMaterial.js
浏览文件 @
bffdc03c
...
...
@@ -80,7 +80,11 @@ THREE.MeshPhongMaterial = function ( parameters ) {
}
this
.
toString
=
function
()
{
};
THREE
.
MeshPhongMaterial
.
prototype
=
{
toString
:
function
()
{
return
'
THREE.MeshPhongMaterial (<br/>
'
+
'
id:
'
+
this
.
id
+
'
<br/>
'
+
...
...
@@ -104,9 +108,9 @@ THREE.MeshPhongMaterial = function ( parameters ) {
'
wireframe_linewidth:
'
+
this
.
wireframe_linewidth
+
'
<br/>
'
+
'
wireframe_linecap:
'
+
this
.
wireframe_linecap
+
'
<br/>
'
+
'
wireframe_linejoin:
'
+
this
.
wireframe_linejoin
+
'
<br/>
'
+
+
'
)
'
;
'
)
'
;
}
;
}
};
...
...
src/materials/MeshShaderMaterial.js
浏览文件 @
bffdc03c
...
...
@@ -5,7 +5,6 @@
* fragment_shader: <string>,
* vertex_shader: <string>,
* uniforms: { "parameter1": { type: "f", value: 1.0 }, "parameter2": { type: "i" value2: 2 } },
* shading: THREE.SmoothShading,
* blending: THREE.NormalBlending,
* wireframe: <boolean>,
...
...
@@ -47,7 +46,11 @@ THREE.MeshShaderMaterial = function ( parameters ) {
}
this
.
toString
=
function
()
{
};
THREE
.
MeshShaderMaterial
.
prototype
=
{
toString
:
function
()
{
return
'
THREE.MeshShaderMaterial (<br/>
'
+
'
id:
'
+
this
.
id
+
'
<br/>
'
+
...
...
@@ -59,8 +62,8 @@ THREE.MeshShaderMaterial = function ( parameters ) {
'
wireframe_linejoin:
'
+
this
.
wireframe_linejoin
+
'
<br/>
'
+
'
)
'
;
}
;
}
}
}
;
THREE
.
MeshShaderMaterialCounter
=
{
value
:
0
};
src/materials/ParticleBasicMaterial.js
浏览文件 @
bffdc03c
...
...
@@ -27,7 +27,11 @@ THREE.ParticleBasicMaterial = function ( parameters ) {
}
this
.
toString
=
function
()
{
};
THREE
.
ParticleBasicMaterial
.
prototype
=
{
toString
:
function
()
{
return
'
THREE.ParticleBasicMaterial (<br/>
'
+
'
color:
'
+
this
.
color
+
'
<br/>
'
+
...
...
@@ -36,6 +40,6 @@ THREE.ParticleBasicMaterial = function ( parameters ) {
'
blending:
'
+
this
.
blending
+
'
<br/>
'
+
'
)
'
;
}
;
}
};
src/materials/ParticleCircleMaterial.js
浏览文件 @
bffdc03c
...
...
@@ -22,7 +22,11 @@ THREE.ParticleCircleMaterial = function ( parameters ) {
}
this
.
toString
=
function
()
{
};
THREE
.
ParticleCircleMaterial
.
prototype
=
{
toString
:
function
()
{
return
'
THREE.ParticleCircleMaterial (<br/>
'
+
'
color:
'
+
this
.
color
+
'
<br/>
'
+
...
...
@@ -30,6 +34,6 @@ THREE.ParticleCircleMaterial = function ( parameters ) {
'
blending:
'
+
this
.
blending
+
'
<br/>
'
+
'
)
'
;
}
;
}
};
src/materials/ParticleDOMMaterial.js
浏览文件 @
bffdc03c
...
...
@@ -6,10 +6,15 @@ THREE.ParticleDOMMaterial = function ( domElement ) {
this
.
domElement
=
domElement
;
this
.
toString
=
function
()
{
};
THREE
.
ParticleDOMMaterial
.
prototype
=
{
toString
:
function
()
{
return
'
THREE.ParticleDOMMaterial ( domElement:
'
+
this
.
domElement
+
'
)
'
;
}
;
}
};
src/materials/Texture.js
浏览文件 @
bffdc03c
...
...
@@ -15,7 +15,11 @@ THREE.Texture = function ( image, mapping, wrap_s, wrap_t, mag_filter, min_filte
this
.
mag_filter
=
mag_filter
!==
undefined
?
mag_filter
:
THREE
.
LinearFilter
;
this
.
min_filter
=
min_filter
!==
undefined
?
min_filter
:
THREE
.
LinearMipMapLinearFilter
;
this
.
toString
=
function
()
{
};
THREE
.
Texture
.
prototype
=
{
toString
:
function
()
{
return
'
THREE.Texture (<br/>
'
+
'
image:
'
+
this
.
image
+
'
<br/>
'
+
...
...
@@ -25,7 +29,7 @@ THREE.Texture = function ( image, mapping, wrap_s, wrap_t, mag_filter, min_filte
'
min_filter:
'
+
this
.
min_filter
+
'
<br/>
'
+
'
)
'
;
}
;
}
};
...
...
src/objects/Line.js
浏览文件 @
bffdc03c
...
...
@@ -2,12 +2,12 @@
* @author mr.doob / http://mrdoob.com/
*/
THREE
.
Line
=
function
(
geometry
,
material
)
{
THREE
.
Line
=
function
(
geometry
,
material
s
)
{
THREE
.
Object3D
.
call
(
this
);
this
.
geometry
=
geometry
;
this
.
material
=
material
instanceof
Array
?
material
:
[
material
];
this
.
material
s
=
materials
instanceof
Array
?
materials
:
[
materials
];
};
...
...
src/objects/Mesh.js
浏览文件 @
bffdc03c
...
...
@@ -3,50 +3,21 @@
* @author alteredq / http://alteredqualia.com/
*/
THREE
.
Mesh
=
function
(
geometry
,
material
/*, normUVs*/
)
{
THREE
.
Mesh
=
function
(
geometry
,
material
s
)
{
THREE
.
Object3D
.
call
(
this
);
this
.
geometry
=
geometry
;
this
.
material
=
material
instanceof
Array
?
material
:
[
material
];
this
.
material
s
=
materials
instanceof
Array
?
materials
:
[
materials
];
this
.
flipSided
=
false
;
this
.
doubleSided
=
false
;
this
.
overdraw
=
false
;
this
.
overdraw
=
false
;
// TODO: Move to material?
// if ( normUVs ) this.normalizeUVs();
// this.geometry.boundingBox ||this.geometry.computeBoundingBox();
this
.
geometry
.
boundingSphere
||
this
.
geometry
.
computeBoundingSphere
();
};
THREE
.
Mesh
.
prototype
=
new
THREE
.
Object3D
();
THREE
.
Mesh
.
prototype
.
constructor
=
THREE
.
Mesh
;
/*
TODO: This doesn't completely fix the issue. Needs to be handled directly in the CanvasRenderer
THREE.Mesh.prototype.normalizeUVs = function () {
var i, il, j, jl, uvs;
for ( i = 0, il = this.geometry.uvs.length; i < il; i++ ) {
uvs = this.geometry.uvs[ i ];
for ( j = 0, jl = uvs.length; j < jl; j++ ) {
// texture repeat
// (WebGL does this by default but canvas renderer needs to do it explicitly)
if( uvs[ j ].u != 1.0 ) uvs[ j ].u = uvs[ j ].u - Math.floor( uvs[ j ].u );
if( uvs[ j ].v != 1.0 ) uvs[ j ].v = uvs[ j ].v - Math.floor( uvs[ j ].v );
}
}
};
*/
src/objects/Object3D.js
浏览文件 @
bffdc03c
...
...
@@ -2,7 +2,7 @@
* @author mr.doob / http://mrdoob.com/
*/
THREE
.
Object3D
=
function
(
material
)
{
THREE
.
Object3D
=
function
()
{
this
.
id
=
THREE
.
Object3DCounter
.
value
++
;
...
...
@@ -17,10 +17,14 @@ THREE.Object3D = function ( material ) {
this
.
screen
=
new
THREE
.
Vector3
();
this
.
visible
=
true
;
this
.
autoUpdateMatrix
=
true
;
this
.
visible
=
true
;
};
THREE
.
Object3D
.
prototype
=
{
this
.
updateMatrix
=
function
()
{
updateMatrix
:
function
()
{
this
.
matrixPosition
=
THREE
.
Matrix4
.
translationMatrix
(
this
.
position
.
x
,
this
.
position
.
y
,
this
.
position
.
z
);
...
...
@@ -34,7 +38,7 @@ THREE.Object3D = function ( material ) {
this
.
matrix
.
multiplySelf
(
this
.
rotationMatrix
);
this
.
matrix
.
multiplySelf
(
this
.
scaleMatrix
);
}
;
}
};
...
...
src/objects/Particle.js
浏览文件 @
bffdc03c
...
...
@@ -2,11 +2,12 @@
* @author mr.doob / http://mrdoob.com/
*/
THREE
.
Particle
=
function
(
material
)
{
THREE
.
Particle
=
function
(
material
s
)
{
THREE
.
Object3D
.
call
(
this
);
this
.
material
=
material
instanceof
Array
?
material
:
[
material
];
this
.
materials
=
materials
instanceof
Array
?
materials
:
[
materials
];
this
.
autoUpdateMatrix
=
false
;
};
...
...
src/renderers/CanvasRenderer.js
浏览文件 @
bffdc03c
...
...
@@ -110,7 +110,7 @@ THREE.CanvasRenderer = function () {
_renderList
=
_projector
.
projectScene
(
scene
,
camera
,
this
.
sortElements
);
/* DEBUG
_context.fillStyle = 'rgba(
0, 255, 255, 0.5
)';
_context.fillStyle = 'rgba(
0, 255, 255, 0.5
)';
_context.fillRect( _clipRect.getX(), _clipRect.getY(), _clipRect.getWidth(), _clipRect.getHeight() );
*/
...
...
@@ -133,9 +133,9 @@ THREE.CanvasRenderer = function () {
_v1
=
element
;
_v1
.
x
*=
_canvasWidthHalf
;
_v1
.
y
*=
_canvasHeightHalf
;
for
(
m
=
0
,
ml
=
element
.
material
.
length
;
m
<
ml
;
m
++
)
{
for
(
m
=
0
,
ml
=
element
.
material
s
.
length
;
m
<
ml
;
m
++
)
{
renderParticle
(
_v1
,
element
,
element
.
material
[
m
],
scene
);
renderParticle
(
_v1
,
element
,
element
.
material
s
[
m
],
scene
);
}
...
...
@@ -151,11 +151,11 @@ THREE.CanvasRenderer = function () {
if
(
_clipRect
.
instersects
(
_bboxRect
)
)
{
m
=
0
;
ml
=
element
.
material
.
length
;
m
=
0
;
ml
=
element
.
material
s
.
length
;
while
(
m
<
ml
)
{
renderLine
(
_v1
,
_v2
,
element
,
element
.
material
[
m
++
],
scene
);
renderLine
(
_v1
,
_v2
,
element
,
element
.
material
s
[
m
++
],
scene
);
}
...
...
@@ -184,19 +184,19 @@ THREE.CanvasRenderer = function () {
if
(
_clipRect
.
instersects
(
_bboxRect
)
)
{
m
=
0
;
ml
=
element
.
meshMaterial
.
length
;
m
=
0
;
ml
=
element
.
meshMaterial
s
.
length
;
while
(
m
<
ml
)
{
material
=
element
.
meshMaterial
[
m
++
];
material
=
element
.
meshMaterial
s
[
m
++
];
if
(
material
instanceof
THREE
.
MeshFaceMaterial
)
{
fm
=
0
;
fml
=
element
.
faceMaterial
.
length
;
fm
=
0
;
fml
=
element
.
faceMaterial
s
.
length
;
while
(
fm
<
fml
)
{
material
=
element
.
faceMaterial
[
fm
++
];
material
=
element
.
faceMaterial
s
[
fm
++
];
material
&&
renderFace3
(
_v1
,
_v2
,
_v3
,
element
,
material
,
scene
);
}
...
...
src/renderers/Projector.js
浏览文件 @
bffdc03c
...
...
@@ -66,7 +66,7 @@ THREE.Projector = function() {
var
renderList
=
[],
o
,
ol
,
v
,
vl
,
f
,
fl
,
n
,
nl
,
objects
,
object
,
objectMatrix
,
objectRotationMatrix
,
objectMaterial
,
objectOverdraw
,
objectMatrix
,
objectRotationMatrix
,
objectMaterial
s
,
objectOverdraw
,
geometry
,
vertices
,
vertex
,
vertexPositionScreen
,
faces
,
face
,
faceVertexNormals
,
normal
,
v1
,
v2
,
v3
,
v4
;
...
...
@@ -88,7 +88,7 @@ THREE.Projector = function() {
objectMatrix
=
object
.
matrix
;
objectRotationMatrix
=
object
.
rotationMatrix
;
objectMaterial
=
object
.
material
;
objectMaterial
s
=
object
.
materials
;
objectOverdraw
=
object
.
overdraw
;
if
(
object
instanceof
THREE
.
Mesh
)
{
...
...
@@ -169,8 +169,8 @@ THREE.Projector = function() {
_face3
.
z
=
_face3
.
centroidScreen
.
z
;
_face3
.
meshMaterial
=
objectMaterial
;
_face3
.
faceMaterial
=
face
.
material
;
_face3
.
meshMaterial
s
=
objectMaterials
;
_face3
.
faceMaterial
s
=
face
.
materials
;
_face3
.
overdraw
=
objectOverdraw
;
if
(
object
.
geometry
.
uvs
[
f
]
)
{
...
...
@@ -224,8 +224,8 @@ THREE.Projector = function() {
_face3
.
z
=
_face3
.
centroidScreen
.
z
;
_face3
.
meshMaterial
=
objectMaterial
;
_face3
.
faceMaterial
=
face
.
material
;
_face3
.
meshMaterial
s
=
objectMaterials
;
_face3
.
faceMaterial
s
=
face
.
materials
;
_face3
.
overdraw
=
objectOverdraw
;
if
(
object
.
geometry
.
uvs
[
f
]
)
{
...
...
@@ -260,8 +260,8 @@ THREE.Projector = function() {
_face32
.
z
=
_face32
.
centroidScreen
.
z
;
_face32
.
meshMaterial
=
objectMaterial
;
_face32
.
faceMaterial
=
face
.
material
;
_face32
.
meshMaterial
s
=
objectMaterials
;
_face32
.
faceMaterial
s
=
face
.
materials
;
_face32
.
overdraw
=
objectOverdraw
;
if
(
object
.
geometry
.
uvs
[
f
]
)
{
...
...
@@ -318,7 +318,7 @@ THREE.Projector = function() {
_line
.
z
=
Math
.
max
(
_clippedVertex1PositionScreen
.
z
,
_clippedVertex2PositionScreen
.
z
);
_line
.
material
=
object
.
material
;
_line
.
material
s
=
object
.
materials
;
renderList
.
push
(
_line
);
...
...
@@ -346,7 +346,7 @@ THREE.Projector = function() {
_particle
.
scale
.
x
=
object
.
scale
.
x
*
Math
.
abs
(
_particle
.
x
-
(
_vector4
.
x
+
camera
.
projectionMatrix
.
n11
)
/
(
_vector4
.
w
+
camera
.
projectionMatrix
.
n14
)
);
_particle
.
scale
.
y
=
object
.
scale
.
y
*
Math
.
abs
(
_particle
.
y
-
(
_vector4
.
y
+
camera
.
projectionMatrix
.
n22
)
/
(
_vector4
.
w
+
camera
.
projectionMatrix
.
n24
)
);
_particle
.
material
=
object
.
material
;
_particle
.
material
s
=
object
.
materials
;
renderList
.
push
(
_particle
);
...
...
src/renderers/SVGRenderer.js
浏览文件 @
bffdc03c
...
...
@@ -101,9 +101,9 @@ THREE.SVGRenderer = function () {
_v1
=
element
;
_v1
.
x
*=
_svgWidthHalf
;
_v1
.
y
*=
-
_svgHeightHalf
;
for
(
m
=
0
,
ml
=
element
.
material
.
length
;
m
<
ml
;
m
++
)
{
for
(
m
=
0
,
ml
=
element
.
material
s
.
length
;
m
<
ml
;
m
++
)
{
material
=
element
.
material
[
m
];
material
=
element
.
material
s
[
m
];
material
&&
renderParticle
(
_v1
,
element
,
material
,
scene
);
}
...
...
@@ -124,11 +124,11 @@ THREE.SVGRenderer = function () {
}
m
=
0
;
ml
=
element
.
material
.
length
;
m
=
0
;
ml
=
element
.
material
s
.
length
;
while
(
m
<
ml
)
{
material
=
element
.
material
[
m
++
];
material
=
element
.
material
s
[
m
++
];
material
&&
renderLine
(
_v1
,
_v2
,
element
,
material
,
scene
);
}
...
...
@@ -151,19 +151,19 @@ THREE.SVGRenderer = function () {
}
m
=
0
;
ml
=
element
.
meshMaterial
.
length
;
m
=
0
;
ml
=
element
.
meshMaterial
s
.
length
;
while
(
m
<
ml
)
{
material
=
element
.
meshMaterial
[
m
++
];
material
=
element
.
meshMaterial
s
[
m
++
];
if
(
material
instanceof
THREE
.
MeshFaceMaterial
)
{
fm
=
0
;
fml
=
element
.
faceMaterial
.
length
;
fm
=
0
;
fml
=
element
.
faceMaterial
s
.
length
;
while
(
fm
<
fml
)
{
material
=
element
.
faceMaterial
[
fm
++
];
material
=
element
.
faceMaterial
s
[
fm
++
];
material
&&
renderFace3
(
_v1
,
_v2
,
_v3
,
element
,
material
,
scene
);
}
...
...
@@ -196,19 +196,19 @@ THREE.SVGRenderer = function () {
}
m
=
0
;
ml
=
element
.
meshMaterial
.
length
;
m
=
0
;
ml
=
element
.
meshMaterial
s
.
length
;
while
(
m
<
ml
)
{
material
=
element
.
meshMaterial
[
m
++
];
material
=
element
.
meshMaterial
s
[
m
++
];
if
(
material
instanceof
THREE
.
MeshFaceMaterial
)
{
fm
=
0
;
fml
=
element
.
faceMaterial
.
length
;
fm
=
0
;
fml
=
element
.
faceMaterial
s
.
length
;
while
(
fm
<
fml
)
{
material
=
element
.
faceMaterial
[
fm
++
];
material
=
element
.
faceMaterial
s
[
fm
++
];
material
&&
renderFace4
(
_v1
,
_v2
,
_v3
,
_v4
,
element
,
material
,
scene
);
}
...
...
src/renderers/WebGLRenderer.js
浏览文件 @
bffdc03c
...
...
@@ -606,15 +606,16 @@ THREE.WebGLRenderer = function ( scene, antialias ) {
var
i
,
l
,
m
,
ml
,
material
,
meshMaterial
;
for
(
m
=
0
,
ml
=
object
.
material
.
length
;
m
<
ml
;
m
++
)
{
for
(
m
=
0
,
ml
=
object
.
material
s
.
length
;
m
<
ml
;
m
++
)
{
meshMaterial
=
object
.
material
[
m
];
meshMaterial
=
object
.
material
s
[
m
];
if
(
meshMaterial
instanceof
THREE
.
MeshFaceMaterial
)
{
for
(
i
=
0
,
l
=
geometryChunk
.
material
.
length
;
i
<
l
;
i
++
)
{
for
(
i
=
0
,
l
=
geometryChunk
.
materials
.
length
;
i
<
l
;
i
++
)
{
material
=
geometryChunk
.
materials
[
i
];
material
=
geometryChunk
.
material
[
i
];
if
(
material
&&
material
.
blending
==
blending
&&
(
material
.
opacity
<
1.0
==
transparent
)
)
{
this
.
setBlending
(
material
.
blending
);
...
...
@@ -655,7 +656,7 @@ THREE.WebGLRenderer = function ( scene, antialias ) {
}
camera
.
autoUpdateMatrix
&&
camera
.
updateMatrix
();
_viewMatrixArray
.
set
(
camera
.
matrix
.
flatten
()
);
_projectionMatrixArray
.
set
(
camera
.
projectionMatrix
.
flatten
()
);
...
...
@@ -958,7 +959,7 @@ THREE.WebGLRenderer = function ( scene, antialias ) {
"
uniform vec3 fogColor;
"
,
"
uniform float fogDensity;
"
,
"
#endif
"
,
"
uniform int pointLightNumber;
"
,
"
uniform int directionalLightNumber;
"
,
...
...
@@ -1539,15 +1540,15 @@ THREE.WebGLRenderer = function ( scene, antialias ) {
var
m
,
ml
,
i
,
l
,
needsSmoothNormals
=
false
;
for
(
m
=
0
,
ml
=
object
.
material
.
length
;
m
<
ml
;
m
++
)
{
for
(
m
=
0
,
ml
=
object
.
material
s
.
length
;
m
<
ml
;
m
++
)
{
meshMaterial
=
object
.
material
[
m
];
meshMaterial
=
object
.
material
s
[
m
];
if
(
meshMaterial
instanceof
THREE
.
MeshFaceMaterial
)
{
for
(
i
=
0
,
l
=
geometryChunk
.
material
.
length
;
i
<
l
;
i
++
)
{
for
(
i
=
0
,
l
=
geometryChunk
.
material
s
.
length
;
i
<
l
;
i
++
)
{
if
(
materialNeedsSmoothNormals
(
geometryChunk
.
material
[
i
]
)
)
{
if
(
materialNeedsSmoothNormals
(
geometryChunk
.
material
s
[
i
]
)
)
{
needsSmoothNormals
=
true
;
break
;
...
...
src/renderers/WebGLRenderer2.js
浏览文件 @
bffdc03c
...
...
@@ -101,7 +101,7 @@ THREE.WebGLRenderer2 = function ( antialias ) {
function
renderObject
(
object
)
{
var
geometry
,
material
,
m
,
nl
,
program
,
attributes
;
program
,
uniforms
,
attributes
;
object
.
autoUpdateMatrix
&&
object
.
updateMatrix
();
...
...
@@ -125,9 +125,9 @@ THREE.WebGLRenderer2 = function ( antialias ) {
}
for
(
m
=
0
,
ml
=
object
.
material
.
length
;
m
<
ml
;
m
++
)
{
for
(
m
=
0
,
ml
=
object
.
material
s
.
length
;
m
<
ml
;
m
++
)
{
material
=
object
.
material
[
m
];
material
=
object
.
material
s
[
m
];
if
(
material
.
__webglProgram
==
undefined
)
{
...
...
@@ -136,6 +136,7 @@ THREE.WebGLRenderer2 = function ( antialias ) {
}
program
=
material
.
__webglProgram
;
uniforms
=
program
.
uniforms
;
attributes
=
program
.
attributes
;
if
(
program
!=
_currentProgram
)
{
...
...
@@ -148,54 +149,54 @@ THREE.WebGLRenderer2 = function ( antialias ) {
if
(
scene
.
fog
)
{
_gl
.
uniform1f
(
program
.
uniforms
.
fog
,
1
);
_gl
.
uniform1f
(
program
.
uniforms
.
fogDensity
,
scene
.
fog
.
density
);
_gl
.
uniform3f
(
program
.
uniforms
.
fogColor
,
scene
.
fog
.
color
.
r
,
scene
.
fog
.
color
.
g
,
scene
.
fog
.
color
.
b
);
_gl
.
uniform1f
(
uniforms
.
fog
,
1
);
_gl
.
uniform1f
(
uniforms
.
fogDensity
,
scene
.
fog
.
density
);
_gl
.
uniform3f
(
uniforms
.
fogColor
,
scene
.
fog
.
color
.
r
,
scene
.
fog
.
color
.
g
,
scene
.
fog
.
color
.
b
);
}
else
{
_gl
.
uniform1f
(
program
.
uniforms
.
fog
,
0
);
_gl
.
uniform1f
(
uniforms
.
fog
,
0
);
}
}
// material
// materials
if
(
material
instanceof
THREE
.
MeshBasicMaterial
||
material
instanceof
THREE
.
MeshLambertMaterial
||
material
instanceof
THREE
.
MeshPhongMaterial
)
{
if
(
material
instanceof
THREE
.
MeshBasicMaterial
||
material
instanceof
THREE
.
MeshLambertMaterial
||
material
instanceof
THREE
.
MeshPhongMaterial
)
{
_gl
.
uniform3f
(
uniforms
.
mColor
,
material
.
color
.
r
,
material
.
color
.
g
,
material
.
color
.
b
);
_gl
.
uniform1f
(
uniforms
.
mOpacity
,
material
.
opacity
);
_gl
.
uniform3f
(
program
.
uniforms
.
mColor
,
material
.
color
.
r
,
material
.
color
.
g
,
material
.
color
.
b
);
_gl
.
uniform1f
(
program
.
uniforms
.
mOpacity
,
material
.
opacity
);
if
(
material
.
map
)
{
if
(
material
.
map
)
{
setTexture
(
material
.
map
,
0
);
_gl
.
uniform1i
(
uniforms
.
tMap
,
0
);
setTexture
(
material
.
map
,
0
);
_gl
.
uniform1i
(
program
.
uniforms
.
tMap
,
0
);
}
}
}
else
if
(
material
instanceof
THREE
.
MeshNormalMaterial
)
{
}
else
if
(
material
instanceof
THREE
.
MeshNormalMaterial
)
{
_gl
.
uniform1f
(
uniforms
.
mOpacity
,
material
.
opacity
);
_gl
.
uniform1f
(
program
.
uniforms
.
mOpacity
,
material
.
opacity
);
}
else
if
(
material
instanceof
THREE
.
MeshDepthMaterial
)
{
}
else
if
(
material
instanceof
THREE
.
MeshDepthMaterial
)
{
_gl
.
uniform1f
(
uniforms
.
m2Near
,
material
.
__2near
);
_gl
.
uniform1f
(
uniforms
.
mFarPlusNear
,
material
.
__farPlusNear
);
_gl
.
uniform1f
(
uniforms
.
mFarMinusNear
,
material
.
__farMinusNear
);
_gl
.
uniform1f
(
uniforms
.
mOpacity
,
material
.
opacity
);
_gl
.
uniform1f
(
program
.
uniforms
.
m2Near
,
material
.
__2near
);
_gl
.
uniform1f
(
program
.
uniforms
.
mFarPlusNear
,
material
.
__farPlusNear
);
_gl
.
uniform1f
(
program
.
uniforms
.
mFarMinusNear
,
material
.
__farMinusNear
);
_gl
.
uniform1f
(
program
.
uniforms
.
mOpacity
,
material
.
opacity
);
}
}
_gl
.
uniform3f
(
uniforms
.
cameraPosition
,
camera
.
position
.
x
,
camera
.
position
.
y
,
camera
.
position
.
z
);
_gl
.
uniformMatrix4fv
(
uniforms
.
viewMatrix
,
false
,
_viewMatrixArray
);
_gl
.
uniformMatrix4fv
(
uniforms
.
projectionMatrix
,
false
,
_projectionMatrixArray
);
_gl
.
uniform3f
(
program
.
uniforms
.
cameraPosition
,
camera
.
position
.
x
,
camera
.
position
.
y
,
camera
.
position
.
z
);
}
_gl
.
uniformMatrix4fv
(
program
.
uniforms
.
viewMatrix
,
false
,
_viewMatrixArray
);
_gl
.
uniformMatrix4fv
(
program
.
uniforms
.
projectionMatrix
,
false
,
_projectionMatrixArray
);
_gl
.
uniformMatrix4fv
(
program
.
uniforms
.
objectMatrix
,
false
,
_objectMatrixArray
);
_gl
.
uniformMatrix4fv
(
program
.
uniforms
.
modelViewMatrix
,
false
,
_modelViewMatrixArray
);
_gl
.
uniformMatrix3fv
(
program
.
uniforms
.
normalMatrix
,
false
,
_normalMatrixArray
);
_gl
.
uniformMatrix4fv
(
uniforms
.
objectMatrix
,
false
,
_objectMatrixArray
);
_gl
.
uniformMatrix4fv
(
uniforms
.
modelViewMatrix
,
false
,
_modelViewMatrixArray
);
_gl
.
uniformMatrix3fv
(
uniforms
.
normalMatrix
,
false
,
_normalMatrixArray
);
var
buffer
,
buffers
=
geometry
.
__webglBuffers
;
...
...
src/renderers/renderables/RenderableFace3.js
浏览文件 @
bffdc03c
...
...
@@ -16,8 +16,8 @@ THREE.RenderableFace3 = function () {
this
.
normalWorld
=
new
THREE
.
Vector3
();
this
.
vertexNormalsWorld
=
[];
this
.
meshMaterial
=
null
;
this
.
faceMaterial
=
null
;
this
.
meshMaterial
s
=
null
;
this
.
faceMaterial
s
=
null
;
this
.
overdraw
=
false
;
this
.
uvs
=
[
null
,
null
,
null
];
...
...
src/renderers/renderables/RenderableLine.js
浏览文件 @
bffdc03c
...
...
@@ -9,6 +9,6 @@ THREE.RenderableLine = function () {
this
.
v1
=
new
THREE
.
Vertex
();
this
.
v2
=
new
THREE
.
Vertex
();
this
.
material
=
null
;
this
.
material
s
=
null
;
};
src/renderers/renderables/RenderableParticle.js
浏览文件 @
bffdc03c
...
...
@@ -11,6 +11,6 @@ THREE.RenderableParticle = function () {
this
.
rotation
=
null
;
this
.
scale
=
new
THREE
.
Vector2
();
this
.
material
=
null
;
this
.
material
s
=
null
;
};
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录