Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
车家大少爷
three.js
提交
8dc9e7c4
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,发现更多精彩内容 >>
提交
8dc9e7c4
编写于
11月 26, 2019
作者:
E
Emmett Lalish
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
added dispose method
上级
b54a2efd
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
86 addition
and
6 deletion
+86
-6
examples/js/pmrem/PMREMGenerator.js
examples/js/pmrem/PMREMGenerator.js
+39
-1
examples/jsm/pmrem/PMREMGenerator.d.ts
examples/jsm/pmrem/PMREMGenerator.d.ts
+1
-0
examples/jsm/pmrem/PMREMGenerator.js
examples/jsm/pmrem/PMREMGenerator.js
+39
-1
examples/webgl_materials_envmaps_hdr.html
examples/webgl_materials_envmaps_hdr.html
+7
-4
未找到文件。
examples/js/pmrem/PMREMGenerator.js
浏览文件 @
8dc9e7c4
...
...
@@ -38,6 +38,8 @@ THREE.PMREMGenerator = ( function () {
var
_flatCamera
=
new
THREE
.
OrthographicCamera
();
var
_blurMaterial
=
_getBlurShader
(
MAX_SAMPLES
);
var
_equirectShader
=
null
;
var
_cubemapShader
=
null
;
var
{
_lodPlanes
,
_sizeLods
,
_sigmas
}
=
_createPlanes
();
var
_pingPongRenderTarget
=
null
;
...
...
@@ -124,6 +126,25 @@ THREE.PMREMGenerator = ( function () {
},
/**
* Disposes of the PMREMGenerator's internal memory. Note that PMREMGenerator is a static class,
* so you should not need more than one PMREMGenerator object. If you do, calling dispose() on
* one of them will cause any others to also become unusable.
*/
dispose
:
function
()
{
_blurMaterial
.
dispose
();
if
(
_cubemapShader
!=
null
)
_cubemapShader
.
dispose
();
if
(
_equirectShader
!=
null
)
_equirectShader
.
dispose
();
var
plane
;
for
(
plane
of
_lodPlanes
)
{
plane
.
dispose
();
}
},
};
function
_createPlanes
()
{
...
...
@@ -300,7 +321,24 @@ THREE.PMREMGenerator = ( function () {
function
_textureToCubeUV
(
texture
,
cubeUVRenderTarget
)
{
var
scene
=
new
THREE
.
Scene
();
var
material
=
texture
.
isCubeTexture
?
_getCubemapShader
()
:
_getEquirectShader
();
if
(
texture
.
isCubeTexture
)
{
if
(
_cubemapShader
==
null
)
{
_cubemapShader
=
_getCubemapShader
();
}
}
else
{
if
(
_equirectShader
==
null
)
{
_equirectShader
=
_getEquirectShader
();
}
}
var
material
=
texture
.
isCubeTexture
?
_cubemapShader
:
_equirectShader
;
scene
.
add
(
new
THREE
.
Mesh
(
_lodPlanes
[
0
],
material
)
);
var
uniforms
=
material
.
uniforms
;
...
...
examples/jsm/pmrem/PMREMGenerator.d.ts
浏览文件 @
8dc9e7c4
...
...
@@ -12,5 +12,6 @@ export class PMREMGenerator {
fromScene
(
scene
:
Scene
,
sigma
?:
number
,
near
?:
number
,
far
?:
number
):
WebGLRenderTarget
;
fromEquirectangular
(
equirectangular
:
Texture
):
WebGLRenderTarget
;
fromCubemap
(
cubemap
:
CubeTexture
):
WebGLRenderTarget
;
dispose
():
void
;
}
examples/jsm/pmrem/PMREMGenerator.js
浏览文件 @
8dc9e7c4
...
...
@@ -64,6 +64,8 @@ var PMREMGenerator = ( function () {
var
_flatCamera
=
new
OrthographicCamera
();
var
_blurMaterial
=
_getBlurShader
(
MAX_SAMPLES
);
var
_equirectShader
=
null
;
var
_cubemapShader
=
null
;
var
{
_lodPlanes
,
_sizeLods
,
_sigmas
}
=
_createPlanes
();
var
_pingPongRenderTarget
=
null
;
...
...
@@ -150,6 +152,25 @@ var PMREMGenerator = ( function () {
},
/**
* Disposes of the PMREMGenerator's internal memory. Note that PMREMGenerator is a static class,
* so you should not need more than one PMREMGenerator object. If you do, calling dispose() on
* one of them will cause any others to also become unusable.
*/
dispose
:
function
()
{
_blurMaterial
.
dispose
();
if
(
_cubemapShader
!=
null
)
_cubemapShader
.
dispose
();
if
(
_equirectShader
!=
null
)
_equirectShader
.
dispose
();
var
plane
;
for
(
plane
of
_lodPlanes
)
{
plane
.
dispose
();
}
},
};
function
_createPlanes
()
{
...
...
@@ -326,7 +347,24 @@ var PMREMGenerator = ( function () {
function
_textureToCubeUV
(
texture
,
cubeUVRenderTarget
)
{
var
scene
=
new
Scene
();
var
material
=
texture
.
isCubeTexture
?
_getCubemapShader
()
:
_getEquirectShader
();
if
(
texture
.
isCubeTexture
)
{
if
(
_cubemapShader
==
null
)
{
_cubemapShader
=
_getCubemapShader
();
}
}
else
{
if
(
_equirectShader
==
null
)
{
_equirectShader
=
_getEquirectShader
();
}
}
var
material
=
texture
.
isCubeTexture
?
_cubemapShader
:
_equirectShader
;
scene
.
add
(
new
Mesh
(
_lodPlanes
[
0
],
material
)
);
var
uniforms
=
material
.
uniforms
;
...
...
examples/webgl_materials_envmaps_hdr.html
浏览文件 @
8dc9e7c4
...
...
@@ -77,14 +77,19 @@
planeMesh
.
rotation
.
x
=
-
Math
.
PI
*
0.5
;
scene
.
add
(
planeMesh
);
var
hdrUrls
=
[
'
px.hdr
'
,
'
nx.hdr
'
,
'
py.hdr
'
,
'
ny.hdr
'
,
'
pz.hdr
'
,
'
nz.hdr
'
];
var
pmremGenerator
=
new
PMREMGenerator
(
renderer
);
THREE
.
DefaultLoadingManager
.
onLoad
=
function
(
)
{
pmremGenerator
.
dispose
();
}
var
hdrUrls
=
[
'
px.hdr
'
,
'
nx.hdr
'
,
'
py.hdr
'
,
'
ny.hdr
'
,
'
pz.hdr
'
,
'
nz.hdr
'
];
hdrCubeMap
=
new
HDRCubeTextureLoader
()
.
setPath
(
'
./textures/cube/pisaHDR/
'
)
.
setDataType
(
THREE
.
UnsignedByteType
)
.
load
(
hdrUrls
,
function
()
{
var
pmremGenerator
=
new
PMREMGenerator
(
renderer
);
hdrCubeRenderTarget
=
pmremGenerator
.
fromCubemap
(
hdrCubeMap
);
hdrCubeMap
.
magFilter
=
THREE
.
LinearFilter
;
...
...
@@ -99,7 +104,6 @@
ldrCubeMap
.
encoding
=
THREE
.
GammaEncoding
;
var
pmremGenerator
=
new
PMREMGenerator
(
renderer
);
ldrCubeRenderTarget
=
pmremGenerator
.
fromCubemap
(
ldrCubeMap
);
}
);
...
...
@@ -113,7 +117,6 @@
rgbmCubeMap
.
encoding
=
THREE
.
RGBM16Encoding
;
rgbmCubeMap
.
format
=
THREE
.
RGBAFormat
;
var
pmremGenerator
=
new
PMREMGenerator
(
renderer
);
rgbmCubeRenderTarget
=
pmremGenerator
.
fromCubemap
(
rgbmCubeMap
);
rgbmCubeMap
.
magFilter
=
THREE
.
LinearFilter
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录