Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
5c8a0896
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,发现更多精彩内容 >>
提交
5c8a0896
编写于
12月 29, 2010
作者:
S
Szymon Nowak
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fixed implied globals and added few missing semicolons
上级
05dbe81d
变更
22
隐藏空白更改
内联
并排
Showing
22 changed file
with
168 addition
and
167 deletion
+168
-167
src/core/Color.js
src/core/Color.js
+2
-2
src/core/Geometry.js
src/core/Geometry.js
+3
-3
src/core/Matrix3.js
src/core/Matrix3.js
+1
-1
src/core/UV.js
src/core/UV.js
+1
-1
src/core/Vertex.js
src/core/Vertex.js
+1
-1
src/extras/GeometryUtils.js
src/extras/GeometryUtils.js
+3
-3
src/extras/ImageUtils.js
src/extras/ImageUtils.js
+2
-2
src/extras/SceneUtils.js
src/extras/SceneUtils.js
+19
-19
src/extras/primitives/Cube.js
src/extras/primitives/Cube.js
+3
-3
src/extras/primitives/Cylinder.js
src/extras/primitives/Cylinder.js
+1
-1
src/extras/primitives/Plane.js
src/extras/primitives/Plane.js
+1
-1
src/extras/primitives/Sphere.js
src/extras/primitives/Sphere.js
+1
-1
src/materials/Uniforms.js
src/materials/Uniforms.js
+18
-18
src/materials/mappings/CubeReflectionMapping.js
src/materials/mappings/CubeReflectionMapping.js
+3
-3
src/materials/mappings/CubeRefractionMapping.js
src/materials/mappings/CubeRefractionMapping.js
+3
-3
src/materials/mappings/LatitudeReflectionMapping.js
src/materials/mappings/LatitudeReflectionMapping.js
+3
-3
src/materials/mappings/LatitudeRefractionMapping.js
src/materials/mappings/LatitudeRefractionMapping.js
+3
-3
src/materials/mappings/SphericalReflectionMapping.js
src/materials/mappings/SphericalReflectionMapping.js
+3
-3
src/materials/mappings/SphericalRefractionMapping.js
src/materials/mappings/SphericalRefractionMapping.js
+3
-3
src/materials/mappings/UVMapping.js
src/materials/mappings/UVMapping.js
+3
-3
src/renderers/WebGLRenderer.js
src/renderers/WebGLRenderer.js
+81
-80
src/renderers/WebGLRenderer2.js
src/renderers/WebGLRenderer2.js
+10
-10
未找到文件。
src/core/Color.js
浏览文件 @
5c8a0896
...
@@ -7,7 +7,7 @@ THREE.Color = function ( hex ) {
...
@@ -7,7 +7,7 @@ THREE.Color = function ( hex ) {
this
.
autoUpdate
=
true
;
this
.
autoUpdate
=
true
;
this
.
setHex
(
hex
);
this
.
setHex
(
hex
);
}
}
;
THREE
.
Color
.
prototype
=
{
THREE
.
Color
.
prototype
=
{
...
@@ -65,7 +65,7 @@ THREE.Color.prototype = {
...
@@ -65,7 +65,7 @@ THREE.Color.prototype = {
},
},
toString
:
function
()
{
toString
:
function
()
{
return
'
THREE.Color ( r:
'
+
this
.
r
+
'
, g:
'
+
this
.
g
+
'
, b:
'
+
this
.
b
+
'
, hex:
'
+
this
.
hex
+
'
)
'
;
return
'
THREE.Color ( r:
'
+
this
.
r
+
'
, g:
'
+
this
.
g
+
'
, b:
'
+
this
.
b
+
'
, hex:
'
+
this
.
hex
+
'
)
'
;
...
...
src/core/Geometry.js
浏览文件 @
5c8a0896
...
@@ -113,7 +113,7 @@ THREE.Geometry.prototype = {
...
@@ -113,7 +113,7 @@ THREE.Geometry.prototype = {
computeVertexNormals
:
function
()
{
computeVertexNormals
:
function
()
{
var
v
,
vertices
=
[],
var
v
,
v
l
,
v
ertices
=
[],
f
,
fl
,
face
;
f
,
fl
,
face
;
for
(
v
=
0
,
vl
=
this
.
vertices
.
length
;
v
<
vl
;
v
++
)
{
for
(
v
=
0
,
vl
=
this
.
vertices
.
length
;
v
<
vl
;
v
++
)
{
...
@@ -179,7 +179,7 @@ THREE.Geometry.prototype = {
...
@@ -179,7 +179,7 @@ THREE.Geometry.prototype = {
var
f
,
fl
,
v
,
vl
,
face
,
uv
,
vA
,
vB
,
vC
,
uvA
,
uvB
,
uvC
,
var
f
,
fl
,
v
,
vl
,
face
,
uv
,
vA
,
vB
,
vC
,
uvA
,
uvB
,
uvC
,
x1
,
x2
,
y1
,
y2
,
z1
,
z2
,
x1
,
x2
,
y1
,
y2
,
z1
,
z2
,
s1
,
s2
,
t1
,
t2
,
r
,
t
,
n
,
s1
,
s2
,
t1
,
t2
,
r
,
t
,
test
,
tan1
=
[],
tan2
=
[],
tan1
=
[],
tan2
=
[],
sdir
=
new
THREE
.
Vector3
(),
tdir
=
new
THREE
.
Vector3
(),
sdir
=
new
THREE
.
Vector3
(),
tdir
=
new
THREE
.
Vector3
(),
tmp
=
new
THREE
.
Vector3
(),
tmp2
=
new
THREE
.
Vector3
(),
tmp
=
new
THREE
.
Vector3
(),
tmp2
=
new
THREE
.
Vector3
(),
...
@@ -355,7 +355,7 @@ THREE.Geometry.prototype = {
...
@@ -355,7 +355,7 @@ THREE.Geometry.prototype = {
// which could then use vertex color attributes instead of each being
// which could then use vertex color attributes instead of each being
// in its separate VBO
// in its separate VBO
var
i
,
l
,
f
,
fl
,
face
,
material
,
vertices
,
mhash
,
ghash
,
hash_map
=
{};
var
i
,
l
,
f
,
fl
,
face
,
material
,
materials
,
vertices
,
mhash
,
ghash
,
hash_map
=
{};
function
materialHash
(
material
)
{
function
materialHash
(
material
)
{
...
...
src/core/Matrix3.js
浏览文件 @
5c8a0896
...
@@ -18,4 +18,4 @@ THREE.Matrix3.prototype = {
...
@@ -18,4 +18,4 @@ THREE.Matrix3.prototype = {
}
}
}
}
;
src/core/UV.js
浏览文件 @
5c8a0896
...
@@ -24,4 +24,4 @@ THREE.UV.prototype = {
...
@@ -24,4 +24,4 @@ THREE.UV.prototype = {
}
}
}
}
;
src/core/Vertex.js
浏览文件 @
5c8a0896
...
@@ -16,7 +16,7 @@ THREE.Vertex = function ( position, normal ) {
...
@@ -16,7 +16,7 @@ THREE.Vertex = function ( position, normal ) {
this
.
__visible
=
true
;
this
.
__visible
=
true
;
}
}
;
THREE
.
Vertex
.
prototype
=
{
THREE
.
Vertex
.
prototype
=
{
...
...
src/extras/GeometryUtils.js
浏览文件 @
5c8a0896
...
@@ -28,7 +28,7 @@ var GeometryUtils = {
...
@@ -28,7 +28,7 @@ var GeometryUtils = {
}
}
for
(
var
i
=
0
,
il
=
faces2
.
length
;
i
<
il
;
i
++
)
{
for
(
i
=
0
,
il
=
faces2
.
length
;
i
<
il
;
i
++
)
{
var
face
=
faces2
[
i
],
faceCopy
,
normal
,
var
face
=
faces2
[
i
],
faceCopy
,
normal
,
faceVertexNormals
=
face
.
vertexNormals
;
faceVertexNormals
=
face
.
vertexNormals
;
...
@@ -59,7 +59,7 @@ var GeometryUtils = {
...
@@ -59,7 +59,7 @@ var GeometryUtils = {
}
}
for
(
var
i
=
0
,
il
=
uvs2
.
length
;
i
<
il
;
i
++
)
{
for
(
i
=
0
,
il
=
uvs2
.
length
;
i
<
il
;
i
++
)
{
var
uv
=
uvs2
[
i
],
uvCopy
=
[];
var
uv
=
uvs2
[
i
],
uvCopy
=
[];
...
@@ -75,4 +75,4 @@ var GeometryUtils = {
...
@@ -75,4 +75,4 @@ var GeometryUtils = {
}
}
}
}
;
src/extras/ImageUtils.js
浏览文件 @
5c8a0896
...
@@ -20,7 +20,7 @@ var ImageUtils = {
...
@@ -20,7 +20,7 @@ var ImageUtils = {
images
[
i
]
=
new
Image
();
images
[
i
]
=
new
Image
();
images
[
i
].
loaded
=
0
;
images
[
i
].
loaded
=
0
;
images
[
i
].
onload
=
function
()
{
images
.
loadCount
+=
1
;
this
.
loaded
=
true
;
}
images
[
i
].
onload
=
function
()
{
images
.
loadCount
+=
1
;
this
.
loaded
=
true
;
}
;
images
[
i
].
src
=
array
[
i
];
images
[
i
].
src
=
array
[
i
];
}
}
...
@@ -29,4 +29,4 @@ var ImageUtils = {
...
@@ -29,4 +29,4 @@ var ImageUtils = {
}
}
}
}
;
src/extras/SceneUtils.js
浏览文件 @
5c8a0896
var
SceneUtils
=
{
var
SceneUtils
=
{
addMesh
:
function
(
scene
,
geometry
,
scale
,
x
,
y
,
z
,
rx
,
ry
,
rz
,
material
)
{
addMesh
:
function
(
scene
,
geometry
,
scale
,
x
,
y
,
z
,
rx
,
ry
,
rz
,
material
)
{
var
mesh
=
new
THREE
.
Mesh
(
geometry
,
material
);
var
mesh
=
new
THREE
.
Mesh
(
geometry
,
material
);
mesh
.
scale
.
x
=
mesh
.
scale
.
y
=
mesh
.
scale
.
z
=
scale
;
mesh
.
scale
.
x
=
mesh
.
scale
.
y
=
mesh
.
scale
.
z
=
scale
;
mesh
.
position
.
x
=
x
;
mesh
.
position
.
x
=
x
;
...
@@ -13,30 +13,30 @@ var SceneUtils = {
...
@@ -13,30 +13,30 @@ var SceneUtils = {
scene
.
addObject
(
mesh
);
scene
.
addObject
(
mesh
);
return
mesh
;
return
mesh
;
},
},
addPanoramaCubeWebGL
:
function
(
scene
,
size
,
textureCube
)
{
addPanoramaCubeWebGL
:
function
(
scene
,
size
,
textureCube
)
{
var
shader
=
ShaderUtils
.
lib
[
"
cube
"
];
var
shader
=
ShaderUtils
.
lib
[
"
cube
"
];
shader
.
uniforms
[
"
tCube
"
].
texture
=
textureCube
;
shader
.
uniforms
[
"
tCube
"
].
texture
=
textureCube
;
var
material
=
new
THREE
.
MeshShaderMaterial
(
{
fragment_shader
:
shader
.
fragment_shader
,
var
material
=
new
THREE
.
MeshShaderMaterial
(
{
fragment_shader
:
shader
.
fragment_shader
,
vertex_shader
:
shader
.
vertex_shader
,
vertex_shader
:
shader
.
vertex_shader
,
uniforms
:
shader
.
uniforms
uniforms
:
shader
.
uniforms
}
),
}
),
mesh
=
new
THREE
.
Mesh
(
new
Cube
(
size
,
size
,
size
,
1
,
1
,
null
,
true
),
material
);
mesh
=
new
THREE
.
Mesh
(
new
Cube
(
size
,
size
,
size
,
1
,
1
,
null
,
true
),
material
);
scene
.
addObject
(
mesh
);
scene
.
addObject
(
mesh
);
return
mesh
;
return
mesh
;
},
},
addPanoramaCube
:
function
(
scene
,
size
,
images
)
{
addPanoramaCube
:
function
(
scene
,
size
,
images
)
{
var
materials
=
[];
var
materials
=
[]
,
mesh
;
materials
.
push
(
new
THREE
.
MeshBasicMaterial
(
{
map
:
new
THREE
.
Texture
(
images
[
0
]
)
}
)
);
materials
.
push
(
new
THREE
.
MeshBasicMaterial
(
{
map
:
new
THREE
.
Texture
(
images
[
0
]
)
}
)
);
materials
.
push
(
new
THREE
.
MeshBasicMaterial
(
{
map
:
new
THREE
.
Texture
(
images
[
1
]
)
}
)
);
materials
.
push
(
new
THREE
.
MeshBasicMaterial
(
{
map
:
new
THREE
.
Texture
(
images
[
1
]
)
}
)
);
materials
.
push
(
new
THREE
.
MeshBasicMaterial
(
{
map
:
new
THREE
.
Texture
(
images
[
2
]
)
}
)
);
materials
.
push
(
new
THREE
.
MeshBasicMaterial
(
{
map
:
new
THREE
.
Texture
(
images
[
2
]
)
}
)
);
...
@@ -46,14 +46,14 @@ var SceneUtils = {
...
@@ -46,14 +46,14 @@ var SceneUtils = {
mesh
=
new
THREE
.
Mesh
(
new
Cube
(
size
,
size
,
size
,
1
,
1
,
materials
,
true
),
new
THREE
.
MeshFaceMaterial
()
);
mesh
=
new
THREE
.
Mesh
(
new
Cube
(
size
,
size
,
size
,
1
,
1
,
materials
,
true
),
new
THREE
.
MeshFaceMaterial
()
);
scene
.
addObject
(
mesh
);
scene
.
addObject
(
mesh
);
return
mesh
;
return
mesh
;
},
},
addPanoramaCubePlanes
:
function
(
scene
,
size
,
images
)
{
addPanoramaCubePlanes
:
function
(
scene
,
size
,
images
)
{
var
hsize
=
size
/
2
,
plane
=
new
Plane
(
size
,
size
),
pi2
=
Math
.
PI
/
2
,
pi
=
Math
.
PI
;
var
hsize
=
size
/
2
,
plane
=
new
Plane
(
size
,
size
),
pi2
=
Math
.
PI
/
2
,
pi
=
Math
.
PI
;
SceneUtils
.
addMesh
(
scene
,
plane
,
1
,
0
,
0
,
-
hsize
,
0
,
0
,
0
,
new
THREE
.
MeshBasicMaterial
(
{
map
:
new
THREE
.
Texture
(
images
[
5
]
)
}
)
);
SceneUtils
.
addMesh
(
scene
,
plane
,
1
,
0
,
0
,
-
hsize
,
0
,
0
,
0
,
new
THREE
.
MeshBasicMaterial
(
{
map
:
new
THREE
.
Texture
(
images
[
5
]
)
}
)
);
...
@@ -61,7 +61,7 @@ var SceneUtils = {
...
@@ -61,7 +61,7 @@ var SceneUtils = {
SceneUtils
.
addMesh
(
scene
,
plane
,
1
,
hsize
,
0
,
0
,
0
,
-
pi2
,
0
,
new
THREE
.
MeshBasicMaterial
(
{
map
:
new
THREE
.
Texture
(
images
[
1
]
)
}
)
);
SceneUtils
.
addMesh
(
scene
,
plane
,
1
,
hsize
,
0
,
0
,
0
,
-
pi2
,
0
,
new
THREE
.
MeshBasicMaterial
(
{
map
:
new
THREE
.
Texture
(
images
[
1
]
)
}
)
);
SceneUtils
.
addMesh
(
scene
,
plane
,
1
,
0
,
hsize
,
0
,
pi2
,
0
,
pi
,
new
THREE
.
MeshBasicMaterial
(
{
map
:
new
THREE
.
Texture
(
images
[
2
]
)
}
)
);
SceneUtils
.
addMesh
(
scene
,
plane
,
1
,
0
,
hsize
,
0
,
pi2
,
0
,
pi
,
new
THREE
.
MeshBasicMaterial
(
{
map
:
new
THREE
.
Texture
(
images
[
2
]
)
}
)
);
SceneUtils
.
addMesh
(
scene
,
plane
,
1
,
0
,
-
hsize
,
0
,
-
pi2
,
0
,
pi
,
new
THREE
.
MeshBasicMaterial
(
{
map
:
new
THREE
.
Texture
(
images
[
3
]
)
}
)
);
SceneUtils
.
addMesh
(
scene
,
plane
,
1
,
0
,
-
hsize
,
0
,
-
pi2
,
0
,
pi
,
new
THREE
.
MeshBasicMaterial
(
{
map
:
new
THREE
.
Texture
(
images
[
3
]
)
}
)
);
}
}
}
}
;
src/extras/primitives/Cube.js
浏览文件 @
5c8a0896
...
@@ -64,7 +64,7 @@ var Cube = function ( width, height, depth, segments_width, segments_height, mat
...
@@ -64,7 +64,7 @@ var Cube = function ( width, height, depth, segments_width, segments_height, mat
function
buildPlane
(
u
,
v
,
udir
,
vdir
,
width
,
height
,
depth
,
material
)
{
function
buildPlane
(
u
,
v
,
udir
,
vdir
,
width
,
height
,
depth
,
material
)
{
var
w
,
var
w
,
ix
,
iy
,
gridX
=
segments_width
||
1
,
gridX
=
segments_width
||
1
,
gridY
=
segments_height
||
1
,
gridY
=
segments_height
||
1
,
gridX1
=
gridX
+
1
,
gridX1
=
gridX
+
1
,
...
@@ -160,7 +160,7 @@ var Cube = function ( width, height, depth, segments_width, segments_height, mat
...
@@ -160,7 +160,7 @@ var Cube = function ( width, height, depth, segments_width, segments_height, mat
}
}
for
(
var
i
=
0
,
l
=
scope
.
faces
.
length
;
i
<
l
;
i
++
)
{
for
(
i
=
0
,
il
=
scope
.
faces
.
length
;
i
<
i
l
;
i
++
)
{
var
face
=
scope
.
faces
[
i
];
var
face
=
scope
.
faces
[
i
];
...
@@ -179,7 +179,7 @@ var Cube = function ( width, height, depth, segments_width, segments_height, mat
...
@@ -179,7 +179,7 @@ var Cube = function ( width, height, depth, segments_width, segments_height, mat
this
.
computeFaceNormals
();
this
.
computeFaceNormals
();
this
.
sortFacesByMaterial
();
this
.
sortFacesByMaterial
();
}
}
;
Cube
.
prototype
=
new
THREE
.
Geometry
();
Cube
.
prototype
=
new
THREE
.
Geometry
();
Cube
.
prototype
.
constructor
=
Cube
;
Cube
.
prototype
.
constructor
=
Cube
;
src/extras/primitives/Cylinder.js
浏览文件 @
5c8a0896
...
@@ -76,7 +76,7 @@ var Cylinder = function ( numSegs, topRad, botRad, height, topOffset, botOffset
...
@@ -76,7 +76,7 @@ var Cylinder = function ( numSegs, topRad, botRad, height, topOffset, botOffset
}
}
}
}
;
Cylinder
.
prototype
=
new
THREE
.
Geometry
();
Cylinder
.
prototype
=
new
THREE
.
Geometry
();
Cylinder
.
prototype
.
constructor
=
Cylinder
;
Cylinder
.
prototype
.
constructor
=
Cylinder
;
src/extras/primitives/Plane.js
浏览文件 @
5c8a0896
...
@@ -56,7 +56,7 @@ var Plane = function ( width, height, segments_width, segments_height ) {
...
@@ -56,7 +56,7 @@ var Plane = function ( width, height, segments_width, segments_height ) {
this
.
computeFaceNormals
();
this
.
computeFaceNormals
();
this
.
sortFacesByMaterial
();
this
.
sortFacesByMaterial
();
}
}
;
Plane
.
prototype
=
new
THREE
.
Geometry
();
Plane
.
prototype
=
new
THREE
.
Geometry
();
Plane
.
prototype
.
constructor
=
Plane
;
Plane
.
prototype
.
constructor
=
Plane
;
src/extras/primitives/Sphere.js
浏览文件 @
5c8a0896
...
@@ -110,7 +110,7 @@ var Sphere = function ( radius, segments_width, segments_height ) {
...
@@ -110,7 +110,7 @@ var Sphere = function ( radius, segments_width, segments_height ) {
this
.
boundingSphere
=
{
radius
:
radius
};
this
.
boundingSphere
=
{
radius
:
radius
};
}
}
;
Sphere
.
prototype
=
new
THREE
.
Geometry
();
Sphere
.
prototype
=
new
THREE
.
Geometry
();
Sphere
.
prototype
.
constructor
=
Sphere
;
Sphere
.
prototype
.
constructor
=
Sphere
;
src/materials/Uniforms.js
浏览文件 @
5c8a0896
var
Uniforms
=
{
var
Uniforms
=
{
clone
:
function
(
uniforms_src
)
{
clone
:
function
(
uniforms_src
)
{
var
u
,
p
,
parameter
,
uniforms_dst
=
{};
var
u
,
p
,
parameter
,
parameter_src
,
uniforms_dst
=
{};
for
(
u
in
uniforms_src
)
{
for
(
u
in
uniforms_src
)
{
uniforms_dst
[
u
]
=
{};
uniforms_dst
[
u
]
=
{};
for
(
p
in
uniforms_src
[
u
]
)
{
for
(
p
in
uniforms_src
[
u
]
)
{
parameter_src
=
uniforms_src
[
u
][
p
];
parameter_src
=
uniforms_src
[
u
][
p
];
if
(
parameter_src
instanceof
THREE
.
Color
||
if
(
parameter_src
instanceof
THREE
.
Color
||
parameter_src
instanceof
THREE
.
Vector3
||
parameter_src
instanceof
THREE
.
Vector3
||
parameter_src
instanceof
THREE
.
Texture
)
{
parameter_src
instanceof
THREE
.
Texture
)
{
uniforms_dst
[
u
][
p
]
=
parameter_src
.
clone
();
uniforms_dst
[
u
][
p
]
=
parameter_src
.
clone
();
}
else
{
}
else
{
uniforms_dst
[
u
][
p
]
=
parameter_src
;
uniforms_dst
[
u
][
p
]
=
parameter_src
;
}
}
}
}
}
}
return
uniforms_dst
;
return
uniforms_dst
;
}
}
}
}
;
src/materials/mappings/CubeReflectionMapping.js
浏览文件 @
5c8a0896
/**
/**
* @author mr.doob / http://mrdoob.com/
* @author mr.doob / http://mrdoob.com/
*/
*/
THREE
.
CubeReflectionMapping
=
function
()
{
THREE
.
CubeReflectionMapping
=
function
()
{
}
};
src/materials/mappings/CubeRefractionMapping.js
浏览文件 @
5c8a0896
/**
/**
* @author mr.doob / http://mrdoob.com/
* @author mr.doob / http://mrdoob.com/
*/
*/
THREE
.
CubeRefractionMapping
=
function
()
{
THREE
.
CubeRefractionMapping
=
function
()
{
}
};
src/materials/mappings/LatitudeReflectionMapping.js
浏览文件 @
5c8a0896
/**
/**
* @author mr.doob / http://mrdoob.com/
* @author mr.doob / http://mrdoob.com/
*/
*/
THREE
.
LatitudeReflectionMapping
=
function
()
{
THREE
.
LatitudeReflectionMapping
=
function
()
{
}
};
src/materials/mappings/LatitudeRefractionMapping.js
浏览文件 @
5c8a0896
/**
/**
* @author mr.doob / http://mrdoob.com/
* @author mr.doob / http://mrdoob.com/
*/
*/
THREE
.
LatitudeRefractionMapping
=
function
()
{
THREE
.
LatitudeRefractionMapping
=
function
()
{
}
};
src/materials/mappings/SphericalReflectionMapping.js
浏览文件 @
5c8a0896
/**
/**
* @author mr.doob / http://mrdoob.com/
* @author mr.doob / http://mrdoob.com/
*/
*/
THREE
.
SphericalReflectionMapping
=
function
()
{
THREE
.
SphericalReflectionMapping
=
function
()
{
}
};
src/materials/mappings/SphericalRefractionMapping.js
浏览文件 @
5c8a0896
/**
/**
* @author mr.doob / http://mrdoob.com/
* @author mr.doob / http://mrdoob.com/
*/
*/
THREE
.
SphericalRefractionMapping
=
function
()
{
THREE
.
SphericalRefractionMapping
=
function
()
{
}
};
src/materials/mappings/UVMapping.js
浏览文件 @
5c8a0896
/**
/**
* @author mr.doob / http://mrdoob.com/
* @author mr.doob / http://mrdoob.com/
*/
*/
THREE
.
UVMapping
=
function
()
{
THREE
.
UVMapping
=
function
()
{
}
};
src/renderers/WebGLRenderer.js
浏览文件 @
5c8a0896
...
@@ -36,14 +36,14 @@ THREE.WebGLRenderer = function ( parameters ) {
...
@@ -36,14 +36,14 @@ THREE.WebGLRenderer = function ( parameters ) {
// heuristics to create shader parameters according to lights in the scene
// heuristics to create shader parameters according to lights in the scene
// (not to blow over maxLights budget)
// (not to blow over maxLights budget)
maxLightCount
=
allocateLights
(
parameters
.
scene
,
4
)
;
maxLightCount
=
allocateLights
(
parameters
.
scene
,
4
)
,
fog
=
parameters
.
scene
?
parameters
.
scene
.
fog
:
null
,
fog
=
parameters
.
scene
?
parameters
.
scene
.
fog
:
null
,
antialias
=
parameters
.
antialias
!=
undefined
?
parameters
.
antialias
:
true
,
antialias
=
parameters
.
antialias
!=
undefined
?
parameters
.
antialias
:
true
,
clearColor
=
parameters
.
clearColor
?
new
THREE
.
Color
(
parameters
.
clearColor
)
:
new
THREE
.
Color
(
0x000000
),
clearColor
=
parameters
.
clearColor
?
new
THREE
.
Color
(
parameters
.
clearColor
)
:
new
THREE
.
Color
(
0x000000
),
clearAlpha
=
parameters
.
clearAlpha
?
parameters
.
clearAlpha
:
0
;
clearAlpha
=
parameters
.
clearAlpha
?
parameters
.
clearAlpha
:
0
;
this
.
domElement
=
_canvas
;
this
.
domElement
=
_canvas
;
this
.
autoClear
=
true
;
this
.
autoClear
=
true
;
...
@@ -63,12 +63,12 @@ THREE.WebGLRenderer = function ( parameters ) {
...
@@ -63,12 +63,12 @@ THREE.WebGLRenderer = function ( parameters ) {
};
};
this
.
setClearColor
=
function
(
hex
,
alpha
)
{
this
.
setClearColor
=
function
(
hex
,
alpha
)
{
var
color
=
new
THREE
.
Color
(
hex
);
var
color
=
new
THREE
.
Color
(
hex
);
_gl
.
clearColor
(
color
.
r
,
color
.
g
,
color
.
b
,
alpha
);
_gl
.
clearColor
(
color
.
r
,
color
.
g
,
color
.
b
,
alpha
);
};
};
this
.
clear
=
function
()
{
this
.
clear
=
function
()
{
_gl
.
clear
(
_gl
.
COLOR_BUFFER_BIT
|
_gl
.
DEPTH_BUFFER_BIT
);
_gl
.
clear
(
_gl
.
COLOR_BUFFER_BIT
|
_gl
.
DEPTH_BUFFER_BIT
);
...
@@ -172,7 +172,7 @@ THREE.WebGLRenderer = function ( parameters ) {
...
@@ -172,7 +172,7 @@ THREE.WebGLRenderer = function ( parameters ) {
this
.
createBuffers
=
function
(
object
,
g
)
{
this
.
createBuffers
=
function
(
object
,
g
)
{
var
f
,
fl
,
fi
,
face
,
vertexNormals
,
normal
,
uv
,
v1
,
v2
,
v3
,
v4
,
t1
,
t2
,
t3
,
t4
,
m
,
ml
,
i
,
var
f
,
fl
,
fi
,
face
,
vertexNormals
,
faceNormal
,
normal
,
uv
,
v1
,
v2
,
v3
,
v4
,
t1
,
t2
,
t3
,
t4
,
m
,
ml
,
i
,
faceArray
=
[],
faceArray
=
[],
lineArray
=
[],
lineArray
=
[],
...
@@ -371,7 +371,7 @@ THREE.WebGLRenderer = function ( parameters ) {
...
@@ -371,7 +371,7 @@ THREE.WebGLRenderer = function ( parameters ) {
geometryChunk
.
__webGLLineCount
=
lineArray
.
length
;
geometryChunk
.
__webGLLineCount
=
lineArray
.
length
;
};
};
function
setMaterialShaders
(
material
,
shaders
)
{
function
setMaterialShaders
(
material
,
shaders
)
{
material
.
fragment_shader
=
shaders
.
fragment_shader
;
material
.
fragment_shader
=
shaders
.
fragment_shader
;
...
@@ -381,36 +381,36 @@ THREE.WebGLRenderer = function ( parameters ) {
...
@@ -381,36 +381,36 @@ THREE.WebGLRenderer = function ( parameters ) {
};
};
function
refreshUniforms
(
material
,
fog
)
{
function
refreshUniforms
(
material
,
fog
)
{
material
.
uniforms
.
color
.
value
.
setHex
(
material
.
color
.
hex
);
material
.
uniforms
.
color
.
value
.
setHex
(
material
.
color
.
hex
);
material
.
uniforms
.
opacity
.
value
=
material
.
opacity
;
material
.
uniforms
.
opacity
.
value
=
material
.
opacity
;
material
.
uniforms
.
map
.
texture
=
material
.
map
;
material
.
uniforms
.
map
.
texture
=
material
.
map
;
material
.
uniforms
.
env_map
.
texture
=
material
.
env_map
;
material
.
uniforms
.
env_map
.
texture
=
material
.
env_map
;
material
.
uniforms
.
reflectivity
.
value
=
material
.
reflectivity
;
material
.
uniforms
.
reflectivity
.
value
=
material
.
reflectivity
;
material
.
uniforms
.
refraction_ratio
.
value
=
material
.
refraction_ratio
;
material
.
uniforms
.
refraction_ratio
.
value
=
material
.
refraction_ratio
;
material
.
uniforms
.
combine
.
value
=
material
.
combine
;
material
.
uniforms
.
combine
.
value
=
material
.
combine
;
material
.
uniforms
.
useRefract
.
value
=
material
.
env_map
&&
material
.
env_map
.
mapping
instanceof
THREE
.
CubeRefractionMapping
;
material
.
uniforms
.
useRefract
.
value
=
material
.
env_map
&&
material
.
env_map
.
mapping
instanceof
THREE
.
CubeRefractionMapping
;
if
(
fog
)
{
if
(
fog
)
{
material
.
uniforms
.
fogColor
.
value
.
setHex
(
fog
.
color
.
hex
);
material
.
uniforms
.
fogColor
.
value
.
setHex
(
fog
.
color
.
hex
);
if
(
fog
instanceof
THREE
.
Fog
)
{
if
(
fog
instanceof
THREE
.
Fog
)
{
material
.
uniforms
.
fogNear
.
value
=
fog
.
near
;
material
.
uniforms
.
fogNear
.
value
=
fog
.
near
;
material
.
uniforms
.
fogFar
.
value
=
fog
.
far
;
material
.
uniforms
.
fogFar
.
value
=
fog
.
far
;
}
else
if
(
fog
instanceof
THREE
.
FogExp2
)
{
}
else
if
(
fog
instanceof
THREE
.
FogExp2
)
{
material
.
uniforms
.
fogDensity
.
value
=
fog
.
density
;
material
.
uniforms
.
fogDensity
.
value
=
fog
.
density
;
}
}
}
}
};
};
this
.
renderBuffer
=
function
(
camera
,
lights
,
fog
,
material
,
geometryChunk
)
{
this
.
renderBuffer
=
function
(
camera
,
lights
,
fog
,
material
,
geometryChunk
)
{
var
mColor
,
mOpacity
,
mReflectivity
,
var
mColor
,
mOpacity
,
mReflectivity
,
...
@@ -423,7 +423,7 @@ THREE.WebGLRenderer = function ( parameters ) {
...
@@ -423,7 +423,7 @@ THREE.WebGLRenderer = function ( parameters ) {
if
(
material
instanceof
THREE
.
MeshShaderMaterial
||
if
(
material
instanceof
THREE
.
MeshShaderMaterial
||
material
instanceof
THREE
.
MeshDepthMaterial
||
material
instanceof
THREE
.
MeshDepthMaterial
||
material
instanceof
THREE
.
MeshNormalMaterial
||
material
instanceof
THREE
.
MeshNormalMaterial
||
material
instanceof
THREE
.
MeshBasicMaterial
)
{
material
instanceof
THREE
.
MeshBasicMaterial
)
{
if
(
!
material
.
program
)
{
if
(
!
material
.
program
)
{
...
@@ -440,11 +440,11 @@ THREE.WebGLRenderer = function ( parameters ) {
...
@@ -440,11 +440,11 @@ THREE.WebGLRenderer = function ( parameters ) {
setMaterialShaders
(
material
,
THREE
.
ShaderLib
[
'
normal
'
]
);
setMaterialShaders
(
material
,
THREE
.
ShaderLib
[
'
normal
'
]
);
}
else
if
(
material
instanceof
THREE
.
MeshBasicMaterial
)
{
}
else
if
(
material
instanceof
THREE
.
MeshBasicMaterial
)
{
setMaterialShaders
(
material
,
THREE
.
ShaderLib
[
'
basic
'
]
);
setMaterialShaders
(
material
,
THREE
.
ShaderLib
[
'
basic
'
]
);
refreshUniforms
(
material
,
fog
);
refreshUniforms
(
material
,
fog
);
}
}
material
.
program
=
buildProgram
(
material
.
fragment_shader
,
material
.
vertex_shader
,
{
fog
:
fog
,
map
:
material
.
map
,
env_map
:
material
.
env_map
}
);
material
.
program
=
buildProgram
(
material
.
fragment_shader
,
material
.
vertex_shader
,
{
fog
:
fog
,
map
:
material
.
map
,
env_map
:
material
.
env_map
}
);
...
@@ -486,11 +486,11 @@ THREE.WebGLRenderer = function ( parameters ) {
...
@@ -486,11 +486,11 @@ THREE.WebGLRenderer = function ( parameters ) {
this
.
loadMatrices
(
program
);
this
.
loadMatrices
(
program
);
if
(
material
instanceof
THREE
.
MeshBasicMaterial
)
{
if
(
material
instanceof
THREE
.
MeshBasicMaterial
)
{
refreshUniforms
(
material
,
fog
);
refreshUniforms
(
material
,
fog
);
}
}
if
(
material
instanceof
THREE
.
MeshShaderMaterial
||
if
(
material
instanceof
THREE
.
MeshShaderMaterial
||
material
instanceof
THREE
.
MeshDepthMaterial
||
material
instanceof
THREE
.
MeshDepthMaterial
||
material
instanceof
THREE
.
MeshNormalMaterial
||
material
instanceof
THREE
.
MeshNormalMaterial
||
...
@@ -536,16 +536,16 @@ THREE.WebGLRenderer = function ( parameters ) {
...
@@ -536,16 +536,16 @@ THREE.WebGLRenderer = function ( parameters ) {
if
(
fog
)
{
if
(
fog
)
{
_gl
.
uniform3f
(
program
.
uniforms
.
fogColor
,
fog
.
color
.
r
,
fog
.
color
.
g
,
fog
.
color
.
b
);
_gl
.
uniform3f
(
program
.
uniforms
.
fogColor
,
fog
.
color
.
r
,
fog
.
color
.
g
,
fog
.
color
.
b
);
if
(
fog
instanceof
THREE
.
Fog
)
{
if
(
fog
instanceof
THREE
.
Fog
)
{
_gl
.
uniform1f
(
program
.
uniforms
.
fogNear
,
fog
.
near
);
_gl
.
uniform1f
(
program
.
uniforms
.
fogNear
,
fog
.
near
);
_gl
.
uniform1f
(
program
.
uniforms
.
fogFar
,
fog
.
far
);
_gl
.
uniform1f
(
program
.
uniforms
.
fogFar
,
fog
.
far
);
}
else
if
(
fog
instanceof
THREE
.
FogExp2
)
{
}
else
if
(
fog
instanceof
THREE
.
FogExp2
)
{
_gl
.
uniform1f
(
program
.
uniforms
.
fogDensity
,
fog
.
density
);
_gl
.
uniform1f
(
program
.
uniforms
.
fogDensity
,
fog
.
density
);
}
}
}
}
...
@@ -990,7 +990,7 @@ THREE.WebGLRenderer = function ( parameters ) {
...
@@ -990,7 +990,7 @@ THREE.WebGLRenderer = function ( parameters ) {
_gl
.
clearColor
(
clearColor
.
r
,
clearColor
.
g
,
clearColor
.
b
,
clearAlpha
);
_gl
.
clearColor
(
clearColor
.
r
,
clearColor
.
g
,
clearColor
.
b
,
clearAlpha
);
};
};
function
generateFragmentShader
(
maxDirLights
,
maxPointLights
)
{
function
generateFragmentShader
(
maxDirLights
,
maxPointLights
)
{
var
chunks
=
[
var
chunks
=
[
...
@@ -1016,7 +1016,7 @@ THREE.WebGLRenderer = function ( parameters ) {
...
@@ -1016,7 +1016,7 @@ THREE.WebGLRenderer = function ( parameters ) {
"
uniform float mShininess;
"
,
"
uniform float mShininess;
"
,
THREE
.
Snippets
[
"
fog_uniforms
"
],
THREE
.
Snippets
[
"
fog_uniforms
"
],
"
uniform int pointLightNumber;
"
,
"
uniform int pointLightNumber;
"
,
"
uniform int directionalLightNumber;
"
,
"
uniform int directionalLightNumber;
"
,
...
@@ -1158,7 +1158,7 @@ THREE.WebGLRenderer = function ( parameters ) {
...
@@ -1158,7 +1158,7 @@ THREE.WebGLRenderer = function ( parameters ) {
"
}
"
,
"
}
"
,
THREE
.
Snippets
[
"
fog_fragment
"
],
THREE
.
Snippets
[
"
fog_fragment
"
],
"
}
"
];
"
}
"
];
return
chunks
.
join
(
"
\n
"
);
return
chunks
.
join
(
"
\n
"
);
...
@@ -1273,7 +1273,7 @@ THREE.WebGLRenderer = function ( parameters ) {
...
@@ -1273,7 +1273,7 @@ THREE.WebGLRenderer = function ( parameters ) {
parameters
.
fog
?
"
#define USE_FOG
"
:
""
,
parameters
.
fog
?
"
#define USE_FOG
"
:
""
,
parameters
.
fog
instanceof
THREE
.
FogExp2
?
"
#define FOG_EXP2
"
:
""
,
parameters
.
fog
instanceof
THREE
.
FogExp2
?
"
#define FOG_EXP2
"
:
""
,
parameters
.
map
?
"
#define USE_MAP
"
:
""
,
parameters
.
map
?
"
#define USE_MAP
"
:
""
,
parameters
.
env_map
?
"
#define USE_ENVMAP
"
:
""
,
parameters
.
env_map
?
"
#define USE_ENVMAP
"
:
""
,
...
@@ -1457,7 +1457,7 @@ THREE.WebGLRenderer = function ( parameters ) {
...
@@ -1457,7 +1457,7 @@ THREE.WebGLRenderer = function ( parameters ) {
};
};
function
initUbershader
(
maxDirLights
,
maxPointLights
,
fog
)
{
function
initUbershader
(
maxDirLights
,
maxPointLights
,
fog
)
{
var
vertex_shader
=
generateVertexShader
(
maxDirLights
,
maxPointLights
),
var
vertex_shader
=
generateVertexShader
(
maxDirLights
,
maxPointLights
),
fragment_shader
=
generateFragmentShader
(
maxDirLights
,
maxPointLights
),
fragment_shader
=
generateFragmentShader
(
maxDirLights
,
maxPointLights
),
program
;
program
;
...
@@ -1580,7 +1580,7 @@ THREE.WebGLRenderer = function ( parameters ) {
...
@@ -1580,7 +1580,7 @@ THREE.WebGLRenderer = function ( parameters ) {
function
bufferNeedsSmoothNormals
(
geometryChunk
,
object
)
{
function
bufferNeedsSmoothNormals
(
geometryChunk
,
object
)
{
var
m
,
ml
,
i
,
l
,
needsSmoothNormals
=
false
;
var
m
,
ml
,
i
,
l
,
meshMaterial
,
needsSmoothNormals
=
false
;
for
(
m
=
0
,
ml
=
object
.
materials
.
length
;
m
<
ml
;
m
++
)
{
for
(
m
=
0
,
ml
=
object
.
materials
.
length
;
m
<
ml
;
m
++
)
{
...
@@ -1622,7 +1622,8 @@ THREE.WebGLRenderer = function ( parameters ) {
...
@@ -1622,7 +1622,8 @@ THREE.WebGLRenderer = function ( parameters ) {
if
(
scene
)
{
if
(
scene
)
{
var
l
,
ll
,
light
,
dirLights
=
pointLights
=
maxDirLights
=
maxPointLights
=
0
;
var
l
,
ll
,
light
,
dirLights
,
pointLights
,
maxDirLights
,
maxPointLights
;
dirLights
=
pointLights
=
maxDirLights
=
maxPointLights
=
0
;
for
(
l
=
0
,
ll
=
scene
.
lights
.
length
;
l
<
ll
;
l
++
)
{
for
(
l
=
0
,
ll
=
scene
.
lights
.
length
;
l
<
ll
;
l
++
)
{
...
@@ -1688,28 +1689,28 @@ THREE.WebGLRenderer = function ( parameters ) {
...
@@ -1688,28 +1689,28 @@ THREE.WebGLRenderer = function ( parameters ) {
};
};
THREE
.
Snippets
=
{
THREE
.
Snippets
=
{
fog_uniforms
:
[
fog_uniforms
:
[
"
#ifdef USE_FOG
"
,
"
#ifdef USE_FOG
"
,
"
uniform vec3 fogColor;
"
,
"
uniform vec3 fogColor;
"
,
"
#ifdef FOG_EXP2
"
,
"
#ifdef FOG_EXP2
"
,
"
uniform float fogDensity;
"
,
"
uniform float fogDensity;
"
,
"
#else
"
,
"
#else
"
,
"
uniform float fogNear;
"
,
"
uniform float fogNear;
"
,
"
uniform float fogFar;
"
,
"
uniform float fogFar;
"
,
"
#endif
"
,
"
#endif
"
,
"
#endif
"
"
#endif
"
].
join
(
"
\n
"
),
].
join
(
"
\n
"
),
fog_fragment
:
[
fog_fragment
:
[
"
#ifdef USE_FOG
"
,
"
#ifdef USE_FOG
"
,
"
float depth = gl_FragCoord.z / gl_FragCoord.w;
"
,
"
float depth = gl_FragCoord.z / gl_FragCoord.w;
"
,
"
#ifdef FOG_EXP2
"
,
"
#ifdef FOG_EXP2
"
,
...
@@ -1719,13 +1720,13 @@ THREE.Snippets = {
...
@@ -1719,13 +1720,13 @@ THREE.Snippets = {
"
#else
"
,
"
#else
"
,
"
float fogFactor = smoothstep( fogNear, fogFar, depth );
"
,
"
float fogFactor = smoothstep( fogNear, fogFar, depth );
"
,
"
#endif
"
,
"
#endif
"
,
"
gl_FragColor = mix( gl_FragColor, vec4( fogColor, 1.0 ), fogFactor );
"
,
"
gl_FragColor = mix( gl_FragColor, vec4( fogColor, 1.0 ), fogFactor );
"
,
"
#endif
"
"
#endif
"
].
join
(
"
\n
"
)
].
join
(
"
\n
"
)
};
};
THREE
.
ShaderLib
=
{
THREE
.
ShaderLib
=
{
...
@@ -1794,9 +1795,9 @@ THREE.ShaderLib = {
...
@@ -1794,9 +1795,9 @@ THREE.ShaderLib = {
].
join
(
"
\n
"
)
].
join
(
"
\n
"
)
},
},
'
basic
'
:
{
'
basic
'
:
{
uniforms
:
{
"
color
"
:
{
type
:
"
c
"
,
value
:
new
THREE
.
Color
(
0xeeeeee
)
},
uniforms
:
{
"
color
"
:
{
type
:
"
c
"
,
value
:
new
THREE
.
Color
(
0xeeeeee
)
},
"
opacity
"
:
{
type
:
"
f
"
,
value
:
1
},
"
opacity
"
:
{
type
:
"
f
"
,
value
:
1
},
"
map
"
:
{
type
:
"
t
"
,
value
:
0
,
texture
:
null
},
"
map
"
:
{
type
:
"
t
"
,
value
:
0
,
texture
:
null
},
...
@@ -1810,32 +1811,32 @@ THREE.ShaderLib = {
...
@@ -1810,32 +1811,32 @@ THREE.ShaderLib = {
"
fogFar
"
:
{
type
:
"
f
"
,
value
:
2000
},
"
fogFar
"
:
{
type
:
"
f
"
,
value
:
2000
},
"
fogColor
"
:
{
type
:
"
c
"
,
value
:
new
THREE
.
Color
(
0xffffff
)
}
"
fogColor
"
:
{
type
:
"
c
"
,
value
:
new
THREE
.
Color
(
0xffffff
)
}
},
},
fragment_shader
:
[
fragment_shader
:
[
"
uniform vec3 color;
"
,
"
uniform vec3 color;
"
,
"
uniform float opacity;
"
,
"
uniform float opacity;
"
,
"
#ifdef USE_MAP
"
,
"
#ifdef USE_MAP
"
,
"
varying vec2 vUv;
"
,
"
varying vec2 vUv;
"
,
"
uniform sampler2D map;
"
,
"
uniform sampler2D map;
"
,
"
#endif
"
,
"
#endif
"
,
"
#ifdef USE_ENVMAP
"
,
"
#ifdef USE_ENVMAP
"
,
"
varying vec3 vReflect;
"
,
"
varying vec3 vReflect;
"
,
"
uniform float reflectivity;
"
,
"
uniform float reflectivity;
"
,
"
uniform samplerCube env_map;
"
,
"
uniform samplerCube env_map;
"
,
"
uniform int combine;
"
,
"
uniform int combine;
"
,
"
#endif
"
,
"
#endif
"
,
THREE
.
Snippets
[
"
fog_uniforms
"
],
THREE
.
Snippets
[
"
fog_uniforms
"
],
"
void main() {
"
,
"
void main() {
"
,
"
vec4 mColor = vec4( color, opacity );
"
,
"
vec4 mColor = vec4( color, opacity );
"
,
"
vec4 mapColor = vec4( 1.0, 1.0, 1.0, 1.0 );
"
,
"
vec4 mapColor = vec4( 1.0, 1.0, 1.0, 1.0 );
"
,
"
vec4 cubeColor = vec4( 1.0, 1.0, 1.0, 1.0 );
"
,
"
vec4 cubeColor = vec4( 1.0, 1.0, 1.0, 1.0 );
"
,
...
@@ -1849,11 +1850,11 @@ THREE.ShaderLib = {
...
@@ -1849,11 +1850,11 @@ THREE.ShaderLib = {
"
#endif
"
,
"
#endif
"
,
// environment map
// environment map
"
#ifdef USE_ENVMAP
"
,
"
#ifdef USE_ENVMAP
"
,
"
cubeColor = textureCube( env_map, vec3( -vReflect.x, vReflect.yz ) );
"
,
"
cubeColor = textureCube( env_map, vec3( -vReflect.x, vReflect.yz ) );
"
,
"
if ( combine == 1 ) {
"
,
"
if ( combine == 1 ) {
"
,
"
gl_FragColor = mix( mColor * mapColor, cubeColor, reflectivity );
"
,
"
gl_FragColor = mix( mColor * mapColor, cubeColor, reflectivity );
"
,
...
@@ -1863,48 +1864,48 @@ THREE.ShaderLib = {
...
@@ -1863,48 +1864,48 @@ THREE.ShaderLib = {
"
gl_FragColor = mColor * mapColor * cubeColor;
"
,
"
gl_FragColor = mColor * mapColor * cubeColor;
"
,
"
}
"
,
"
}
"
,
"
#else
"
,
"
#else
"
,
"
gl_FragColor = mColor * mapColor;
"
,
"
gl_FragColor = mColor * mapColor;
"
,
"
#endif
"
,
"
#endif
"
,
THREE
.
Snippets
[
"
fog_fragment
"
],
THREE
.
Snippets
[
"
fog_fragment
"
],
"
}
"
"
}
"
].
join
(
"
\n
"
),
].
join
(
"
\n
"
),
vertex_shader
:
[
vertex_shader
:
[
"
#ifdef USE_MAP
"
,
"
#ifdef USE_MAP
"
,
"
varying vec2 vUv;
"
,
"
varying vec2 vUv;
"
,
"
#endif
"
,
"
#endif
"
,
"
#ifdef USE_ENVMAP
"
,
"
#ifdef USE_ENVMAP
"
,
"
varying vec3 vReflect;
"
,
"
varying vec3 vReflect;
"
,
"
uniform float refraction_ratio;
"
,
"
uniform float refraction_ratio;
"
,
"
uniform bool useRefract;
"
,
"
uniform bool useRefract;
"
,
"
#endif
"
,
"
#endif
"
,
"
void main() {
"
,
"
void main() {
"
,
"
#ifdef USE_MAP
"
,
"
#ifdef USE_MAP
"
,
"
vUv = uv;
"
,
"
vUv = uv;
"
,
"
#endif
"
,
"
#endif
"
,
"
#ifdef USE_ENVMAP
"
,
"
#ifdef USE_ENVMAP
"
,
"
vec4 mPosition = objectMatrix * vec4( position, 1.0 );
"
,
"
vec4 mPosition = objectMatrix * vec4( position, 1.0 );
"
,
"
vec3 nWorld = mat3( objectMatrix[0].xyz, objectMatrix[1].xyz, objectMatrix[2].xyz ) * normal;
"
,
"
vec3 nWorld = mat3( objectMatrix[0].xyz, objectMatrix[1].xyz, objectMatrix[2].xyz ) * normal;
"
,
"
if ( useRefract ) {
"
,
"
if ( useRefract ) {
"
,
"
vReflect = refract( normalize( mPosition.xyz - cameraPosition ), normalize( nWorld.xyz ), refraction_ratio );
"
,
"
vReflect = refract( normalize( mPosition.xyz - cameraPosition ), normalize( nWorld.xyz ), refraction_ratio );
"
,
...
@@ -1916,13 +1917,13 @@ THREE.ShaderLib = {
...
@@ -1916,13 +1917,13 @@ THREE.ShaderLib = {
"
}
"
,
"
}
"
,
"
#endif
"
,
"
#endif
"
,
"
gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
"
,
"
gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
"
,
"
}
"
"
}
"
].
join
(
"
\n
"
)
].
join
(
"
\n
"
)
}
}
};
};
src/renderers/WebGLRenderer2.js
浏览文件 @
5c8a0896
...
@@ -14,6 +14,7 @@ THREE.WebGLRenderer2 = function ( antialias ) {
...
@@ -14,6 +14,7 @@ THREE.WebGLRenderer2 = function ( antialias ) {
_canvas
=
document
.
createElement
(
'
canvas
'
),
_canvas
=
document
.
createElement
(
'
canvas
'
),
_gl
,
_currentProgram
,
_gl
,
_currentProgram
,
_modelViewMatrix
=
new
THREE
.
Matrix4
(),
_modelViewMatrix
=
new
THREE
.
Matrix4
(),
_normalMatrix
=
new
THREE
.
Matrix4
(),
_viewMatrixArray
=
new
Float32Array
(
16
),
_viewMatrixArray
=
new
Float32Array
(
16
),
_modelViewMatrixArray
=
new
Float32Array
(
16
),
_modelViewMatrixArray
=
new
Float32Array
(
16
),
_projectionMatrixArray
=
new
Float32Array
(
16
),
_projectionMatrixArray
=
new
Float32Array
(
16
),
...
@@ -100,7 +101,7 @@ THREE.WebGLRenderer2 = function ( antialias ) {
...
@@ -100,7 +101,7 @@ THREE.WebGLRenderer2 = function ( antialias ) {
function
renderObject
(
object
)
{
function
renderObject
(
object
)
{
var
geometry
,
material
,
m
,
n
l
,
var
geometry
,
material
,
m
,
m
l
,
program
,
uniforms
,
attributes
;
program
,
uniforms
,
attributes
;
object
.
autoUpdateMatrix
&&
object
.
updateMatrix
();
object
.
autoUpdateMatrix
&&
object
.
updateMatrix
();
...
@@ -268,11 +269,11 @@ THREE.WebGLRenderer2 = function ( antialias ) {
...
@@ -268,11 +269,11 @@ THREE.WebGLRenderer2 = function ( antialias ) {
}
else
if
(
object
instanceof
THREE
.
Line
)
{
}
else
if
(
object
instanceof
THREE
.
Line
)
{
}
else
if
(
object
instanceof
THREE
.
Particle
)
{
}
else
if
(
object
instanceof
THREE
.
Particle
)
{
}
}
...
@@ -283,10 +284,9 @@ THREE.WebGLRenderer2 = function ( antialias ) {
...
@@ -283,10 +284,9 @@ THREE.WebGLRenderer2 = function ( antialias ) {
function
buildBuffers
(
geometry
)
{
function
buildBuffers
(
geometry
)
{
var
itemCount
=
0
,
vertexIndex
,
group
,
var
itemCount
=
0
,
vertexIndex
,
group
,
f
,
fl
,
face
,
v1
,
v2
,
v3
,
v
ertexNormals
,
normal
,
uv
,
f
,
fl
,
face
,
v1
,
v2
,
v3
,
v
4
,
vertexNormals
,
faceNormal
,
normal
,
uv
,
vertexGroups
=
[],
faceGroups
=
[],
lineGroups
=
[],
normalGroups
=
[],
uvGroups
=
[],
vertexGroups
=
[],
faceGroups
=
[],
lineGroups
=
[],
normalGroups
=
[],
uvGroups
=
[],
vertices
,
faces
,
lines
,
normals
,
uvs
,
vertices
,
faces
,
lines
,
normals
,
uvs
;
buffers
=
{};
for
(
f
=
0
,
fl
=
geometry
.
faces
.
length
;
f
<
fl
;
f
++
)
{
for
(
f
=
0
,
fl
=
geometry
.
faces
.
length
;
f
<
fl
;
f
++
)
{
...
@@ -544,9 +544,9 @@ THREE.WebGLRenderer2 = function ( antialias ) {
...
@@ -544,9 +544,9 @@ THREE.WebGLRenderer2 = function ( antialias ) {
identifiers
.
push
(
'
mColor
'
,
'
mOpacity
'
);
identifiers
.
push
(
'
mColor
'
,
'
mOpacity
'
);
material
.
map
?
identifiers
.
push
(
'
tMap
'
)
:
null
;
if
(
material
.
map
)
identifiers
.
push
(
'
tMap
'
)
;
material
.
env_map
?
identifiers
.
push
(
'
tSpherical
'
)
:
null
;
if
(
material
.
env_map
)
identifiers
.
push
(
'
tSpherical
'
)
;
material
.
fog
?
identifiers
.
push
(
'
fog
'
,
'
fogColor
'
,
'
fogNear
'
,
'
fogFar
'
)
:
null
;
if
(
material
.
fog
)
identifiers
.
push
(
'
fog
'
,
'
fogColor
'
,
'
fogNear
'
,
'
fogFar
'
)
;
}
else
if
(
material
instanceof
THREE
.
MeshNormalMaterial
)
{
}
else
if
(
material
instanceof
THREE
.
MeshNormalMaterial
)
{
...
@@ -622,7 +622,7 @@ THREE.WebGLRenderer2 = function ( antialias ) {
...
@@ -622,7 +622,7 @@ THREE.WebGLRenderer2 = function ( antialias ) {
function
compileProgram
(
vertex_shader
,
fragment_shader
)
{
function
compileProgram
(
vertex_shader
,
fragment_shader
)
{
var
program
=
_gl
.
createProgram
(),
shader
var
program
=
_gl
.
createProgram
(),
shader
,
prefix_vertex
,
prefix_fragment
;
prefix_vertex
=
[
prefix_vertex
=
[
maxVertexTextures
()
>
0
?
"
#define VERTEX_TEXTURES
"
:
""
,
maxVertexTextures
()
>
0
?
"
#define VERTEX_TEXTURES
"
:
""
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录