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 ) {
this
.
autoUpdate
=
true
;
this
.
setHex
(
hex
);
}
}
;
THREE
.
Color
.
prototype
=
{
...
...
@@ -65,7 +65,7 @@ THREE.Color.prototype = {
},
toString
:
function
()
{
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 = {
computeVertexNormals
:
function
()
{
var
v
,
vertices
=
[],
var
v
,
v
l
,
v
ertices
=
[],
f
,
fl
,
face
;
for
(
v
=
0
,
vl
=
this
.
vertices
.
length
;
v
<
vl
;
v
++
)
{
...
...
@@ -179,7 +179,7 @@ THREE.Geometry.prototype = {
var
f
,
fl
,
v
,
vl
,
face
,
uv
,
vA
,
vB
,
vC
,
uvA
,
uvB
,
uvC
,
x1
,
x2
,
y1
,
y2
,
z1
,
z2
,
s1
,
s2
,
t1
,
t2
,
r
,
t
,
n
,
s1
,
s2
,
t1
,
t2
,
r
,
t
,
test
,
tan1
=
[],
tan2
=
[],
sdir
=
new
THREE
.
Vector3
(),
tdir
=
new
THREE
.
Vector3
(),
tmp
=
new
THREE
.
Vector3
(),
tmp2
=
new
THREE
.
Vector3
(),
...
...
@@ -355,7 +355,7 @@ THREE.Geometry.prototype = {
// which could then use vertex color attributes instead of each being
// 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
)
{
...
...
src/core/Matrix3.js
浏览文件 @
5c8a0896
...
...
@@ -18,4 +18,4 @@ THREE.Matrix3.prototype = {
}
}
}
;
src/core/UV.js
浏览文件 @
5c8a0896
...
...
@@ -24,4 +24,4 @@ THREE.UV.prototype = {
}
}
}
;
src/core/Vertex.js
浏览文件 @
5c8a0896
...
...
@@ -16,7 +16,7 @@ THREE.Vertex = function ( position, normal ) {
this
.
__visible
=
true
;
}
}
;
THREE
.
Vertex
.
prototype
=
{
...
...
src/extras/GeometryUtils.js
浏览文件 @
5c8a0896
...
...
@@ -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
,
faceVertexNormals
=
face
.
vertexNormals
;
...
...
@@ -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
=
[];
...
...
@@ -75,4 +75,4 @@ var GeometryUtils = {
}
}
}
;
src/extras/ImageUtils.js
浏览文件 @
5c8a0896
...
...
@@ -20,7 +20,7 @@ var ImageUtils = {
images
[
i
]
=
new
Image
();
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
];
}
...
...
@@ -29,4 +29,4 @@ var ImageUtils = {
}
}
}
;
src/extras/SceneUtils.js
浏览文件 @
5c8a0896
var
SceneUtils
=
{
addMesh
:
function
(
scene
,
geometry
,
scale
,
x
,
y
,
z
,
rx
,
ry
,
rz
,
material
)
{
var
mesh
=
new
THREE
.
Mesh
(
geometry
,
material
);
mesh
.
scale
.
x
=
mesh
.
scale
.
y
=
mesh
.
scale
.
z
=
scale
;
mesh
.
position
.
x
=
x
;
...
...
@@ -13,30 +13,30 @@ var SceneUtils = {
scene
.
addObject
(
mesh
);
return
mesh
;
},
},
addPanoramaCubeWebGL
:
function
(
scene
,
size
,
textureCube
)
{
var
shader
=
ShaderUtils
.
lib
[
"
cube
"
];
shader
.
uniforms
[
"
tCube
"
].
texture
=
textureCube
;
var
material
=
new
THREE
.
MeshShaderMaterial
(
{
fragment_shader
:
shader
.
fragment_shader
,
vertex_shader
:
shader
.
vertex_shader
,
var
material
=
new
THREE
.
MeshShaderMaterial
(
{
fragment_shader
:
shader
.
fragment_shader
,
vertex_shader
:
shader
.
vertex_shader
,
uniforms
:
shader
.
uniforms
}
),
mesh
=
new
THREE
.
Mesh
(
new
Cube
(
size
,
size
,
size
,
1
,
1
,
null
,
true
),
material
);
scene
.
addObject
(
mesh
);
return
mesh
;
},
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
[
1
]
)
}
)
);
materials
.
push
(
new
THREE
.
MeshBasicMaterial
(
{
map
:
new
THREE
.
Texture
(
images
[
2
]
)
}
)
);
...
...
@@ -46,14 +46,14 @@ var SceneUtils = {
mesh
=
new
THREE
.
Mesh
(
new
Cube
(
size
,
size
,
size
,
1
,
1
,
materials
,
true
),
new
THREE
.
MeshFaceMaterial
()
);
scene
.
addObject
(
mesh
);
return
mesh
;
},
addPanoramaCubePlanes
:
function
(
scene
,
size
,
images
)
{
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
]
)
}
)
);
...
...
@@ -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
,
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
]
)
}
)
);
}
}
}
;
src/extras/primitives/Cube.js
浏览文件 @
5c8a0896
...
...
@@ -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
)
{
var
w
,
var
w
,
ix
,
iy
,
gridX
=
segments_width
||
1
,
gridY
=
segments_height
||
1
,
gridX1
=
gridX
+
1
,
...
...
@@ -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
];
...
...
@@ -179,7 +179,7 @@ var Cube = function ( width, height, depth, segments_width, segments_height, mat
this
.
computeFaceNormals
();
this
.
sortFacesByMaterial
();
}
}
;
Cube
.
prototype
=
new
THREE
.
Geometry
();
Cube
.
prototype
.
constructor
=
Cube
;
src/extras/primitives/Cylinder.js
浏览文件 @
5c8a0896
...
...
@@ -76,7 +76,7 @@ var Cylinder = function ( numSegs, topRad, botRad, height, topOffset, botOffset
}
}
}
;
Cylinder
.
prototype
=
new
THREE
.
Geometry
();
Cylinder
.
prototype
.
constructor
=
Cylinder
;
src/extras/primitives/Plane.js
浏览文件 @
5c8a0896
...
...
@@ -56,7 +56,7 @@ var Plane = function ( width, height, segments_width, segments_height ) {
this
.
computeFaceNormals
();
this
.
sortFacesByMaterial
();
}
}
;
Plane
.
prototype
=
new
THREE
.
Geometry
();
Plane
.
prototype
.
constructor
=
Plane
;
src/extras/primitives/Sphere.js
浏览文件 @
5c8a0896
...
...
@@ -110,7 +110,7 @@ var Sphere = function ( radius, segments_width, segments_height ) {
this
.
boundingSphere
=
{
radius
:
radius
};
}
}
;
Sphere
.
prototype
=
new
THREE
.
Geometry
();
Sphere
.
prototype
.
constructor
=
Sphere
;
src/materials/Uniforms.js
浏览文件 @
5c8a0896
var
Uniforms
=
{
clone
:
function
(
uniforms_src
)
{
var
u
,
p
,
parameter
,
uniforms_dst
=
{};
var
u
,
p
,
parameter
,
parameter_src
,
uniforms_dst
=
{};
for
(
u
in
uniforms_src
)
{
uniforms_dst
[
u
]
=
{};
for
(
p
in
uniforms_src
[
u
]
)
{
parameter_src
=
uniforms_src
[
u
][
p
];
if
(
parameter_src
instanceof
THREE
.
Color
||
parameter_src
instanceof
THREE
.
Vector3
||
parameter_src
instanceof
THREE
.
Texture
)
{
uniforms_dst
[
u
][
p
]
=
parameter_src
.
clone
();
}
else
{
uniforms_dst
[
u
][
p
]
=
parameter_src
;
}
}
}
return
uniforms_dst
;
}
}
}
;
src/materials/mappings/CubeReflectionMapping.js
浏览文件 @
5c8a0896
/**
* @author mr.doob / http://mrdoob.com/
*/
THREE
.
CubeReflectionMapping
=
function
()
{
}
};
src/materials/mappings/CubeRefractionMapping.js
浏览文件 @
5c8a0896
/**
* @author mr.doob / http://mrdoob.com/
*/
THREE
.
CubeRefractionMapping
=
function
()
{
}
};
src/materials/mappings/LatitudeReflectionMapping.js
浏览文件 @
5c8a0896
/**
* @author mr.doob / http://mrdoob.com/
*/
THREE
.
LatitudeReflectionMapping
=
function
()
{
}
};
src/materials/mappings/LatitudeRefractionMapping.js
浏览文件 @
5c8a0896
/**
* @author mr.doob / http://mrdoob.com/
*/
THREE
.
LatitudeRefractionMapping
=
function
()
{
}
};
src/materials/mappings/SphericalReflectionMapping.js
浏览文件 @
5c8a0896
/**
* @author mr.doob / http://mrdoob.com/
*/
THREE
.
SphericalReflectionMapping
=
function
()
{
}
};
src/materials/mappings/SphericalRefractionMapping.js
浏览文件 @
5c8a0896
/**
* @author mr.doob / http://mrdoob.com/
*/
THREE
.
SphericalRefractionMapping
=
function
()
{
}
};
src/materials/mappings/UVMapping.js
浏览文件 @
5c8a0896
/**
* @author mr.doob / http://mrdoob.com/
*/
THREE
.
UVMapping
=
function
()
{
}
};
src/renderers/WebGLRenderer.js
浏览文件 @
5c8a0896
...
...
@@ -36,14 +36,14 @@ THREE.WebGLRenderer = function ( parameters ) {
// heuristics to create shader parameters according to lights in the scene
// (not to blow over maxLights budget)
maxLightCount
=
allocateLights
(
parameters
.
scene
,
4
)
;
maxLightCount
=
allocateLights
(
parameters
.
scene
,
4
)
,
fog
=
parameters
.
scene
?
parameters
.
scene
.
fog
:
null
,
antialias
=
parameters
.
antialias
!=
undefined
?
parameters
.
antialias
:
true
,
clearColor
=
parameters
.
clearColor
?
new
THREE
.
Color
(
parameters
.
clearColor
)
:
new
THREE
.
Color
(
0x000000
),
clearAlpha
=
parameters
.
clearAlpha
?
parameters
.
clearAlpha
:
0
;
this
.
domElement
=
_canvas
;
this
.
autoClear
=
true
;
...
...
@@ -63,12 +63,12 @@ THREE.WebGLRenderer = function ( parameters ) {
};
this
.
setClearColor
=
function
(
hex
,
alpha
)
{
var
color
=
new
THREE
.
Color
(
hex
);
_gl
.
clearColor
(
color
.
r
,
color
.
g
,
color
.
b
,
alpha
);
};
this
.
clear
=
function
()
{
_gl
.
clear
(
_gl
.
COLOR_BUFFER_BIT
|
_gl
.
DEPTH_BUFFER_BIT
);
...
...
@@ -172,7 +172,7 @@ THREE.WebGLRenderer = function ( parameters ) {
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
=
[],
lineArray
=
[],
...
...
@@ -371,7 +371,7 @@ THREE.WebGLRenderer = function ( parameters ) {
geometryChunk
.
__webGLLineCount
=
lineArray
.
length
;
};
function
setMaterialShaders
(
material
,
shaders
)
{
material
.
fragment_shader
=
shaders
.
fragment_shader
;
...
...
@@ -381,36 +381,36 @@ THREE.WebGLRenderer = function ( parameters ) {
};
function
refreshUniforms
(
material
,
fog
)
{
material
.
uniforms
.
color
.
value
.
setHex
(
material
.
color
.
hex
);
material
.
uniforms
.
opacity
.
value
=
material
.
opacity
;
material
.
uniforms
.
map
.
texture
=
material
.
map
;
material
.
uniforms
.
env_map
.
texture
=
material
.
env_map
;
material
.
uniforms
.
reflectivity
.
value
=
material
.
reflectivity
;
material
.
uniforms
.
refraction_ratio
.
value
=
material
.
refraction_ratio
;
material
.
uniforms
.
combine
.
value
=
material
.
combine
;
material
.
uniforms
.
useRefract
.
value
=
material
.
env_map
&&
material
.
env_map
.
mapping
instanceof
THREE
.
CubeRefractionMapping
;
if
(
fog
)
{
material
.
uniforms
.
fogColor
.
value
.
setHex
(
fog
.
color
.
hex
);
if
(
fog
instanceof
THREE
.
Fog
)
{
material
.
uniforms
.
fogNear
.
value
=
fog
.
near
;
material
.
uniforms
.
fogFar
.
value
=
fog
.
far
;
}
else
if
(
fog
instanceof
THREE
.
FogExp2
)
{
material
.
uniforms
.
fogDensity
.
value
=
fog
.
density
;
}
}
};
this
.
renderBuffer
=
function
(
camera
,
lights
,
fog
,
material
,
geometryChunk
)
{
var
mColor
,
mOpacity
,
mReflectivity
,
...
...
@@ -423,7 +423,7 @@ THREE.WebGLRenderer = function ( parameters ) {
if
(
material
instanceof
THREE
.
MeshShaderMaterial
||
material
instanceof
THREE
.
MeshDepthMaterial
||
material
instanceof
THREE
.
MeshNormalMaterial
||
material
instanceof
THREE
.
MeshNormalMaterial
||
material
instanceof
THREE
.
MeshBasicMaterial
)
{
if
(
!
material
.
program
)
{
...
...
@@ -440,11 +440,11 @@ THREE.WebGLRenderer = function ( parameters ) {
setMaterialShaders
(
material
,
THREE
.
ShaderLib
[
'
normal
'
]
);
}
else
if
(
material
instanceof
THREE
.
MeshBasicMaterial
)
{
setMaterialShaders
(
material
,
THREE
.
ShaderLib
[
'
basic
'
]
);
refreshUniforms
(
material
,
fog
);
}
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 ) {
this
.
loadMatrices
(
program
);
if
(
material
instanceof
THREE
.
MeshBasicMaterial
)
{
refreshUniforms
(
material
,
fog
);
}
if
(
material
instanceof
THREE
.
MeshShaderMaterial
||
material
instanceof
THREE
.
MeshDepthMaterial
||
material
instanceof
THREE
.
MeshNormalMaterial
||
...
...
@@ -536,16 +536,16 @@ THREE.WebGLRenderer = function ( parameters ) {
if
(
fog
)
{
_gl
.
uniform3f
(
program
.
uniforms
.
fogColor
,
fog
.
color
.
r
,
fog
.
color
.
g
,
fog
.
color
.
b
);
if
(
fog
instanceof
THREE
.
Fog
)
{
_gl
.
uniform1f
(
program
.
uniforms
.
fogNear
,
fog
.
near
);
_gl
.
uniform1f
(
program
.
uniforms
.
fogFar
,
fog
.
far
);
}
else
if
(
fog
instanceof
THREE
.
FogExp2
)
{
_gl
.
uniform1f
(
program
.
uniforms
.
fogDensity
,
fog
.
density
);
}
}
...
...
@@ -990,7 +990,7 @@ THREE.WebGLRenderer = function ( parameters ) {
_gl
.
clearColor
(
clearColor
.
r
,
clearColor
.
g
,
clearColor
.
b
,
clearAlpha
);
};
function
generateFragmentShader
(
maxDirLights
,
maxPointLights
)
{
var
chunks
=
[
...
...
@@ -1016,7 +1016,7 @@ THREE.WebGLRenderer = function ( parameters ) {
"
uniform float mShininess;
"
,
THREE
.
Snippets
[
"
fog_uniforms
"
],
"
uniform int pointLightNumber;
"
,
"
uniform int directionalLightNumber;
"
,
...
...
@@ -1158,7 +1158,7 @@ THREE.WebGLRenderer = function ( parameters ) {
"
}
"
,
THREE
.
Snippets
[
"
fog_fragment
"
],
"
}
"
];
return
chunks
.
join
(
"
\n
"
);
...
...
@@ -1273,7 +1273,7 @@ THREE.WebGLRenderer = function ( parameters ) {
parameters
.
fog
?
"
#define USE_FOG
"
:
""
,
parameters
.
fog
instanceof
THREE
.
FogExp2
?
"
#define FOG_EXP2
"
:
""
,
parameters
.
map
?
"
#define USE_MAP
"
:
""
,
parameters
.
env_map
?
"
#define USE_ENVMAP
"
:
""
,
...
...
@@ -1457,7 +1457,7 @@ THREE.WebGLRenderer = function ( parameters ) {
};
function
initUbershader
(
maxDirLights
,
maxPointLights
,
fog
)
{
var
vertex_shader
=
generateVertexShader
(
maxDirLights
,
maxPointLights
),
fragment_shader
=
generateFragmentShader
(
maxDirLights
,
maxPointLights
),
program
;
...
...
@@ -1580,7 +1580,7 @@ THREE.WebGLRenderer = function ( parameters ) {
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
++
)
{
...
...
@@ -1622,7 +1622,8 @@ THREE.WebGLRenderer = function ( parameters ) {
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
++
)
{
...
...
@@ -1688,28 +1689,28 @@ THREE.WebGLRenderer = function ( parameters ) {
};
THREE
.
Snippets
=
{
fog_uniforms
:
[
"
#ifdef USE_FOG
"
,
"
uniform vec3 fogColor;
"
,
"
#ifdef FOG_EXP2
"
,
"
uniform float fogDensity;
"
,
"
#else
"
,
"
uniform float fogNear;
"
,
"
uniform float fogFar;
"
,
"
#endif
"
,
"
#endif
"
].
join
(
"
\n
"
),
fog_fragment
:
[
"
#ifdef USE_FOG
"
,
"
float depth = gl_FragCoord.z / gl_FragCoord.w;
"
,
"
#ifdef FOG_EXP2
"
,
...
...
@@ -1719,13 +1720,13 @@ THREE.Snippets = {
"
#else
"
,
"
float fogFactor = smoothstep( fogNear, fogFar, depth );
"
,
"
#endif
"
,
"
gl_FragColor = mix( gl_FragColor, vec4( fogColor, 1.0 ), fogFactor );
"
,
"
#endif
"
].
join
(
"
\n
"
)
};
THREE
.
ShaderLib
=
{
...
...
@@ -1794,9 +1795,9 @@ THREE.ShaderLib = {
].
join
(
"
\n
"
)
},
'
basic
'
:
{
uniforms
:
{
"
color
"
:
{
type
:
"
c
"
,
value
:
new
THREE
.
Color
(
0xeeeeee
)
},
"
opacity
"
:
{
type
:
"
f
"
,
value
:
1
},
"
map
"
:
{
type
:
"
t
"
,
value
:
0
,
texture
:
null
},
...
...
@@ -1810,32 +1811,32 @@ THREE.ShaderLib = {
"
fogFar
"
:
{
type
:
"
f
"
,
value
:
2000
},
"
fogColor
"
:
{
type
:
"
c
"
,
value
:
new
THREE
.
Color
(
0xffffff
)
}
},
fragment_shader
:
[
"
uniform vec3 color;
"
,
"
uniform float opacity;
"
,
"
#ifdef USE_MAP
"
,
"
varying vec2 vUv;
"
,
"
uniform sampler2D map;
"
,
"
#endif
"
,
"
#ifdef USE_ENVMAP
"
,
"
varying vec3 vReflect;
"
,
"
uniform float reflectivity;
"
,
"
uniform samplerCube env_map;
"
,
"
uniform int combine;
"
,
"
#endif
"
,
THREE
.
Snippets
[
"
fog_uniforms
"
],
"
void main() {
"
,
"
vec4 mColor = vec4( color, opacity );
"
,
"
vec4 mapColor = 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 = {
"
#endif
"
,
// environment map
"
#ifdef USE_ENVMAP
"
,
"
cubeColor = textureCube( env_map, vec3( -vReflect.x, vReflect.yz ) );
"
,
"
if ( combine == 1 ) {
"
,
"
gl_FragColor = mix( mColor * mapColor, cubeColor, reflectivity );
"
,
...
...
@@ -1863,48 +1864,48 @@ THREE.ShaderLib = {
"
gl_FragColor = mColor * mapColor * cubeColor;
"
,
"
}
"
,
"
#else
"
,
"
gl_FragColor = mColor * mapColor;
"
,
"
#endif
"
,
THREE
.
Snippets
[
"
fog_fragment
"
],
"
}
"
].
join
(
"
\n
"
),
vertex_shader
:
[
"
#ifdef USE_MAP
"
,
"
varying vec2 vUv;
"
,
"
#endif
"
,
"
#ifdef USE_ENVMAP
"
,
"
varying vec3 vReflect;
"
,
"
uniform float refraction_ratio;
"
,
"
uniform bool useRefract;
"
,
"
#endif
"
,
"
void main() {
"
,
"
#ifdef USE_MAP
"
,
"
vUv = uv;
"
,
"
#endif
"
,
"
#ifdef USE_ENVMAP
"
,
"
vec4 mPosition = objectMatrix * vec4( position, 1.0 );
"
,
"
vec3 nWorld = mat3( objectMatrix[0].xyz, objectMatrix[1].xyz, objectMatrix[2].xyz ) * normal;
"
,
"
if ( useRefract ) {
"
,
"
vReflect = refract( normalize( mPosition.xyz - cameraPosition ), normalize( nWorld.xyz ), refraction_ratio );
"
,
...
...
@@ -1916,13 +1917,13 @@ THREE.ShaderLib = {
"
}
"
,
"
#endif
"
,
"
gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
"
,
"
}
"
].
join
(
"
\n
"
)
}
}
};
src/renderers/WebGLRenderer2.js
浏览文件 @
5c8a0896
...
...
@@ -14,6 +14,7 @@ THREE.WebGLRenderer2 = function ( antialias ) {
_canvas
=
document
.
createElement
(
'
canvas
'
),
_gl
,
_currentProgram
,
_modelViewMatrix
=
new
THREE
.
Matrix4
(),
_normalMatrix
=
new
THREE
.
Matrix4
(),
_viewMatrixArray
=
new
Float32Array
(
16
),
_modelViewMatrixArray
=
new
Float32Array
(
16
),
_projectionMatrixArray
=
new
Float32Array
(
16
),
...
...
@@ -100,7 +101,7 @@ THREE.WebGLRenderer2 = function ( antialias ) {
function
renderObject
(
object
)
{
var
geometry
,
material
,
m
,
n
l
,
var
geometry
,
material
,
m
,
m
l
,
program
,
uniforms
,
attributes
;
object
.
autoUpdateMatrix
&&
object
.
updateMatrix
();
...
...
@@ -268,11 +269,11 @@ THREE.WebGLRenderer2 = function ( antialias ) {
}
else
if
(
object
instanceof
THREE
.
Line
)
{
}
else
if
(
object
instanceof
THREE
.
Particle
)
{
}
...
...
@@ -283,10 +284,9 @@ THREE.WebGLRenderer2 = function ( antialias ) {
function
buildBuffers
(
geometry
)
{
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
=
[],
vertices
,
faces
,
lines
,
normals
,
uvs
,
buffers
=
{};
vertices
,
faces
,
lines
,
normals
,
uvs
;
for
(
f
=
0
,
fl
=
geometry
.
faces
.
length
;
f
<
fl
;
f
++
)
{
...
...
@@ -544,9 +544,9 @@ THREE.WebGLRenderer2 = function ( antialias ) {
identifiers
.
push
(
'
mColor
'
,
'
mOpacity
'
);
material
.
map
?
identifiers
.
push
(
'
tMap
'
)
:
null
;
material
.
env_map
?
identifiers
.
push
(
'
tSpherical
'
)
:
null
;
material
.
fog
?
identifiers
.
push
(
'
fog
'
,
'
fogColor
'
,
'
fogNear
'
,
'
fogFar
'
)
:
null
;
if
(
material
.
map
)
identifiers
.
push
(
'
tMap
'
)
;
if
(
material
.
env_map
)
identifiers
.
push
(
'
tSpherical
'
)
;
if
(
material
.
fog
)
identifiers
.
push
(
'
fog
'
,
'
fogColor
'
,
'
fogNear
'
,
'
fogFar
'
)
;
}
else
if
(
material
instanceof
THREE
.
MeshNormalMaterial
)
{
...
...
@@ -622,7 +622,7 @@ THREE.WebGLRenderer2 = function ( antialias ) {
function
compileProgram
(
vertex_shader
,
fragment_shader
)
{
var
program
=
_gl
.
createProgram
(),
shader
var
program
=
_gl
.
createProgram
(),
shader
,
prefix_vertex
,
prefix_fragment
;
prefix_vertex
=
[
maxVertexTextures
()
>
0
?
"
#define VERTEX_TEXTURES
"
:
""
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录