Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
fktz008
three.js
提交
1db78b84
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,发现更多精彩内容 >>
提交
1db78b84
编写于
2月 23, 2022
作者:
M
Mr.doob
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
PMREMGenerator: More clean up.
上级
8b38389e
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
26 addition
and
23 deletion
+26
-23
src/extras/PMREMGenerator.js
src/extras/PMREMGenerator.js
+26
-23
未找到文件。
src/extras/PMREMGenerator.js
浏览文件 @
1db78b84
...
...
@@ -86,8 +86,8 @@ class PMREMGenerator {
this
.
_sigmas
=
[];
this
.
_blurMaterial
=
null
;
this
.
_
equirectShader
=
null
;
this
.
_
cubemapShader
=
null
;
this
.
_
cubemapMaterial
=
null
;
this
.
_
equirectMaterial
=
null
;
this
.
_compileMaterial
(
this
.
_blurMaterial
);
...
...
@@ -105,10 +105,12 @@ class PMREMGenerator {
_oldTarget
=
this
.
_renderer
.
getRenderTarget
();
this
.
_setSize
(
256
);
const
cubeUVRenderTarget
=
this
.
_allocateTargets
();
cubeUVRenderTarget
.
depthBuffer
=
true
;
this
.
_sceneToCubeUV
(
scene
,
near
,
far
,
cubeUVRenderTarget
);
if
(
sigma
>
0
)
{
this
.
_blur
(
cubeUVRenderTarget
,
0
,
0
,
sigma
);
...
...
@@ -150,10 +152,10 @@ class PMREMGenerator {
*/
compileCubemapShader
()
{
if
(
this
.
_cubemap
Shader
===
null
)
{
if
(
this
.
_cubemap
Material
===
null
)
{
this
.
_cubemap
Shader
=
_getCubemapShader
();
this
.
_compileMaterial
(
this
.
_cubemap
Shader
);
this
.
_cubemap
Material
=
_getCubemapMaterial
();
this
.
_compileMaterial
(
this
.
_cubemap
Material
);
}
...
...
@@ -165,10 +167,10 @@ class PMREMGenerator {
*/
compileEquirectangularShader
()
{
if
(
this
.
_equirect
Shader
===
null
)
{
if
(
this
.
_equirect
Material
===
null
)
{
this
.
_equirect
Shader
=
_getEquirectMaterial
();
this
.
_compileMaterial
(
this
.
_equirect
Shader
);
this
.
_equirect
Material
=
_getEquirectMaterial
();
this
.
_compileMaterial
(
this
.
_equirect
Material
);
}
...
...
@@ -183,8 +185,8 @@ class PMREMGenerator {
this
.
_dispose
();
if
(
this
.
_cubemap
Shader
!==
null
)
this
.
_cubemapShader
.
dispose
();
if
(
this
.
_equirect
Shader
!==
null
)
this
.
_equirectShader
.
dispose
();
if
(
this
.
_cubemap
Material
!==
null
)
this
.
_cubemapMaterial
.
dispose
();
if
(
this
.
_equirect
Material
!==
null
)
this
.
_equirectMaterial
.
dispose
();
}
...
...
@@ -232,6 +234,7 @@ class PMREMGenerator {
}
_oldTarget
=
this
.
_renderer
.
getRenderTarget
();
const
cubeUVRenderTarget
=
renderTarget
||
this
.
_allocateTargets
();
this
.
_textureToCubeUV
(
texture
,
cubeUVRenderTarget
);
this
.
_applyPMREM
(
cubeUVRenderTarget
);
...
...
@@ -334,6 +337,7 @@ class PMREMGenerator {
for
(
let
i
=
0
;
i
<
6
;
i
++
)
{
const
col
=
i
%
3
;
if
(
col
===
0
)
{
cubeCamera
.
up
.
set
(
0
,
upSign
[
i
],
0
);
...
...
@@ -352,7 +356,9 @@ class PMREMGenerator {
}
const
size
=
this
.
_cubeSize
;
_setViewport
(
cubeUVRenderTarget
,
col
*
size
,
i
>
2
?
size
:
0
,
size
,
size
);
renderer
.
setRenderTarget
(
cubeUVRenderTarget
);
if
(
useSolidColor
)
{
...
...
@@ -382,25 +388,25 @@ class PMREMGenerator {
if
(
isCubeTexture
)
{
if
(
this
.
_cubemap
Shader
===
null
)
{
if
(
this
.
_cubemap
Material
===
null
)
{
this
.
_cubemap
Shader
=
_getCubemapShader
();
this
.
_cubemap
Material
=
_getCubemapMaterial
();
}
this
.
_cubemap
Shader
.
uniforms
.
flipEnvMap
.
value
=
(
texture
.
isRenderTargetTexture
===
false
)
?
-
1
:
1
;
this
.
_cubemap
Material
.
uniforms
.
flipEnvMap
.
value
=
(
texture
.
isRenderTargetTexture
===
false
)
?
-
1
:
1
;
}
else
{
if
(
this
.
_equirect
Shader
===
null
)
{
if
(
this
.
_equirect
Material
===
null
)
{
this
.
_equirect
Shader
=
_getEquirectMaterial
();
this
.
_equirect
Material
=
_getEquirectMaterial
();
}
}
const
material
=
isCubeTexture
?
this
.
_cubemap
Shader
:
this
.
_equirectShader
;
const
material
=
isCubeTexture
?
this
.
_cubemap
Material
:
this
.
_equirectMaterial
;
const
mesh
=
new
Mesh
(
this
.
_lodPlanes
[
0
],
material
);
const
uniforms
=
material
.
uniforms
;
...
...
@@ -408,6 +414,7 @@ class PMREMGenerator {
uniforms
[
'
envMap
'
].
value
=
texture
;
const
size
=
this
.
_cubeSize
;
_setViewport
(
cubeUVRenderTarget
,
0
,
0
,
3
*
size
,
2
*
size
);
renderer
.
setRenderTarget
(
cubeUVRenderTarget
);
...
...
@@ -751,7 +758,7 @@ function _getBlurShader( lodMax, width, height ) {
function
_getEquirectMaterial
()
{
const
shaderMaterial
=
new
ShaderMaterial
(
{
return
new
ShaderMaterial
(
{
name
:
'
EquirectangularToCubeUV
'
,
...
...
@@ -788,13 +795,11 @@ function _getEquirectMaterial() {
}
);
return
shaderMaterial
;
}
function
_getCubemap
Shader
()
{
function
_getCubemap
Material
()
{
const
shaderMaterial
=
new
ShaderMaterial
(
{
return
new
ShaderMaterial
(
{
name
:
'
CubemapToCubeUV
'
,
...
...
@@ -829,8 +834,6 @@ function _getCubemapShader() {
}
);
return
shaderMaterial
;
}
function
_getCommonVertexShader
()
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录