Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
车家大少爷
three.js
提交
67f4331f
T
three.js
项目概览
车家大少爷
/
three.js
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
three.js
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
67f4331f
编写于
8月 29, 2015
作者:
G
gero3
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
mrdoobapproves
上级
c386eb08
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
54 addition
and
54 deletion
+54
-54
src/renderers/WebGLRenderer.js
src/renderers/WebGLRenderer.js
+9
-9
src/renderers/webgl/WebGLProgramCache.js
src/renderers/webgl/WebGLProgramCache.js
+45
-45
未找到文件。
src/renderers/WebGLRenderer.js
浏览文件 @
67f4331f
...
...
@@ -1293,7 +1293,7 @@ THREE.WebGLRenderer = function ( parameters ) {
pushImmediateRenderItem
(
object
);
}
else
if
(
object
instanceof
THREE
.
Mesh
||
object
instanceof
THREE
.
Line
||
object
instanceof
THREE
.
PointCloud
){
}
else
if
(
object
instanceof
THREE
.
Mesh
||
object
instanceof
THREE
.
Line
||
object
instanceof
THREE
.
PointCloud
)
{
if
(
object
instanceof
THREE
.
SkinnedMesh
)
{
...
...
@@ -1404,14 +1404,14 @@ THREE.WebGLRenderer = function ( parameters ) {
}
}
function
initMaterial
(
material
,
lights
,
fog
,
object
)
{
var
materialProperties
=
properties
.
get
(
material
);
var
parameters
=
programCache
.
getParameters
(
material
,
lights
,
fog
,
object
);
var
parameters
=
programCache
.
getParameters
(
material
,
lights
,
fog
,
object
);
var
code
=
programCache
.
getProgramCode
(
material
,
parameters
);
var
programChange
=
true
;
if
(
!
materialProperties
.
program
)
{
...
...
@@ -1457,11 +1457,11 @@ THREE.WebGLRenderer = function ( parameters ) {
};
}
material
.
__webglShader
=
materialProperties
.
__webglShader
;
var
program
=
programCache
.
getProgram
(
material
,
parameters
,
code
);
var
program
=
programCache
.
getProgram
(
material
,
parameters
,
code
);
if
(
programChange
)
{
program
.
usedTimes
++
;
...
...
src/renderers/webgl/WebGLProgramCache.js
浏览文件 @
67f4331f
THREE
.
WebGLProgramCache
=
function
(
renderer1
,
gl
,
extensions
)
{
var
programs
=
[];
var
supportsVertexTextures
=
gl
.
getParameter
(
gl
.
MAX_VERTEX_TEXTURE_IMAGE_UNITS
)
>
0
;
var
supportsBoneTextures
=
gl
.
getParameter
(
gl
.
MAX_VERTEX_TEXTURE_IMAGE_UNITS
)
>
0
&&
extensions
.
get
(
'
OES_texture_float
'
);
THREE
.
WebGLProgramCache
=
function
(
renderer1
,
gl
,
extensions
)
{
var
programs
=
[];
var
supportsVertexTextures
=
gl
.
getParameter
(
gl
.
MAX_VERTEX_TEXTURE_IMAGE_UNITS
)
>
0
;
var
supportsBoneTextures
=
gl
.
getParameter
(
gl
.
MAX_VERTEX_TEXTURE_IMAGE_UNITS
)
>
0
&&
extensions
.
get
(
'
OES_texture_float
'
);
var
shaderIDs
=
{
MeshDepthMaterial
:
'
depth
'
,
MeshNormalMaterial
:
'
normal
'
,
...
...
@@ -14,13 +14,13 @@ THREE.WebGLProgramCache = function (renderer1,gl, extensions) {
LineDashedMaterial
:
'
dashed
'
,
PointCloudMaterial
:
'
particle_basic
'
};
var
parameterNames
=
[
"
precision
"
,
"
supportsVertexTextures
"
,
"
map
"
,
"
envMap
"
,
"
envMapMode
"
,
"
lightMap
"
,
"
aoMap
"
,
"
emissiveMap
"
,
"
bumpMap
"
,
"
normalMap
"
,
"
specularMap
"
,
"
alphaMap
"
,
"
combine
"
,
"
vertexColors
"
,
"
fog
"
,
"
useFog
"
,
"
fogExp
"
,
"
flatShading
"
,
"
sizeAttenuation
"
,
"
logarithmicDepthBuffer
"
,
"
skinning
"
,
"
maxBones
"
,
"
useVertexTexture
"
,
"
morphTargets
"
,
"
morphNormals
"
,
"
maxMorphTargets
"
,
"
maxMorphNormals
"
,
"
maxDirLights
"
,
"
maxPointLights
"
,
"
maxSpotLights
"
,
"
maxHemiLights
"
,
"
maxShadows
"
,
"
shadowMapEnabled
"
,
"
shadowMapType
"
,
"
shadowMapDebug
"
,
"
alphaTest
"
,
"
metal
"
,
"
doubleSided
"
,
"
flipSided
"
];
var
parameterNames
=
[
"
precision
"
,
"
supportsVertexTextures
"
,
"
map
"
,
"
envMap
"
,
"
envMapMode
"
,
"
lightMap
"
,
"
aoMap
"
,
"
emissiveMap
"
,
"
bumpMap
"
,
"
normalMap
"
,
"
specularMap
"
,
"
alphaMap
"
,
"
combine
"
,
"
vertexColors
"
,
"
fog
"
,
"
useFog
"
,
"
fogExp
"
,
"
flatShading
"
,
"
sizeAttenuation
"
,
"
logarithmicDepthBuffer
"
,
"
skinning
"
,
"
maxBones
"
,
"
useVertexTexture
"
,
"
morphTargets
"
,
"
morphNormals
"
,
"
maxMorphTargets
"
,
"
maxMorphNormals
"
,
"
maxDirLights
"
,
"
maxPointLights
"
,
"
maxSpotLights
"
,
"
maxHemiLights
"
,
"
maxShadows
"
,
"
shadowMapEnabled
"
,
"
shadowMapType
"
,
"
shadowMapDebug
"
,
"
alphaTest
"
,
"
metal
"
,
"
doubleSided
"
,
"
flipSided
"
];
function
allocateBones
(
object
)
{
if
(
supportsBoneTextures
&&
object
&&
object
.
skeleton
&&
object
.
skeleton
.
useVertexTexture
)
{
...
...
@@ -58,7 +58,7 @@ THREE.WebGLProgramCache = function (renderer1,gl, extensions) {
}
}
function
allocateLights
(
lights
)
{
var
dirLights
=
0
;
...
...
@@ -82,7 +82,7 @@ THREE.WebGLProgramCache = function (renderer1,gl, extensions) {
return
{
'
directional
'
:
dirLights
,
'
point
'
:
pointLights
,
'
spot
'
:
spotLights
,
'
hemi
'
:
hemiLights
};
}
function
allocateShadows
(
lights
)
{
var
maxShadows
=
0
;
...
...
@@ -101,14 +101,14 @@ THREE.WebGLProgramCache = function (renderer1,gl, extensions) {
return
maxShadows
;
};
this
.
getParameters
=
function
(
material
,
lights
,
fog
,
object
)
{
var
shaderID
=
shaderIDs
[
material
.
type
];
// heuristics to create shader parameters according to lights in the scene
this
.
getParameters
=
function
(
material
,
lights
,
fog
,
object
)
{
var
shaderID
=
shaderIDs
[
material
.
type
];
// heuristics to create shader parameters according to lights in the scene
// (not to blow over maxLights budget)
var
maxLightCount
=
allocateLights
(
lights
);
var
maxLightCount
=
allocateLights
(
lights
);
var
maxShadows
=
allocateShadows
(
lights
);
var
maxBones
=
allocateBones
(
object
);
var
precision
=
renderer1
.
getPrecision
();
...
...
@@ -126,8 +126,8 @@ THREE.WebGLProgramCache = function (renderer1,gl, extensions) {
}
var
parameters
=
{
shaderID
:
shaderID
,
shaderID
:
shaderID
,
precision
:
precision
,
supportsVertexTextures
:
supportsVertexTextures
,
...
...
@@ -181,13 +181,13 @@ THREE.WebGLProgramCache = function (renderer1,gl, extensions) {
flipSided
:
material
.
side
===
THREE
.
BackSide
};
return
parameters
;
};
this
.
getProgramCode
=
function
(
material
,
parameters
)
{
this
.
getProgramCode
=
function
(
material
,
parameters
)
{
var
chunks
=
[];
if
(
parameters
.
shaderID
)
{
...
...
@@ -212,23 +212,23 @@ THREE.WebGLProgramCache = function (renderer1,gl, extensions) {
}
for
(
var
i
=
0
;
i
<
parameterNames
.
length
;
i
++
)
{
var
parameterName
=
parameterNames
[
i
];
for
(
var
i
=
0
;
i
<
parameterNames
.
length
;
i
++
)
{
var
parameterName
=
parameterNames
[
i
];
chunks
.
push
(
parameterName
);
chunks
.
push
(
parameters
[
parameterName
]
);
}
return
chunks
.
join
();
};
this
.
getProgram
=
function
(
material
,
parameters
,
code
)
{
var
program
;
// Check if code has been already compiled
};
this
.
getProgram
=
function
(
material
,
parameters
,
code
)
{
var
program
;
// Check if code has been already compiled
for
(
var
p
=
0
,
pl
=
programs
.
length
;
p
<
pl
;
p
++
)
{
var
programInfo
=
programs
[
p
];
...
...
@@ -244,14 +244,14 @@ THREE.WebGLProgramCache = function (renderer1,gl, extensions) {
}
if
(
program
===
undefined
)
{
program
=
new
THREE
.
WebGLProgram
(
renderer1
,
code
,
material
,
parameters
);
programs
.
push
(
program
);
}
return
program
;
}
}
};
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录