Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
fktz008
three.js
提交
85f911fb
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,发现更多精彩内容 >>
提交
85f911fb
编写于
1月 14, 2019
作者:
M
Marc-Sefan Cassola
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
removed renderTarget and forceClear from WebGLRenderer.render() in example code
上级
90df746c
变更
51
隐藏空白更改
内联
并排
Showing
51 changed file
with
403 addition
and
135 deletion
+403
-135
examples/js/GPUComputationRenderer.js
examples/js/GPUComputationRenderer.js
+8
-2
examples/js/Ocean.js
examples/js/Ocean.js
+32
-11
examples/js/cameras/CinematicCamera.js
examples/js/cameras/CinematicCamera.js
+11
-2
examples/js/crossfade/scenes.js
examples/js/crossfade/scenes.js
+11
-3
examples/js/crossfade/transition.js
examples/js/crossfade/transition.js
+4
-2
examples/js/effects/AnaglyphEffect.js
examples/js/effects/AnaglyphEffect.js
+11
-2
examples/js/effects/OutlineEffect.js
examples/js/effects/OutlineEffect.js
+24
-4
examples/js/effects/ParallaxBarrierEffect.js
examples/js/effects/ParallaxBarrierEffect.js
+8
-1
examples/js/loaders/EquirectangularToCubeGenerator.js
examples/js/loaders/EquirectangularToCubeGenerator.js
+7
-1
examples/js/nodes/inputs/RTTNode.js
examples/js/nodes/inputs/RTTNode.js
+6
-2
examples/js/nodes/postprocessing/NodePostProcessing.js
examples/js/nodes/postprocessing/NodePostProcessing.js
+3
-1
examples/js/objects/Fire.js
examples/js/objects/Fire.js
+12
-6
examples/js/objects/Reflector.js
examples/js/objects/Reflector.js
+3
-1
examples/js/objects/Refractor.js
examples/js/objects/Refractor.js
+3
-1
examples/js/objects/Water.js
examples/js/objects/Water.js
+3
-1
examples/js/pmrem/PMREMCubeUVPacker.js
examples/js/pmrem/PMREMCubeUVPacker.js
+2
-1
examples/js/pmrem/PMREMGenerator.js
examples/js/pmrem/PMREMGenerator.js
+3
-1
examples/js/postprocessing/AdaptiveToneMappingPass.js
examples/js/postprocessing/AdaptiveToneMappingPass.js
+11
-3
examples/js/postprocessing/AfterimagePass.js
examples/js/postprocessing/AfterimagePass.js
+16
-8
examples/js/postprocessing/BloomPass.js
examples/js/postprocessing/BloomPass.js
+9
-3
examples/js/postprocessing/BokehPass.js
examples/js/postprocessing/BokehPass.js
+8
-3
examples/js/postprocessing/CubeTexturePass.js
examples/js/postprocessing/CubeTexturePass.js
+3
-1
examples/js/postprocessing/DotScreenPass.js
examples/js/postprocessing/DotScreenPass.js
+4
-1
examples/js/postprocessing/EffectComposer.js
examples/js/postprocessing/EffectComposer.js
+4
-0
examples/js/postprocessing/FilmPass.js
examples/js/postprocessing/FilmPass.js
+4
-1
examples/js/postprocessing/GlitchPass.js
examples/js/postprocessing/GlitchPass.js
+4
-1
examples/js/postprocessing/HalftonePass.js
examples/js/postprocessing/HalftonePass.js
+4
-1
examples/js/postprocessing/MaskPass.js
examples/js/postprocessing/MaskPass.js
+7
-2
examples/js/postprocessing/OutlinePass.js
examples/js/postprocessing/OutlinePass.js
+27
-9
examples/js/postprocessing/RenderPass.js
examples/js/postprocessing/RenderPass.js
+3
-1
examples/js/postprocessing/SAOPass.js
examples/js/postprocessing/SAOPass.js
+12
-7
examples/js/postprocessing/SMAAPass.js
examples/js/postprocessing/SMAAPass.js
+10
-3
examples/js/postprocessing/SSAARenderPass.js
examples/js/postprocessing/SSAARenderPass.js
+7
-2
examples/js/postprocessing/SSAOPass.js
examples/js/postprocessing/SSAOPass.js
+12
-8
examples/js/postprocessing/SavePass.js
examples/js/postprocessing/SavePass.js
+3
-1
examples/js/postprocessing/ShaderPass.js
examples/js/postprocessing/ShaderPass.js
+4
-1
examples/js/postprocessing/TAARenderPass.js
examples/js/postprocessing/TAARenderPass.js
+13
-4
examples/js/postprocessing/TexturePass.js
examples/js/postprocessing/TexturePass.js
+3
-1
examples/js/postprocessing/UnrealBloomPass.js
examples/js/postprocessing/UnrealBloomPass.js
+19
-7
examples/webgl_depth_texture.html
examples/webgl_depth_texture.html
+3
-1
examples/webgl_interactive_cubes_gpu.html
examples/webgl_interactive_cubes_gpu.html
+3
-1
examples/webgl_interactive_instances_gpu.html
examples/webgl_interactive_instances_gpu.html
+5
-2
examples/webgl_materials_nodes.html
examples/webgl_materials_nodes.html
+4
-1
examples/webgl_postprocessing_dof2.html
examples/webgl_postprocessing_dof2.html
+8
-2
examples/webgl_postprocessing_godrays.html
examples/webgl_postprocessing_godrays.html
+13
-5
examples/webgl_read_float_buffer.html
examples/webgl_read_float_buffer.html
+4
-1
examples/webgl_rtt.html
examples/webgl_rtt.html
+5
-2
examples/webgl_simple_gi.html
examples/webgl_simple_gi.html
+3
-1
examples/webgl_terrain_dynamic.html
examples/webgl_terrain_dynamic.html
+7
-2
examples/webgl_tiled_forward.html
examples/webgl_tiled_forward.html
+2
-1
src/cameras/CubeCamera.js
src/cameras/CubeCamera.js
+8
-6
未找到文件。
examples/js/GPUComputationRenderer.js
浏览文件 @
85f911fb
...
...
@@ -277,7 +277,9 @@ function GPUComputationRenderer( sizeX, sizeY, renderer ) {
addResolutionDefine
(
material
);
return
material
;
}
this
.
createShaderMaterial
=
createShaderMaterial
;
this
.
createRenderTarget
=
function
(
sizeXTexture
,
sizeYTexture
,
wrapS
,
wrapT
,
minFilter
,
magFilter
)
{
...
...
@@ -316,7 +318,6 @@ function GPUComputationRenderer( sizeX, sizeY, renderer ) {
};
this
.
renderTexture
=
function
(
input
,
output
)
{
// Takes a texture, and render out in rendertarget
...
...
@@ -333,10 +334,15 @@ function GPUComputationRenderer( sizeX, sizeY, renderer ) {
this
.
doRenderTarget
=
function
(
material
,
output
)
{
var
currentRenderTarget
=
renderer
.
getRenderTarget
();
mesh
.
material
=
material
;
renderer
.
render
(
scene
,
camera
,
output
);
renderer
.
setRenderTarget
(
output
);
renderer
.
render
(
scene
,
camera
);
mesh
.
material
=
passThruShader
;
renderer
.
setRenderTarget
(
currentRenderTarget
);
};
// Shaders
...
...
examples/js/Ocean.js
浏览文件 @
85f911fb
...
...
@@ -256,7 +256,10 @@ THREE.Ocean.prototype.renderInitialSpectrum = function () {
this
.
scene
.
overrideMaterial
=
this
.
materialInitialSpectrum
;
this
.
materialInitialSpectrum
.
uniforms
.
u_wind
.
value
.
set
(
this
.
windX
,
this
.
windY
);
this
.
materialInitialSpectrum
.
uniforms
.
u_size
.
value
=
this
.
size
;
this
.
renderer
.
render
(
this
.
scene
,
this
.
oceanCamera
,
this
.
initialSpectrumFramebuffer
,
true
);
this
.
renderer
.
setRenderTarget
(
this
.
initialSpectrumFramebuffer
);
this
.
renderer
.
clear
();
this
.
renderer
.
render
(
this
.
scene
,
this
.
oceanCamera
);
};
...
...
@@ -269,14 +272,15 @@ THREE.Ocean.prototype.renderWavePhase = function () {
this
.
materialPhase
.
uniforms
.
u_phases
.
value
=
this
.
pingPhaseTexture
;
this
.
initial
=
false
;
}
else
{
}
else
{
this
.
materialPhase
.
uniforms
.
u_phases
.
value
=
this
.
pingPhase
?
this
.
pingPhaseFramebuffer
.
texture
:
this
.
pongPhaseFramebuffer
.
texture
;
}
this
.
materialPhase
.
uniforms
.
u_deltaTime
.
value
=
this
.
deltaTime
;
this
.
materialPhase
.
uniforms
.
u_size
.
value
=
this
.
size
;
this
.
renderer
.
render
(
this
.
scene
,
this
.
oceanCamera
,
this
.
pingPhase
?
this
.
pongPhaseFramebuffer
:
this
.
pingPhaseFramebuffer
);
this
.
renderer
.
setRenderTarget
(
this
.
pingPhase
?
this
.
pongPhaseFramebuffer
:
this
.
pingPhaseFramebuffer
);
this
.
renderer
.
render
(
this
.
scene
,
this
.
oceanCamera
);
this
.
pingPhase
=
!
this
.
pingPhase
;
};
...
...
@@ -288,7 +292,9 @@ THREE.Ocean.prototype.renderSpectrum = function () {
this
.
materialSpectrum
.
uniforms
.
u_phases
.
value
=
this
.
pingPhase
?
this
.
pingPhaseFramebuffer
.
texture
:
this
.
pongPhaseFramebuffer
.
texture
;
this
.
materialSpectrum
.
uniforms
.
u_choppiness
.
value
=
this
.
choppiness
;
this
.
materialSpectrum
.
uniforms
.
u_size
.
value
=
this
.
size
;
this
.
renderer
.
render
(
this
.
scene
,
this
.
oceanCamera
,
this
.
spectrumFramebuffer
);
this
.
renderer
.
setRenderTarget
(
this
.
spectrumFramebuffer
);
this
.
renderer
.
render
(
this
.
scene
,
this
.
oceanCamera
);
};
...
...
@@ -305,19 +311,25 @@ THREE.Ocean.prototype.renderSpectrumFFT = function() {
this
.
materialOceanHorizontal
.
uniforms
.
u_input
.
value
=
this
.
spectrumFramebuffer
.
texture
;
this
.
materialOceanHorizontal
.
uniforms
.
u_subtransformSize
.
value
=
Math
.
pow
(
2
,
(
i
%
(
iterations
)
)
+
1
);
this
.
renderer
.
render
(
this
.
scene
,
this
.
oceanCamera
,
this
.
pingTransformFramebuffer
);
this
.
renderer
.
setRenderTarget
(
this
.
pingTransformFramebuffer
);
this
.
renderer
.
render
(
this
.
scene
,
this
.
oceanCamera
);
}
else
if
(
i
%
2
===
1
)
{
this
.
materialOceanHorizontal
.
uniforms
.
u_input
.
value
=
this
.
pingTransformFramebuffer
.
texture
;
this
.
materialOceanHorizontal
.
uniforms
.
u_subtransformSize
.
value
=
Math
.
pow
(
2
,
(
i
%
(
iterations
)
)
+
1
);
this
.
renderer
.
render
(
this
.
scene
,
this
.
oceanCamera
,
this
.
pongTransformFramebuffer
);
this
.
renderer
.
setRenderTarget
(
this
.
pongTransformFramebuffer
);
this
.
renderer
.
render
(
this
.
scene
,
this
.
oceanCamera
);
}
else
{
this
.
materialOceanHorizontal
.
uniforms
.
u_input
.
value
=
this
.
pongTransformFramebuffer
.
texture
;
this
.
materialOceanHorizontal
.
uniforms
.
u_subtransformSize
.
value
=
Math
.
pow
(
2
,
(
i
%
(
iterations
)
)
+
1
);
this
.
renderer
.
render
(
this
.
scene
,
this
.
oceanCamera
,
this
.
pingTransformFramebuffer
);
this
.
renderer
.
setRenderTarget
(
this
.
pingTransformFramebuffer
);
this
.
renderer
.
render
(
this
.
scene
,
this
.
oceanCamera
);
}
...
...
@@ -329,19 +341,25 @@ THREE.Ocean.prototype.renderSpectrumFFT = function() {
this
.
materialOceanVertical
.
uniforms
.
u_input
.
value
=
(
iterations
%
2
===
0
)
?
this
.
pingTransformFramebuffer
.
texture
:
this
.
pongTransformFramebuffer
.
texture
;
this
.
materialOceanVertical
.
uniforms
.
u_subtransformSize
.
value
=
Math
.
pow
(
2
,
(
i
%
(
iterations
)
)
+
1
);
this
.
renderer
.
render
(
this
.
scene
,
this
.
oceanCamera
,
this
.
displacementMapFramebuffer
);
this
.
renderer
.
setRenderTarget
(
this
.
displacementMapFramebuffer
);
this
.
renderer
.
render
(
this
.
scene
,
this
.
oceanCamera
);
}
else
if
(
i
%
2
===
1
)
{
this
.
materialOceanVertical
.
uniforms
.
u_input
.
value
=
this
.
pingTransformFramebuffer
.
texture
;
this
.
materialOceanVertical
.
uniforms
.
u_subtransformSize
.
value
=
Math
.
pow
(
2
,
(
i
%
(
iterations
)
)
+
1
);
this
.
renderer
.
render
(
this
.
scene
,
this
.
oceanCamera
,
this
.
pongTransformFramebuffer
);
this
.
renderer
.
setRenderTarget
(
this
.
pongTransformFramebuffer
);
this
.
renderer
.
render
(
this
.
scene
,
this
.
oceanCamera
);
}
else
{
this
.
materialOceanVertical
.
uniforms
.
u_input
.
value
=
this
.
pongTransformFramebuffer
.
texture
;
this
.
materialOceanVertical
.
uniforms
.
u_subtransformSize
.
value
=
Math
.
pow
(
2
,
(
i
%
(
iterations
)
)
+
1
);
this
.
renderer
.
render
(
this
.
scene
,
this
.
oceanCamera
,
this
.
pingTransformFramebuffer
);
this
.
renderer
.
setRenderTarget
(
this
.
pingTransformFramebuffer
);
this
.
renderer
.
render
(
this
.
scene
,
this
.
oceanCamera
);
}
...
...
@@ -354,6 +372,9 @@ THREE.Ocean.prototype.renderNormalMap = function () {
this
.
scene
.
overrideMaterial
=
this
.
materialNormal
;
if
(
this
.
changed
)
this
.
materialNormal
.
uniforms
.
u_size
.
value
=
this
.
size
;
this
.
materialNormal
.
uniforms
.
u_displacementMap
.
value
=
this
.
displacementMapFramebuffer
.
texture
;
this
.
renderer
.
render
(
this
.
scene
,
this
.
oceanCamera
,
this
.
normalMapFramebuffer
,
true
);
this
.
renderer
.
setRenderTarget
(
this
.
normalMapFramebuffer
);
this
.
renderer
.
clear
();
this
.
renderer
.
render
(
this
.
scene
,
this
.
oceanCamera
);
};
examples/js/cameras/CinematicCamera.js
浏览文件 @
85f911fb
...
...
@@ -177,22 +177,31 @@ THREE.CinematicCamera.prototype.renderCinematic = function ( scene, renderer ) {
if
(
this
.
postprocessing
.
enabled
)
{
var
currentRenderTarget
=
renderer
.
getRenderTarget
();
renderer
.
clear
();
// Render scene into texture
scene
.
overrideMaterial
=
null
;
renderer
.
render
(
scene
,
camera
,
this
.
postprocessing
.
rtTextureColor
,
true
);
renderer
.
setRenderTarget
(
this
.
postprocessing
.
rtTextureColor
);
renderer
.
clear
();
renderer
.
render
(
scene
,
camera
);
// Render depth into texture
scene
.
overrideMaterial
=
this
.
materialDepth
;
renderer
.
render
(
scene
,
camera
,
this
.
postprocessing
.
rtTextureDepth
,
true
);
renderer
.
setRenderTarget
(
this
.
postprocessing
.
rtTextureDepth
);
renderer
.
clear
();
renderer
.
render
(
scene
,
camera
,
this
.
postprocessing
.
rtTextureDepth
);
// Render bokeh composite
renderer
.
setRenderTarget
(
null
);
renderer
.
render
(
this
.
postprocessing
.
scene
,
this
.
postprocessing
.
camera
);
renderer
.
setRenderTarget
(
currentRenderTarget
);
}
};
examples/js/crossfade/scenes.js
浏览文件 @
85f911fb
...
...
@@ -101,11 +101,19 @@ function Scene( type, numObjects, cameraZ, fov, rotationSpeed, clearColor ) {
renderer
.
setClearColor
(
this
.
clearColor
);
if
(
rtt
)
renderer
.
render
(
this
.
scene
,
this
.
camera
,
this
.
fbo
,
true
);
else
if
(
rtt
)
{
renderer
.
setRenderTarget
(
this
.
fbo
);
renderer
.
clear
();
renderer
.
render
(
this
.
scene
,
this
.
camera
);
}
else
{
renderer
.
setRenderTarget
(
null
);
renderer
.
render
(
this
.
scene
,
this
.
camera
);
}
};
}
examples/js/crossfade/transition.js
浏览文件 @
85f911fb
function
Transition
(
sceneA
,
sceneB
)
{
function
Transition
(
sceneA
,
sceneB
)
{
this
.
scene
=
new
THREE
.
Scene
();
...
...
@@ -157,7 +157,9 @@ function Transition ( sceneA, sceneB ) {
this
.
sceneA
.
render
(
delta
,
true
);
this
.
sceneB
.
render
(
delta
,
true
);
renderer
.
render
(
this
.
scene
,
this
.
cameraOrtho
,
null
,
true
);
renderer
.
setRenderTarget
(
null
);
renderer
.
clear
();
renderer
.
render
(
this
.
scene
,
this
.
cameraOrtho
);
}
...
...
examples/js/effects/AnaglyphEffect.js
浏览文件 @
85f911fb
...
...
@@ -130,16 +130,25 @@ THREE.AnaglyphEffect = function ( renderer, width, height ) {
this
.
render
=
function
(
scene
,
camera
)
{
var
currentRenderTarget
=
renderer
.
getRenderTarget
();
scene
.
updateMatrixWorld
();
if
(
camera
.
parent
===
null
)
camera
.
updateMatrixWorld
();
_stereo
.
update
(
camera
);
renderer
.
render
(
scene
,
_stereo
.
cameraL
,
_renderTargetL
,
true
);
renderer
.
render
(
scene
,
_stereo
.
cameraR
,
_renderTargetR
,
true
);
renderer
.
setRenderTarget
(
_renderTargetL
);
renderer
.
clear
();
renderer
.
render
(
scene
,
_stereo
.
cameraL
);
renderer
.
setRenderTarget
(
_renderTargetR
);
renderer
.
clear
();
renderer
.
render
(
scene
,
_stereo
.
cameraR
);
renderer
.
render
(
_scene
,
_camera
);
renderer
.
setRenderTarget
(
currentRenderTarget
);
};
this
.
dispose
=
function
()
{
...
...
examples/js/effects/OutlineEffect.js
浏览文件 @
85f911fb
...
...
@@ -402,11 +402,31 @@ THREE.OutlineEffect = function ( renderer, parameters ) {
}
this
.
render
=
function
(
scene
,
camera
,
renderTarget
,
forceClear
)
{
this
.
render
=
function
(
scene
,
camera
)
{
var
renderTarget
;
var
forceClear
;
if
(
arguments
[
2
]
!==
undefined
)
{
console
.
warn
(
'
THREE.OutlineEffect.render(): the renderTarget argument has been removed. Use .setRenderTarget() instead.
'
);
renderTarget
=
arguments
[
2
];
}
if
(
arguments
[
3
]
!==
undefined
)
{
console
.
warn
(
'
THREE.OutlineEffect.render(): the forceClear argument has been removed. Use .clear() instead.
'
);
forceClear
=
arguments
[
3
];
}
renderer
.
setRenderTarget
(
renderTarget
);
if
(
forceClear
)
renderer
.
clear
();
if
(
this
.
enabled
===
false
)
{
renderer
.
render
(
scene
,
camera
,
renderTarget
,
forceClear
);
renderer
.
render
(
scene
,
camera
);
return
;
}
...
...
@@ -415,7 +435,7 @@ THREE.OutlineEffect = function ( renderer, parameters ) {
renderer
.
autoClear
=
this
.
autoClear
;
// 1. render normally
renderer
.
render
(
scene
,
camera
,
renderTarget
,
forceClear
);
renderer
.
render
(
scene
,
camera
);
// 2. render outline
var
currentSceneAutoUpdate
=
scene
.
autoUpdate
;
...
...
@@ -429,7 +449,7 @@ THREE.OutlineEffect = function ( renderer, parameters ) {
scene
.
traverse
(
setOutlineMaterial
);
renderer
.
render
(
scene
,
camera
,
renderTarget
);
renderer
.
render
(
scene
,
camera
);
scene
.
traverse
(
restoreOriginalMaterial
);
...
...
examples/js/effects/ParallaxBarrierEffect.js
浏览文件 @
85f911fb
...
...
@@ -87,8 +87,15 @@ THREE.ParallaxBarrierEffect = function ( renderer ) {
_stereo
.
update
(
camera
);
renderer
.
render
(
scene
,
_stereo
.
cameraL
,
_renderTargetL
,
true
);
renderer
.
setRenderTarget
(
_renderTargetL
);
renderer
.
clear
();
renderer
.
render
(
scene
,
_stereo
.
cameraL
);
renderer
.
setRenderTarget
(
_renderTargetR
);
renderer
.
clear
();
renderer
.
render
(
scene
,
_stereo
.
cameraR
,
_renderTargetR
,
true
);
renderer
.
setRenderTarget
(
null
);
renderer
.
render
(
_scene
,
_camera
);
};
...
...
examples/js/loaders/EquirectangularToCubeGenerator.js
浏览文件 @
85f911fb
...
...
@@ -152,6 +152,8 @@ THREE.EquirectangularToCubeGenerator = ( function () {
update
:
function
(
renderer
)
{
var
currentRenderTarget
=
renderer
.
getRenderTarget
();
boxMesh
.
material
.
uniforms
.
equirectangularMap
.
value
=
this
.
sourceTexture
;
for
(
var
i
=
0
;
i
<
6
;
i
++
)
{
...
...
@@ -164,10 +166,14 @@ THREE.EquirectangularToCubeGenerator = ( function () {
camera
.
up
.
set
(
v
.
u
[
0
],
v
.
u
[
1
],
v
.
u
[
2
]
);
camera
.
lookAt
(
v
.
t
[
0
],
v
.
t
[
1
],
v
.
t
[
2
]
);
renderer
.
render
(
scene
,
camera
,
this
.
renderTarget
,
true
);
renderer
.
setRenderTarget
(
this
.
renderTarget
);
renderer
.
clear
();
renderer
.
render
(
scene
,
camera
);
}
renderer
.
setRenderTarget
(
currentRenderTarget
);
return
this
.
renderTarget
.
texture
;
},
...
...
examples/js/nodes/inputs/RTTNode.js
浏览文件 @
85f911fb
...
...
@@ -72,7 +72,9 @@ RTTNode.prototype.updateFramesaveTo = function ( frame ) {
this
.
saveToCurrent
=
this
.
saveTo
;
frame
.
renderer
.
render
(
this
.
saveToScene
,
this
.
camera
,
this
.
saveTo
.
renderTarget
,
this
.
saveTo
.
clear
);
frame
.
renderer
.
setRenderTarget
(
this
.
saveTo
.
renderTarget
);
if
(
this
.
saveTo
.
clear
)
frame
.
renderer
.
clear
();
frame
.
renderer
.
render
(
this
.
saveToScene
,
this
.
camera
);
};
...
...
@@ -96,7 +98,9 @@ RTTNode.prototype.updateFrame = function ( frame ) {
}
frame
.
renderer
.
render
(
this
.
scene
,
this
.
camera
,
this
.
renderTarget
,
this
.
clear
);
frame
.
renderer
.
setRenderTarget
(
this
.
renderTarget
);
if
(
this
.
clear
)
frame
.
renderer
.
clear
();
frame
.
renderer
.
render
(
this
.
scene
,
this
.
camera
);
}
...
...
examples/js/nodes/postprocessing/NodePostProcessing.js
浏览文件 @
85f911fb
...
...
@@ -64,10 +64,12 @@ NodePostProcessing.prototype = {
frame
.
setRenderer
(
this
.
renderer
)
.
setRenderTexture
(
this
.
renderTarget
.
texture
);
this
.
renderer
.
render
(
scene
,
camera
,
this
.
renderTarget
);
this
.
renderer
.
setRenderTarget
(
this
.
renderTarget
);
this
.
renderer
.
render
(
scene
,
camera
);
frame
.
updateNode
(
this
.
material
);
this
.
renderer
.
setRenderTarget
(
null
);
this
.
renderer
.
render
(
this
.
scene
,
this
.
camera
);
},
...
...
examples/js/objects/Fire.js
浏览文件 @
85f911fb
...
...
@@ -342,7 +342,8 @@ THREE.Fire = function ( geometry, options ) {
this
.
sourceMaterial
.
uniforms
[
"
densityMap
"
].
value
=
this
.
field0
.
texture
;
renderer
.
render
(
this
.
fieldScene
,
this
.
orthoCamera
,
this
.
field1
);
renderer
.
setRenderTarget
(
this
.
field1
);
renderer
.
render
(
this
.
fieldScene
,
this
.
orthoCamera
);
this
.
sourceMesh
.
visible
=
false
;
...
...
@@ -356,7 +357,8 @@ THREE.Fire = function ( geometry, options ) {
this
.
diffuseMaterial
.
uniforms
[
"
densityMap
"
].
value
=
this
.
field0
.
texture
;
renderer
.
render
(
this
.
fieldScene
,
this
.
orthoCamera
,
this
.
field1
);
renderer
.
setRenderTarget
(
this
.
field1
);
renderer
.
render
(
this
.
fieldScene
,
this
.
orthoCamera
);
this
.
diffuseMesh
.
visible
=
false
;
...
...
@@ -370,7 +372,8 @@ THREE.Fire = function ( geometry, options ) {
this
.
driftMaterial
.
uniforms
[
"
densityMap
"
].
value
=
this
.
field0
.
texture
;
renderer
.
render
(
this
.
fieldScene
,
this
.
orthoCamera
,
this
.
field1
);
renderer
.
setRenderTarget
(
this
.
field1
);
renderer
.
render
(
this
.
fieldScene
,
this
.
orthoCamera
);
this
.
driftMesh
.
visible
=
false
;
...
...
@@ -386,7 +389,8 @@ THREE.Fire = function ( geometry, options ) {
this
.
projMaterial1
.
uniforms
[
"
densityMap
"
].
value
=
this
.
field0
.
texture
;
renderer
.
render
(
this
.
fieldScene
,
this
.
orthoCamera
,
this
.
fieldProj
);
renderer
.
setRenderTarget
(
this
.
fieldProj
);
renderer
.
render
(
this
.
fieldScene
,
this
.
orthoCamera
);
this
.
projMesh1
.
visible
=
false
;
...
...
@@ -398,7 +402,8 @@ THREE.Fire = function ( geometry, options ) {
for
(
var
i
=
0
;
i
<
20
;
i
++
)
{
renderer
.
render
(
this
.
fieldScene
,
this
.
orthoCamera
,
this
.
field1
);
renderer
.
setRenderTarget
(
this
.
field1
);
renderer
.
render
(
this
.
fieldScene
,
this
.
orthoCamera
);
var
temp
=
this
.
field1
;
this
.
field1
=
this
.
fieldProj
;
...
...
@@ -417,7 +422,8 @@ THREE.Fire = function ( geometry, options ) {
this
.
projMesh3
.
visible
=
true
;
renderer
.
render
(
this
.
fieldScene
,
this
.
orthoCamera
,
this
.
field1
);
renderer
.
setRenderTarget
(
this
.
field1
);
renderer
.
render
(
this
.
fieldScene
,
this
.
orthoCamera
);
this
.
projMesh3
.
visible
=
false
;
...
...
examples/js/objects/Reflector.js
浏览文件 @
85f911fb
...
...
@@ -161,7 +161,9 @@ THREE.Reflector = function ( geometry, options ) {
renderer
.
vr
.
enabled
=
false
;
// Avoid camera modification and recursion
renderer
.
shadowMap
.
autoUpdate
=
false
;
// Avoid re-computing shadows
renderer
.
render
(
scene
,
virtualCamera
,
renderTarget
,
true
);
renderer
.
setRenderTarget
(
renderTarget
);
renderer
.
clear
();
renderer
.
render
(
scene
,
virtualCamera
);
renderer
.
vr
.
enabled
=
currentVrEnabled
;
renderer
.
shadowMap
.
autoUpdate
=
currentShadowAutoUpdate
;
...
...
examples/js/objects/Refractor.js
浏览文件 @
85f911fb
...
...
@@ -199,7 +199,9 @@ THREE.Refractor = function ( geometry, options ) {
renderer
.
vr
.
enabled
=
false
;
// avoid camera modification
renderer
.
shadowMap
.
autoUpdate
=
false
;
// avoid re-computing shadows
renderer
.
render
(
scene
,
virtualCamera
,
renderTarget
,
true
);
renderer
.
setRenderTarget
(
renderTarget
);
renderer
.
clear
();
renderer
.
render
(
scene
,
virtualCamera
);
renderer
.
vr
.
enabled
=
currentVrEnabled
;
renderer
.
shadowMap
.
autoUpdate
=
currentShadowAutoUpdate
;
...
...
examples/js/objects/Water.js
浏览文件 @
85f911fb
...
...
@@ -291,7 +291,9 @@ THREE.Water = function ( geometry, options ) {
renderer
.
vr
.
enabled
=
false
;
// Avoid camera modification and recursion
renderer
.
shadowMap
.
autoUpdate
=
false
;
// Avoid re-computing shadows
renderer
.
render
(
scene
,
mirrorCamera
,
renderTarget
,
true
);
renderer
.
setRenderTarget
(
renderTarget
);
renderer
.
clear
();
renderer
.
render
(
scene
,
mirrorCamera
);
scope
.
visible
=
true
;
...
...
examples/js/pmrem/PMREMCubeUVPacker.js
浏览文件 @
85f911fb
...
...
@@ -137,7 +137,8 @@ THREE.PMREMCubeUVPacker = ( function () {
renderer
.
gammaOutput
=
false
;
renderer
.
toneMapping
=
THREE
.
LinearToneMapping
;
renderer
.
toneMappingExposure
=
1.0
;
renderer
.
render
(
scene
,
camera
,
this
.
CubeUVRenderTarget
,
false
);
renderer
.
setRenderTarget
(
this
.
CubeUVRenderTarget
);
renderer
.
render
(
scene
,
camera
);
renderer
.
setRenderTarget
(
currentRenderTarget
);
renderer
.
toneMapping
=
toneMapping
;
...
...
examples/js/pmrem/PMREMGenerator.js
浏览文件 @
85f911fb
...
...
@@ -137,7 +137,9 @@ THREE.PMREMGenerator = ( function () {
renderTarget
.
activeCubeFace
=
faceIndex
;
shader
.
uniforms
[
'
faceIndex
'
].
value
=
faceIndex
;
renderer
.
render
(
scene
,
camera
,
renderTarget
,
true
);
renderer
.
setRenderTarget
(
renderTarget
);
renderer
.
clear
();
renderer
.
render
(
scene
,
camera
);
},
...
...
examples/js/postprocessing/AdaptiveToneMappingPass.js
浏览文件 @
85f911fb
...
...
@@ -148,7 +148,8 @@ THREE.AdaptiveToneMappingPass.prototype = Object.assign( Object.create( THREE.Pa
//Render the luminance of the current scene into a render target with mipmapping enabled
this
.
quad
.
material
=
this
.
materialLuminance
;
this
.
materialLuminance
.
uniforms
.
tDiffuse
.
value
=
readBuffer
.
texture
;
renderer
.
render
(
this
.
scene
,
this
.
camera
,
this
.
currentLuminanceRT
);
renderer
.
setRenderTarget
(
this
.
currentLuminanceRT
);
renderer
.
render
(
this
.
scene
,
this
.
camera
);
//Use the new luminance values, the previous luminance and the frame delta to
//adapt the luminance over time.
...
...
@@ -156,11 +157,13 @@ THREE.AdaptiveToneMappingPass.prototype = Object.assign( Object.create( THREE.Pa
this
.
materialAdaptiveLum
.
uniforms
.
delta
.
value
=
delta
;
this
.
materialAdaptiveLum
.
uniforms
.
lastLum
.
value
=
this
.
previousLuminanceRT
.
texture
;
this
.
materialAdaptiveLum
.
uniforms
.
currentLum
.
value
=
this
.
currentLuminanceRT
.
texture
;
renderer
.
render
(
this
.
scene
,
this
.
camera
,
this
.
luminanceRT
);
renderer
.
setRenderTarget
(
this
.
luminanceRT
);
renderer
.
render
(
this
.
scene
,
this
.
camera
);
//Copy the new adapted luminance value so that it can be used by the next frame.
this
.
quad
.
material
=
this
.
materialCopy
;
this
.
copyUniforms
.
tDiffuse
.
value
=
this
.
luminanceRT
.
texture
;
renderer
.
setRenderTarget
(
this
.
previousLuminanceRT
);
renderer
.
render
(
this
.
scene
,
this
.
camera
,
this
.
previousLuminanceRT
);
}
...
...
@@ -170,11 +173,16 @@ THREE.AdaptiveToneMappingPass.prototype = Object.assign( Object.create( THREE.Pa
if
(
this
.
renderToScreen
)
{
renderer
.
setRenderTarget
(
null
);
renderer
.
render
(
this
.
scene
,
this
.
camera
);
}
else
{
renderer
.
render
(
this
.
scene
,
this
.
camera
,
writeBuffer
,
this
.
clear
);
renderer
.
setRenderTarget
(
writeBuffer
);
if
(
this
.
clear
)
renderer
.
clear
();
renderer
.
render
(
this
.
scene
,
this
.
camera
);
}
...
...
examples/js/postprocessing/AfterimagePass.js
浏览文件 @
85f911fb
...
...
@@ -70,17 +70,25 @@ THREE.AfterimagePass.prototype = Object.assign( Object.create( THREE.Pass.protot
this
.
quadComp
.
material
=
this
.
shaderMaterial
;
renderer
.
render
(
this
.
sceneComp
,
this
.
camera
,
this
.
textureComp
);
renderer
.
render
(
this
.
scene
,
this
.
camera
,
this
.
textureOld
);
renderer
.
setRenderTarget
(
this
.
textureComp
);
renderer
.
render
(
this
.
sceneComp
,
this
.
camera
);
renderer
.
setRenderTarget
(
this
.
textureOld
);
renderer
.
render
(
this
.
scene
,
this
.
camera
);
if
(
this
.
renderToScreen
)
{
renderer
.
setRenderTarget
(
null
);
renderer
.
render
(
this
.
scene
,
this
.
camera
);
}
else
{
renderer
.
render
(
this
.
scene
,
this
.
camera
,
writeBuffer
,
this
.
clear
);
renderer
.
setRenderTarget
(
writeBuffer
);
if
(
this
.
clear
)
renderer
.
clear
();
renderer
.
render
(
this
.
scene
,
this
.
camera
);
}
}
...
...
examples/js/postprocessing/BloomPass.js
浏览文件 @
85f911fb
...
...
@@ -91,7 +91,9 @@ THREE.BloomPass.prototype = Object.assign( Object.create( THREE.Pass.prototype )
this
.
convolutionUniforms
[
"
tDiffuse
"
].
value
=
readBuffer
.
texture
;
this
.
convolutionUniforms
[
"
uImageIncrement
"
].
value
=
THREE
.
BloomPass
.
blurX
;
renderer
.
render
(
this
.
scene
,
this
.
camera
,
this
.
renderTargetX
,
true
);
renderer
.
setRenderTarget
(
this
.
renderTargetX
);
renderer
.
clear
();
renderer
.
render
(
this
.
scene
,
this
.
camera
);
// Render quad with blured scene into texture (convolution pass 2)
...
...
@@ -99,7 +101,9 @@ THREE.BloomPass.prototype = Object.assign( Object.create( THREE.Pass.prototype )
this
.
convolutionUniforms
[
"
tDiffuse
"
].
value
=
this
.
renderTargetX
.
texture
;
this
.
convolutionUniforms
[
"
uImageIncrement
"
].
value
=
THREE
.
BloomPass
.
blurY
;
renderer
.
render
(
this
.
scene
,
this
.
camera
,
this
.
renderTargetY
,
true
);
renderer
.
setRenderTarget
(
this
.
renderTargetY
);
renderer
.
clear
();
renderer
.
render
(
this
.
scene
,
this
.
camera
);
// Render original scene with superimposed blur to texture
...
...
@@ -109,7 +113,9 @@ THREE.BloomPass.prototype = Object.assign( Object.create( THREE.Pass.prototype )
if
(
maskActive
)
renderer
.
context
.
enable
(
renderer
.
context
.
STENCIL_TEST
);
renderer
.
render
(
this
.
scene
,
this
.
camera
,
readBuffer
,
this
.
clear
);
renderer
.
setRenderTarget
(
readBuffer
);
if
(
this
.
clear
)
renderer
.
clear
();
renderer
.
render
(
this
.
scene
,
this
.
camera
);
}
...
...
examples/js/postprocessing/BokehPass.js
浏览文件 @
85f911fb
...
...
@@ -97,7 +97,9 @@ THREE.BokehPass.prototype = Object.assign( Object.create( THREE.Pass.prototype )
renderer
.
setClearColor
(
0xffffff
);
renderer
.
setClearAlpha
(
1.0
);
renderer
.
render
(
this
.
scene
,
this
.
camera
,
this
.
renderTargetDepth
,
true
);
renderer
.
setRenderTarget
(
this
.
renderTargetDepth
);
renderer
.
clear
();
renderer
.
render
(
this
.
scene
,
this
.
camera
);
// Render bokeh composite
...
...
@@ -107,11 +109,14 @@ THREE.BokehPass.prototype = Object.assign( Object.create( THREE.Pass.prototype )
if
(
this
.
renderToScreen
)
{
renderer
.
setRenderTarget
(
null
);
renderer
.
render
(
this
.
scene2
,
this
.
camera2
);
}
else
{
renderer
.
render
(
this
.
scene2
,
this
.
camera2
,
writeBuffer
,
this
.
clear
);
renderer
.
setRenderTarget
(
writeBuffer
);
renderer
.
clear
();
renderer
.
render
(
this
.
scene2
,
this
.
camera2
);
}
...
...
@@ -119,7 +124,7 @@ THREE.BokehPass.prototype = Object.assign( Object.create( THREE.Pass.prototype )
renderer
.
setClearColor
(
this
.
oldClearColor
);
renderer
.
setClearAlpha
(
this
.
oldClearAlpha
);
renderer
.
autoClear
=
this
.
oldAutoClear
;
}
}
);
examples/js/postprocessing/CubeTexturePass.js
浏览文件 @
85f911fb
...
...
@@ -48,7 +48,9 @@ THREE.CubeTexturePass.prototype = Object.assign( Object.create( THREE.Pass.proto
this
.
cubeMesh
.
material
.
uniforms
[
"
opacity
"
].
value
=
this
.
opacity
;
this
.
cubeMesh
.
material
.
transparent
=
(
this
.
opacity
<
1.0
);
renderer
.
render
(
this
.
cubeScene
,
this
.
cubeCamera
,
this
.
renderToScreen
?
null
:
readBuffer
,
this
.
clear
);
renderer
.
setRenderTarget
(
this
.
renderToScreen
?
null
:
readBuffer
);
if
(
this
.
clear
)
renderer
.
clear
();
renderer
.
render
(
this
.
cubeScene
,
this
.
cubeCamera
);
renderer
.
autoClear
=
oldAutoClear
;
...
...
examples/js/postprocessing/DotScreenPass.js
浏览文件 @
85f911fb
...
...
@@ -47,11 +47,14 @@ THREE.DotScreenPass.prototype = Object.assign( Object.create( THREE.Pass.prototy
if
(
this
.
renderToScreen
)
{
renderer
.
setRenderTarget
(
null
);
renderer
.
render
(
this
.
scene
,
this
.
camera
);
}
else
{
renderer
.
render
(
this
.
scene
,
this
.
camera
,
writeBuffer
,
this
.
clear
);
renderer
.
setRenderTarget
(
writeBuffer
);
if
(
this
.
clear
)
renderer
.
clear
();
renderer
.
render
(
this
.
scene
,
this
.
camera
);
}
...
...
examples/js/postprocessing/EffectComposer.js
浏览文件 @
85f911fb
...
...
@@ -75,6 +75,8 @@ Object.assign( THREE.EffectComposer.prototype, {
render
:
function
(
delta
)
{
var
currentRenderTarget
=
this
.
renderer
.
getRenderTarget
();
var
maskActive
=
false
;
var
pass
,
i
,
il
=
this
.
passes
.
length
;
...
...
@@ -121,6 +123,8 @@ Object.assign( THREE.EffectComposer.prototype, {
}
this
.
renderer
.
setRenderTarget
(
currentRenderTarget
);
},
reset
:
function
(
renderTarget
)
{
...
...
examples/js/postprocessing/FilmPass.js
浏览文件 @
85f911fb
...
...
@@ -48,11 +48,14 @@ THREE.FilmPass.prototype = Object.assign( Object.create( THREE.Pass.prototype ),
if
(
this
.
renderToScreen
)
{
renderer
.
setRenderTarget
(
null
);
renderer
.
render
(
this
.
scene
,
this
.
camera
);
}
else
{
renderer
.
render
(
this
.
scene
,
this
.
camera
,
writeBuffer
,
this
.
clear
);
renderer
.
setRenderTarget
(
writeBuffer
);
if
(
this
.
clear
)
renderer
.
clear
();
renderer
.
render
(
this
.
scene
,
this
.
camera
);
}
...
...
examples/js/postprocessing/GlitchPass.js
浏览文件 @
85f911fb
...
...
@@ -77,11 +77,14 @@ THREE.GlitchPass.prototype = Object.assign( Object.create( THREE.Pass.prototype
if
(
this
.
renderToScreen
)
{
renderer
.
setRenderTarget
(
null
);
renderer
.
render
(
this
.
scene
,
this
.
camera
);
}
else
{
renderer
.
render
(
this
.
scene
,
this
.
camera
,
writeBuffer
,
this
.
clear
);
renderer
.
setRenderTarget
(
writeBuffer
);
if
(
this
.
clear
)
renderer
.
clear
();
renderer
.
render
(
this
.
scene
,
this
.
camera
);
}
...
...
examples/js/postprocessing/HalftonePass.js
浏览文件 @
85f911fb
...
...
@@ -55,11 +55,14 @@ THREE.HalftonePass = function ( width, height, params ) {
if
(
this
.
renderToScreen
)
{
renderer
.
setRenderTarget
(
null
);
renderer
.
render
(
this
.
scene
,
this
.
camera
);
}
else
{
renderer
.
render
(
this
.
scene
,
this
.
camera
,
writeBuffer
,
this
.
clear
);
renderer
.
setRenderTarget
(
writeBuffer
);
if
(
this
.
clear
)
renderer
.
clear
();
renderer
.
render
(
this
.
scene
,
this
.
camera
);
}
...
...
examples/js/postprocessing/MaskPass.js
浏览文件 @
85f911fb
...
...
@@ -58,8 +58,13 @@ THREE.MaskPass.prototype = Object.assign( Object.create( THREE.Pass.prototype ),
// draw into the stencil buffer
renderer
.
render
(
this
.
scene
,
this
.
camera
,
readBuffer
,
this
.
clear
);
renderer
.
render
(
this
.
scene
,
this
.
camera
,
writeBuffer
,
this
.
clear
);
renderer
.
setRenderTarget
(
readBuffer
);
if
(
this
.
clear
)
renderer
.
clear
();
renderer
.
render
(
this
.
scene
,
this
.
camera
);
renderer
.
setRenderTarget
(
writeBuffer
);
if
(
this
.
clear
)
renderer
.
clear
();
renderer
.
render
(
this
.
scene
,
this
.
camera
);
// unlock color and depth buffer for subsequent rendering
...
...
examples/js/postprocessing/OutlinePass.js
浏览文件 @
85f911fb
...
...
@@ -277,7 +277,9 @@ THREE.OutlinePass.prototype = Object.assign( Object.create( THREE.Pass.prototype
// 1. Draw Non Selected objects in the depth buffer
this
.
renderScene
.
overrideMaterial
=
this
.
depthMaterial
;
renderer
.
render
(
this
.
renderScene
,
this
.
renderCamera
,
this
.
renderTargetDepthBuffer
,
true
);
renderer
.
setRenderTarget
(
this
.
renderTargetDepthBuffer
);
renderer
.
clear
();
renderer
.
render
(
this
.
renderScene
,
this
.
renderCamera
);
// Make selected objects visible
this
.
changeVisibilityOfSelectedObjects
(
true
);
...
...
@@ -291,7 +293,9 @@ THREE.OutlinePass.prototype = Object.assign( Object.create( THREE.Pass.prototype
this
.
prepareMaskMaterial
.
uniforms
[
"
cameraNearFar
"
].
value
=
new
THREE
.
Vector2
(
this
.
renderCamera
.
near
,
this
.
renderCamera
.
far
);
this
.
prepareMaskMaterial
.
uniforms
[
"
depthTexture
"
].
value
=
this
.
renderTargetDepthBuffer
.
texture
;
this
.
prepareMaskMaterial
.
uniforms
[
"
textureMatrix
"
].
value
=
this
.
textureMatrix
;
renderer
.
render
(
this
.
renderScene
,
this
.
renderCamera
,
this
.
renderTargetMaskBuffer
,
true
);
renderer
.
setRenderTarget
(
this
.
renderTargetMaskBuffer
);
renderer
.
clear
();
renderer
.
render
(
this
.
renderScene
,
this
.
renderCamera
);
this
.
renderScene
.
overrideMaterial
=
null
;
this
.
changeVisibilityOfNonSelectedObjects
(
true
);
...
...
@@ -300,7 +304,9 @@ THREE.OutlinePass.prototype = Object.assign( Object.create( THREE.Pass.prototype
// 2. Downsample to Half resolution
this
.
quad
.
material
=
this
.
materialCopy
;
this
.
copyUniforms
[
"
tDiffuse
"
].
value
=
this
.
renderTargetMaskBuffer
.
texture
;
renderer
.
render
(
this
.
scene
,
this
.
camera
,
this
.
renderTargetMaskDownSampleBuffer
,
true
);
renderer
.
setRenderTarget
(
this
.
renderTargetMaskDownSampleBuffer
);
renderer
.
clear
();
renderer
.
render
(
this
.
scene
,
this
.
camera
);
this
.
tempPulseColor1
.
copy
(
this
.
visibleEdgeColor
);
this
.
tempPulseColor2
.
copy
(
this
.
hiddenEdgeColor
);
...
...
@@ -319,26 +325,36 @@ THREE.OutlinePass.prototype = Object.assign( Object.create( THREE.Pass.prototype
this
.
edgeDetectionMaterial
.
uniforms
[
"
texSize
"
].
value
=
new
THREE
.
Vector2
(
this
.
renderTargetMaskDownSampleBuffer
.
width
,
this
.
renderTargetMaskDownSampleBuffer
.
height
);
this
.
edgeDetectionMaterial
.
uniforms
[
"
visibleEdgeColor
"
].
value
=
this
.
tempPulseColor1
;
this
.
edgeDetectionMaterial
.
uniforms
[
"
hiddenEdgeColor
"
].
value
=
this
.
tempPulseColor2
;
renderer
.
render
(
this
.
scene
,
this
.
camera
,
this
.
renderTargetEdgeBuffer1
,
true
);
renderer
.
setRenderTarget
(
this
.
renderTargetEdgeBuffer1
);
renderer
.
clear
();
renderer
.
render
(
this
.
scene
,
this
.
camera
);
// 4. Apply Blur on Half res
this
.
quad
.
material
=
this
.
separableBlurMaterial1
;
this
.
separableBlurMaterial1
.
uniforms
[
"
colorTexture
"
].
value
=
this
.
renderTargetEdgeBuffer1
.
texture
;
this
.
separableBlurMaterial1
.
uniforms
[
"
direction
"
].
value
=
THREE
.
OutlinePass
.
BlurDirectionX
;
this
.
separableBlurMaterial1
.
uniforms
[
"
kernelRadius
"
].
value
=
this
.
edgeThickness
;
renderer
.
render
(
this
.
scene
,
this
.
camera
,
this
.
renderTargetBlurBuffer1
,
true
);
renderer
.
setRenderTarget
(
this
.
renderTargetBlurBuffer1
);
renderer
.
clear
();
renderer
.
render
(
this
.
scene
,
this
.
camera
);
this
.
separableBlurMaterial1
.
uniforms
[
"
colorTexture
"
].
value
=
this
.
renderTargetBlurBuffer1
.
texture
;
this
.
separableBlurMaterial1
.
uniforms
[
"
direction
"
].
value
=
THREE
.
OutlinePass
.
BlurDirectionY
;
renderer
.
render
(
this
.
scene
,
this
.
camera
,
this
.
renderTargetEdgeBuffer1
,
true
);
renderer
.
setRenderTarget
(
this
.
renderTargetEdgeBuffer1
);
renderer
.
clear
();
renderer
.
render
(
this
.
scene
,
this
.
camera
);
// Apply Blur on quarter res
this
.
quad
.
material
=
this
.
separableBlurMaterial2
;
this
.
separableBlurMaterial2
.
uniforms
[
"
colorTexture
"
].
value
=
this
.
renderTargetEdgeBuffer1
.
texture
;
this
.
separableBlurMaterial2
.
uniforms
[
"
direction
"
].
value
=
THREE
.
OutlinePass
.
BlurDirectionX
;
renderer
.
render
(
this
.
scene
,
this
.
camera
,
this
.
renderTargetBlurBuffer2
,
true
);
renderer
.
setRenderTarget
(
this
.
renderTargetBlurBuffer2
);
renderer
.
clear
();
renderer
.
render
(
this
.
scene
,
this
.
camera
);
this
.
separableBlurMaterial2
.
uniforms
[
"
colorTexture
"
].
value
=
this
.
renderTargetBlurBuffer2
.
texture
;
this
.
separableBlurMaterial2
.
uniforms
[
"
direction
"
].
value
=
THREE
.
OutlinePass
.
BlurDirectionY
;
renderer
.
render
(
this
.
scene
,
this
.
camera
,
this
.
renderTargetEdgeBuffer2
,
true
);
renderer
.
setRenderTarget
(
this
.
renderTargetEdgeBuffer2
);
renderer
.
clear
();
renderer
.
render
(
this
.
scene
,
this
.
camera
);
// Blend it additively over the input texture
this
.
quad
.
material
=
this
.
overlayMaterial
;
...
...
@@ -353,7 +369,8 @@ THREE.OutlinePass.prototype = Object.assign( Object.create( THREE.Pass.prototype
if
(
maskActive
)
renderer
.
context
.
enable
(
renderer
.
context
.
STENCIL_TEST
);
renderer
.
render
(
this
.
scene
,
this
.
camera
,
readBuffer
,
false
);
renderer
.
setRenderTarget
(
readBuffer
);
renderer
.
render
(
this
.
scene
,
this
.
camera
);
renderer
.
setClearColor
(
this
.
oldClearColor
,
this
.
oldClearAlpha
);
renderer
.
autoClear
=
oldAutoClear
;
...
...
@@ -364,6 +381,7 @@ THREE.OutlinePass.prototype = Object.assign( Object.create( THREE.Pass.prototype
this
.
quad
.
material
=
this
.
materialCopy
;
this
.
copyUniforms
[
"
tDiffuse
"
].
value
=
readBuffer
.
texture
;
renderer
.
setRenderTarget
(
null
);
renderer
.
render
(
this
.
scene
,
this
.
camera
);
}
...
...
examples/js/postprocessing/RenderPass.js
浏览文件 @
85f911fb
...
...
@@ -48,7 +48,9 @@ THREE.RenderPass.prototype = Object.assign( Object.create( THREE.Pass.prototype
}
renderer
.
render
(
this
.
scene
,
this
.
camera
,
this
.
renderToScreen
?
null
:
readBuffer
,
this
.
clear
);
renderer
.
setRenderTarget
(
this
.
renderToScreen
?
null
:
readBuffer
);
if
(
this
.
clear
)
renderer
.
clear
();
renderer
.
render
(
this
.
scene
,
this
.
camera
);
if
(
this
.
clearColor
)
{
...
...
examples/js/postprocessing/SAOPass.js
浏览文件 @
85f911fb
...
...
@@ -234,7 +234,9 @@ THREE.SAOPass.prototype = Object.assign( Object.create( THREE.Pass.prototype ),
// Rendering scene to depth texture
renderer
.
setClearColor
(
0x000000
);
renderer
.
render
(
this
.
scene
,
this
.
camera
,
this
.
beautyRenderTarget
,
true
);
renderer
.
setRenderTarget
(
this
.
beautyRenderTarget
);
renderer
.
clear
();
renderer
.
render
(
this
.
scene
,
this
.
camera
);
// Re-render scene if depth texture extension is not supported
if
(
!
this
.
supportsDepthTextureExtension
)
{
...
...
@@ -317,18 +319,20 @@ THREE.SAOPass.prototype = Object.assign( Object.create( THREE.Pass.prototype ),
var
originalClearAlpha
=
renderer
.
getClearAlpha
();
var
originalAutoClear
=
renderer
.
autoClear
;
renderer
.
setRenderTarget
(
renderTarget
);
// setup pass state
renderer
.
autoClear
=
false
;
var
clearNeeded
=
(
clearColor
!==
undefined
)
&&
(
clearColor
!==
null
);
if
(
clearNeeded
)
{
if
(
(
clearColor
!==
undefined
)
&&
(
clearColor
!==
null
)
)
{
renderer
.
setClearColor
(
clearColor
);
renderer
.
setClearAlpha
(
clearAlpha
||
0.0
);
renderer
.
clear
();
}
this
.
quad
.
material
=
passMaterial
;
renderer
.
render
(
this
.
quadScene
,
this
.
quadCamera
,
renderTarget
,
clearNeeded
);
renderer
.
render
(
this
.
quadScene
,
this
.
quadCamera
);
// restore original state
renderer
.
autoClear
=
originalAutoClear
;
...
...
@@ -343,20 +347,21 @@ THREE.SAOPass.prototype = Object.assign( Object.create( THREE.Pass.prototype ),
var
originalClearAlpha
=
renderer
.
getClearAlpha
();
var
originalAutoClear
=
renderer
.
autoClear
;
renderer
.
setRenderTarget
(
renderTarget
);
renderer
.
autoClear
=
false
;
clearColor
=
overrideMaterial
.
clearColor
||
clearColor
;
clearAlpha
=
overrideMaterial
.
clearAlpha
||
clearAlpha
;
var
clearNeeded
=
(
clearColor
!==
undefined
)
&&
(
clearColor
!==
null
);
if
(
clearNeeded
)
{
if
(
(
clearColor
!==
undefined
)
&&
(
clearColor
!==
null
)
)
{
renderer
.
setClearColor
(
clearColor
);
renderer
.
setClearAlpha
(
clearAlpha
||
0.0
);
renderer
.
clear
();
}
this
.
scene
.
overrideMaterial
=
overrideMaterial
;
renderer
.
render
(
this
.
scene
,
this
.
camera
,
renderTarget
,
clearNeeded
);
renderer
.
render
(
this
.
scene
,
this
.
camera
);
this
.
scene
.
overrideMaterial
=
null
;
// restore original state
...
...
examples/js/postprocessing/SMAAPass.js
浏览文件 @
85f911fb
...
...
@@ -128,13 +128,17 @@ THREE.SMAAPass.prototype = Object.assign( Object.create( THREE.Pass.prototype ),
this
.
quad
.
material
=
this
.
materialEdges
;
renderer
.
render
(
this
.
scene
,
this
.
camera
,
this
.
edgesRT
,
this
.
clear
);
renderer
.
setRenderTarget
(
this
.
edgesRT
);
if
(
this
.
clear
)
renderer
.
clear
();
renderer
.
render
(
this
.
scene
,
this
.
camera
);
// pass 2
this
.
quad
.
material
=
this
.
materialWeights
;
renderer
.
render
(
this
.
scene
,
this
.
camera
,
this
.
weightsRT
,
this
.
clear
);
renderer
.
setRenderTarget
(
this
.
weightsRT
);
if
(
this
.
clear
)
renderer
.
clear
();
renderer
.
render
(
this
.
scene
,
this
.
camera
);
// pass 3
...
...
@@ -144,11 +148,14 @@ THREE.SMAAPass.prototype = Object.assign( Object.create( THREE.Pass.prototype ),
if
(
this
.
renderToScreen
)
{
renderer
.
setRenderTarget
(
null
);
renderer
.
render
(
this
.
scene
,
this
.
camera
);
}
else
{
renderer
.
render
(
this
.
scene
,
this
.
camera
,
writeBuffer
,
this
.
clear
);
renderer
.
setRenderTarget
(
writeBuffer
);
if
(
this
.
clear
)
renderer
.
clear
();
renderer
.
render
(
this
.
scene
,
this
.
camera
);
}
...
...
examples/js/postprocessing/SSAARenderPass.js
浏览文件 @
85f911fb
...
...
@@ -120,15 +120,20 @@ THREE.SSAARenderPass.prototype = Object.assign( Object.create( THREE.Pass.protot
this
.
copyUniforms
[
"
opacity
"
].
value
=
sampleWeight
;
renderer
.
setClearColor
(
this
.
clearColor
,
this
.
clearAlpha
);
renderer
.
render
(
this
.
scene
,
this
.
camera
,
this
.
sampleRenderTarget
,
true
);
renderer
.
setRenderTarget
(
this
.
sampleRenderTarget
);
renderer
.
clear
();
renderer
.
render
(
this
.
scene
,
this
.
camera
);
renderer
.
setRenderTarget
(
this
.
renderToScreen
?
null
:
writeBuffer
);
if
(
i
===
0
)
{
renderer
.
setClearColor
(
0x000000
,
0.0
);
renderer
.
clear
();
}
renderer
.
render
(
this
.
scene2
,
this
.
camera2
,
this
.
renderToScreen
?
null
:
writeBuffer
,
(
i
===
0
)
);
renderer
.
render
(
this
.
scene2
,
this
.
camera2
);
}
...
...
examples/js/postprocessing/SSAOPass.js
浏览文件 @
85f911fb
...
...
@@ -177,7 +177,9 @@ THREE.SSAOPass.prototype = Object.assign( Object.create( THREE.Pass.prototype ),
// render beauty and depth
renderer
.
render
(
this
.
scene
,
this
.
camera
,
this
.
beautyRenderTarget
,
true
);
renderer
.
setRenderTarget
(
this
.
beautyRenderTarget
);
renderer
.
clear
();
renderer
.
render
(
this
.
scene
,
this
.
camera
);
// render normals
...
...
@@ -262,18 +264,20 @@ THREE.SSAOPass.prototype = Object.assign( Object.create( THREE.Pass.prototype ),
var
originalClearAlpha
=
renderer
.
getClearAlpha
();
var
originalAutoClear
=
renderer
.
autoClear
;
renderer
.
setRenderTarget
(
renderTarget
);
// setup pass state
renderer
.
autoClear
=
false
;
var
clearNeeded
=
(
clearColor
!==
undefined
)
&&
(
clearColor
!==
null
);
if
(
clearNeeded
)
{
if
(
(
clearColor
!==
undefined
)
&&
(
clearColor
!==
null
)
)
{
renderer
.
setClearColor
(
clearColor
);
renderer
.
setClearAlpha
(
clearAlpha
||
0.0
);
renderer
.
clear
();
}
this
.
quad
.
material
=
passMaterial
;
renderer
.
render
(
this
.
quadScene
,
this
.
quadCamera
,
renderTarget
,
clearNeeded
);
renderer
.
render
(
this
.
quadScene
,
this
.
quadCamera
);
// restore original state
renderer
.
autoClear
=
originalAutoClear
;
...
...
@@ -288,22 +292,22 @@ THREE.SSAOPass.prototype = Object.assign( Object.create( THREE.Pass.prototype ),
var
originalClearAlpha
=
renderer
.
getClearAlpha
();
var
originalAutoClear
=
renderer
.
autoClear
;
renderer
.
setRenderTarget
(
renderTarget
);
renderer
.
autoClear
=
false
;
clearColor
=
overrideMaterial
.
clearColor
||
clearColor
;
clearAlpha
=
overrideMaterial
.
clearAlpha
||
clearAlpha
;
var
clearNeeded
=
(
clearColor
!==
undefined
)
&&
(
clearColor
!==
null
);
if
(
clearNeeded
)
{
if
(
(
clearColor
!==
undefined
)
&&
(
clearColor
!==
null
)
)
{
renderer
.
setClearColor
(
clearColor
);
renderer
.
setClearAlpha
(
clearAlpha
||
0.0
);
renderer
.
clear
();
}
this
.
scene
.
overrideMaterial
=
overrideMaterial
;
renderer
.
render
(
this
.
scene
,
this
.
camera
,
renderTarget
,
clearNeeded
);
renderer
.
render
(
this
.
scene
,
this
.
camera
);
this
.
scene
.
overrideMaterial
=
null
;
// restore original state
...
...
examples/js/postprocessing/SavePass.js
浏览文件 @
85f911fb
...
...
@@ -57,7 +57,9 @@ THREE.SavePass.prototype = Object.assign( Object.create( THREE.Pass.prototype ),
this
.
quad
.
material
=
this
.
material
;
renderer
.
render
(
this
.
scene
,
this
.
camera
,
this
.
renderTarget
,
this
.
clear
);
renderer
.
setRenderTarget
(
this
.
renderTarget
);
if
(
this
.
clear
)
renderer
.
clear
();
renderer
.
render
(
this
.
scene
,
this
.
camera
);
}
...
...
examples/js/postprocessing/ShaderPass.js
浏览文件 @
85f911fb
...
...
@@ -54,11 +54,14 @@ THREE.ShaderPass.prototype = Object.assign( Object.create( THREE.Pass.prototype
if
(
this
.
renderToScreen
)
{
renderer
.
setRenderTarget
(
null
);
renderer
.
render
(
this
.
scene
,
this
.
camera
);
}
else
{
renderer
.
render
(
this
.
scene
,
this
.
camera
,
writeBuffer
,
this
.
clear
);
renderer
.
setRenderTarget
(
writeBuffer
);
if
(
this
.
clear
)
renderer
.
clear
();
renderer
.
render
(
this
.
scene
,
this
.
camera
);
}
...
...
examples/js/postprocessing/TAARenderPass.js
浏览文件 @
85f911fb
...
...
@@ -93,8 +93,13 @@ THREE.TAARenderPass.prototype = Object.assign( Object.create( THREE.SSAARenderPa
}
renderer
.
render
(
this
.
scene
,
this
.
camera
,
writeBuffer
,
true
);
renderer
.
render
(
this
.
scene2
,
this
.
camera2
,
this
.
sampleRenderTarget
,
(
this
.
accumulateIndex
===
0
)
);
renderer
.
setRenderTarget
(
writeBuffer
);
renderer
.
clear
();
renderer
.
render
(
this
.
scene
,
this
.
camera
);
renderer
.
setRenderTarget
(
this
.
sampleRenderTarget
);
if
(
this
.
accumulateIndex
===
0
)
renderer
.
clear
();
renderer
.
render
(
this
.
scene2
,
this
.
camera2
);
this
.
accumulateIndex
++
;
...
...
@@ -112,7 +117,9 @@ THREE.TAARenderPass.prototype = Object.assign( Object.create( THREE.SSAARenderPa
this
.
copyUniforms
[
"
opacity
"
].
value
=
1.0
;
this
.
copyUniforms
[
"
tDiffuse
"
].
value
=
this
.
sampleRenderTarget
.
texture
;
renderer
.
render
(
this
.
scene2
,
this
.
camera2
,
writeBuffer
,
true
);
renderer
.
setRenderTarget
(
writeBuffer
);
renderer
.
clear
();
renderer
.
render
(
this
.
scene2
,
this
.
camera2
);
}
...
...
@@ -120,7 +127,9 @@ THREE.TAARenderPass.prototype = Object.assign( Object.create( THREE.SSAARenderPa
this
.
copyUniforms
[
"
opacity
"
].
value
=
1.0
-
accumulationWeight
;
this
.
copyUniforms
[
"
tDiffuse
"
].
value
=
this
.
holdRenderTarget
.
texture
;
renderer
.
render
(
this
.
scene2
,
this
.
camera2
,
writeBuffer
,
(
accumulationWeight
===
0
)
);
renderer
.
setRenderTarget
(
writeBuffer
);
if
(
accumulationWeight
===
0
)
renderer
.
clear
();
renderer
.
render
(
this
.
scene2
,
this
.
camera2
);
}
...
...
examples/js/postprocessing/TexturePass.js
浏览文件 @
85f911fb
...
...
@@ -52,7 +52,9 @@ THREE.TexturePass.prototype = Object.assign( Object.create( THREE.Pass.prototype
this
.
uniforms
[
"
tDiffuse
"
].
value
=
this
.
map
;
this
.
material
.
transparent
=
(
this
.
opacity
<
1.0
);
renderer
.
render
(
this
.
scene
,
this
.
camera
,
this
.
renderToScreen
?
null
:
readBuffer
,
this
.
clear
);
renderer
.
setRenderTarget
(
this
.
renderToScreen
?
null
:
readBuffer
);
if
(
this
.
clear
)
renderer
.
clear
();
renderer
.
render
(
this
.
scene
,
this
.
camera
);
renderer
.
autoClear
=
oldAutoClear
;
}
...
...
examples/js/postprocessing/UnrealBloomPass.js
浏览文件 @
85f911fb
...
...
@@ -203,7 +203,9 @@ THREE.UnrealBloomPass.prototype = Object.assign( Object.create( THREE.Pass.proto
this
.
quad
.
material
=
this
.
basic
;
this
.
basic
.
map
=
readBuffer
.
texture
;
renderer
.
render
(
this
.
scene
,
this
.
camera
,
undefined
,
true
);
renderer
.
setRenderTarget
(
null
);
renderer
.
clear
();
renderer
.
render
(
this
.
scene
,
this
.
camera
);
}
...
...
@@ -213,7 +215,9 @@ THREE.UnrealBloomPass.prototype = Object.assign( Object.create( THREE.Pass.proto
this
.
highPassUniforms
[
"
luminosityThreshold
"
].
value
=
this
.
threshold
;
this
.
quad
.
material
=
this
.
materialHighPassFilter
;
renderer
.
render
(
this
.
scene
,
this
.
camera
,
this
.
renderTargetBright
,
true
);
renderer
.
setRenderTarget
(
this
.
renderTargetBright
);
renderer
.
clear
();
renderer
.
render
(
this
.
scene
,
this
.
camera
);
// 2. Blur All the mips progressively
...
...
@@ -225,11 +229,15 @@ THREE.UnrealBloomPass.prototype = Object.assign( Object.create( THREE.Pass.proto
this
.
separableBlurMaterials
[
i
].
uniforms
[
"
colorTexture
"
].
value
=
inputRenderTarget
.
texture
;
this
.
separableBlurMaterials
[
i
].
uniforms
[
"
direction
"
].
value
=
THREE
.
UnrealBloomPass
.
BlurDirectionX
;
renderer
.
render
(
this
.
scene
,
this
.
camera
,
this
.
renderTargetsHorizontal
[
i
],
true
);
renderer
.
setRenderTarget
(
this
.
renderTargetsHorizontal
[
i
]
);
renderer
.
clear
();
renderer
.
render
(
this
.
scene
,
this
.
camera
);
this
.
separableBlurMaterials
[
i
].
uniforms
[
"
colorTexture
"
].
value
=
this
.
renderTargetsHorizontal
[
i
].
texture
;
this
.
separableBlurMaterials
[
i
].
uniforms
[
"
direction
"
].
value
=
THREE
.
UnrealBloomPass
.
BlurDirectionY
;
renderer
.
render
(
this
.
scene
,
this
.
camera
,
this
.
renderTargetsVertical
[
i
],
true
);
renderer
.
setRenderTarget
(
this
.
renderTargetsVertical
[
i
]
);
renderer
.
clear
();
renderer
.
render
(
this
.
scene
,
this
.
camera
);
inputRenderTarget
=
this
.
renderTargetsVertical
[
i
];
...
...
@@ -242,7 +250,9 @@ THREE.UnrealBloomPass.prototype = Object.assign( Object.create( THREE.Pass.proto
this
.
compositeMaterial
.
uniforms
[
"
bloomRadius
"
].
value
=
this
.
radius
;
this
.
compositeMaterial
.
uniforms
[
"
bloomTintColors
"
].
value
=
this
.
bloomTintColors
;
renderer
.
render
(
this
.
scene
,
this
.
camera
,
this
.
renderTargetsHorizontal
[
0
],
true
);
renderer
.
setRenderTarget
(
this
.
renderTargetsHorizontal
[
0
]
);
renderer
.
clear
();
renderer
.
render
(
this
.
scene
,
this
.
camera
);
// Blend it additively over the input texture
...
...
@@ -254,11 +264,13 @@ THREE.UnrealBloomPass.prototype = Object.assign( Object.create( THREE.Pass.proto
if
(
this
.
renderToScreen
)
{
renderer
.
render
(
this
.
scene
,
this
.
camera
,
undefined
,
false
);
renderer
.
setRenderTarget
(
null
);
renderer
.
render
(
this
.
scene
,
this
.
camera
);
}
else
{
renderer
.
render
(
this
.
scene
,
this
.
camera
,
readBuffer
,
false
);
renderer
.
setRenderTarget
(
readBuffer
);
renderer
.
render
(
this
.
scene
,
this
.
camera
);
}
...
...
examples/webgl_depth_texture.html
浏览文件 @
85f911fb
...
...
@@ -229,9 +229,11 @@
requestAnimationFrame
(
animate
);
// render scene into target
renderer
.
render
(
scene
,
camera
,
target
);
renderer
.
setRenderTarget
(
target
);
renderer
.
render
(
scene
,
camera
);
// render post FX
renderer
.
setRenderTarget
(
null
);
renderer
.
render
(
postScene
,
postCamera
);
stats
.
update
();
...
...
examples/webgl_interactive_cubes_gpu.html
浏览文件 @
85f911fb
...
...
@@ -206,7 +206,8 @@
// render the scene
renderer
.
render
(
pickingScene
,
camera
,
pickingTexture
);
renderer
.
setRenderTarget
(
pickingTexture
);
renderer
.
render
(
pickingScene
,
camera
);
// clear the view offset so rendering returns to normal
...
...
@@ -252,6 +253,7 @@
pick
();
renderer
.
setRenderTarget
(
null
);
renderer
.
render
(
scene
,
camera
);
}
...
...
examples/webgl_interactive_instances_gpu.html
浏览文件 @
85f911fb
...
...
@@ -1045,15 +1045,17 @@
highlightBox
.
visible
=
false
;
renderer
.
setRenderTarget
(
pickingRenderTarget
);
if
(
singlePickingMaterial
)
{
scene
.
overrideMaterial
=
singlePickingMaterial
;
renderer
.
render
(
scene
,
camera
,
pickingRenderTarget
);
renderer
.
render
(
scene
,
camera
);
scene
.
overrideMaterial
=
null
;
}
else
{
renderer
.
render
(
pickingScene
,
camera
,
pickingRenderTarget
);
renderer
.
render
(
pickingScene
,
camera
);
}
...
...
@@ -1105,6 +1107,7 @@
function
render
()
{
pick
();
renderer
.
setRenderTarget
(
null
);
renderer
.
render
(
scene
,
camera
);
}
...
...
examples/webgl_materials_nodes.html
浏览文件 @
85f911fb
...
...
@@ -2748,12 +2748,15 @@
scene
.
overrideMaterial
=
rtMaterial
;
renderer
.
render
(
scene
,
camera
,
rtTexture
,
true
);
renderer
.
setRenderTarget
(
rtTexture
);
renderer
.
clear
();
renderer
.
render
(
scene
,
camera
);
scene
.
overrideMaterial
=
null
;
}
renderer
.
setRenderTarget
(
null
);
renderer
.
render
(
scene
,
camera
);
requestAnimationFrame
(
animate
);
...
...
examples/webgl_postprocessing_dof2.html
浏览文件 @
85f911fb
...
...
@@ -507,16 +507,21 @@
// render scene into texture
renderer
.
render
(
scene
,
camera
,
postprocessing
.
rtTextureColor
,
true
);
renderer
.
setRenderTarget
(
postprocessing
.
rtTextureColor
);
renderer
.
clear
();
renderer
.
render
(
scene
,
camera
);
// render depth into texture
scene
.
overrideMaterial
=
materialDepth
;
renderer
.
render
(
scene
,
camera
,
postprocessing
.
rtTextureDepth
,
true
);
renderer
.
setRenderTarget
(
postprocessing
.
rtTextureDepth
);
renderer
.
clear
();
renderer
.
render
(
scene
,
camera
);
scene
.
overrideMaterial
=
null
;
// render bokeh composite
renderer
.
setRenderTarget
(
null
);
renderer
.
render
(
postprocessing
.
scene
,
postprocessing
.
camera
);
...
...
@@ -524,6 +529,7 @@
scene
.
overrideMaterial
=
null
;
renderer
.
setRenderTarget
(
null
);
renderer
.
clear
();
renderer
.
render
(
scene
,
camera
);
...
...
examples/webgl_postprocessing_godrays.html
浏览文件 @
85f911fb
...
...
@@ -302,7 +302,8 @@
postprocessing
.
godrayGenUniforms
[
"
fStepSize
"
].
value
=
stepSize
;
postprocessing
.
godrayGenUniforms
[
"
tInput
"
].
value
=
inputTex
;
renderer
.
render
(
postprocessing
.
scene
,
postprocessing
.
camera
,
renderTarget
);
renderer
.
setRenderTarget
(
renderTarget
);
renderer
.
render
(
postprocessing
.
scene
,
postprocessing
.
camera
);
postprocessing
.
scene
.
overrideMaterial
=
null
;
}
...
...
@@ -360,7 +361,8 @@
postprocessing
.
godraysFakeSunUniforms
[
"
fAspect
"
].
value
=
window
.
innerWidth
/
window
.
innerHeight
;
postprocessing
.
scene
.
overrideMaterial
=
postprocessing
.
materialGodraysFakeSun
;
renderer
.
render
(
postprocessing
.
scene
,
postprocessing
.
camera
,
postprocessing
.
rtTextureColors
);
renderer
.
render
(
postprocessing
.
rtTextureColors
);
renderer
.
render
(
postprocessing
.
scene
,
postprocessing
.
camera
);
renderer
.
setScissorTest
(
false
);
...
...
@@ -369,19 +371,23 @@
// Colors
scene
.
overrideMaterial
=
null
;
renderer
.
render
(
scene
,
camera
,
postprocessing
.
rtTextureColors
);
renderer
.
setRenderTarget
(
postprocessing
.
rtTextureColors
);
renderer
.
render
(
scene
,
camera
);
// Depth
scene
.
overrideMaterial
=
materialDepth
;
renderer
.
render
(
scene
,
camera
,
postprocessing
.
rtTextureDepth
,
true
);
renderer
.
setRenderTarget
(
postprocessing
.
rtTextureDepth
);
renderer
.
clear
();
renderer
.
render
(
scene
,
camera
);
//
postprocessing
.
godrayMaskUniforms
[
"
tInput
"
].
value
=
postprocessing
.
rtTextureDepth
.
texture
;
postprocessing
.
scene
.
overrideMaterial
=
postprocessing
.
materialGodraysDepthMask
;
renderer
.
render
(
postprocessing
.
scene
,
postprocessing
.
camera
,
postprocessing
.
rtTextureDepthMask
);
renderer
.
setRenderTarget
(
postprocessing
.
rtTextureDepthMask
);
renderer
.
render
(
postprocessing
.
scene
,
postprocessing
.
camera
);
// -- Render god-rays --
...
...
@@ -414,11 +420,13 @@
postprocessing
.
scene
.
overrideMaterial
=
postprocessing
.
materialGodraysCombine
;
renderer
.
setRenderTarget
(
null
);
renderer
.
render
(
postprocessing
.
scene
,
postprocessing
.
camera
);
postprocessing
.
scene
.
overrideMaterial
=
null
;
}
else
{
renderer
.
setRenderTarget
(
null
);
renderer
.
clear
();
renderer
.
render
(
scene
,
camera
);
...
...
examples/webgl_read_float_buffer.html
浏览文件 @
85f911fb
...
...
@@ -240,10 +240,13 @@
// Render first scene into texture
renderer
.
render
(
sceneRTT
,
cameraRTT
,
rtTexture
,
true
);
renderer
.
setRenderTarget
(
rtTexture
);
renderer
.
clear
();
renderer
.
render
(
sceneRTT
,
cameraRTT
);
// Render full screen quad with generated texture
renderer
.
setRenderTarget
(
null
);
renderer
.
render
(
sceneScreen
,
cameraRTT
);
var
read
=
new
Float32Array
(
4
);
...
...
examples/webgl_rtt.html
浏览文件 @
85f911fb
...
...
@@ -252,14 +252,17 @@
material
.
uniforms
[
"
time
"
].
value
+=
delta
;
renderer
.
clear
();
// Render first scene into texture
renderer
.
render
(
sceneRTT
,
cameraRTT
,
rtTexture
,
true
);
renderer
.
setRenderTarget
(
rtTexture
);
renderer
.
clear
();
renderer
.
render
(
sceneRTT
,
cameraRTT
);
// Render full screen quad with generated texture
renderer
.
setRenderTarget
(
null
);
renderer
.
clear
();
renderer
.
render
(
sceneScreen
,
cameraRTT
);
// Render second scene to screen
...
...
examples/webgl_simple_gi.html
浏览文件 @
85f911fb
...
...
@@ -113,7 +113,8 @@
camera
.
position
.
copy
(
position
);
camera
.
lookAt
(
position
.
add
(
normal
)
);
renderer
.
render
(
clone
,
camera
,
rt
);
renderer
.
setRenderTarget
(
rt
);
renderer
.
render
(
clone
,
camera
);
renderer
.
readRenderTargetPixels
(
rt
,
0
,
0
,
SIZE
,
SIZE
,
buffer
);
...
...
@@ -243,6 +244,7 @@
requestAnimationFrame
(
animate
);
renderer
.
setRenderTarget
(
null
);
renderer
.
render
(
scene
,
camera
);
}
...
...
examples/webgl_terrain_dynamic.html
浏览文件 @
85f911fb
...
...
@@ -491,13 +491,18 @@
uniformsTerrain
[
'
uOffset
'
].
value
.
x
=
4
*
uniformsNoise
[
'
offset
'
].
value
.
x
;
quadTarget
.
material
=
mlib
[
'
heightmap
'
];
renderer
.
render
(
sceneRenderTarget
,
cameraOrtho
,
heightMap
,
true
);
renderer
.
setRenderTarget
(
heightMap
);
renderer
.
clear
();
renderer
.
render
(
sceneRenderTarget
,
cameraOrtho
);
quadTarget
.
material
=
mlib
[
'
normal
'
];
renderer
.
render
(
sceneRenderTarget
,
cameraOrtho
,
normalMap
,
true
);
renderer
.
setRenderTarget
(
normalMap
);
renderer
.
clear
();
renderer
.
render
(
sceneRenderTarget
,
cameraOrtho
);
}
renderer
.
setRenderTarget
(
null
);
renderer
.
render
(
scene
,
camera
);
}
...
...
examples/webgl_tiled_forward.html
浏览文件 @
85f911fb
...
...
@@ -386,7 +386,8 @@
update
(
time
/
1000
);
stats
.
begin
();
renderer
.
render
(
scene
,
camera
,
renderTarget
);
renderer
.
setRenderTarget
(
renderTarget
);
renderer
.
render
(
scene
,
camera
);
stats
.
end
();
}
);
...
...
src/cameras/CubeCamera.js
浏览文件 @
85f911fb
...
...
@@ -66,24 +66,26 @@ function CubeCamera( near, far, cubeResolution, options ) {
renderTarget
.
texture
.
generateMipmaps
=
false
;
renderTarget
.
activeCubeFace
=
0
;
renderer
.
render
(
scene
,
cameraPX
,
renderTarget
);
renderer
.
setRenderTarget
(
renderTarget
);
renderer
.
render
(
scene
,
cameraPX
);
renderTarget
.
activeCubeFace
=
1
;
renderer
.
render
(
scene
,
cameraNX
,
renderTarget
);
renderer
.
render
(
scene
,
cameraNX
);
renderTarget
.
activeCubeFace
=
2
;
renderer
.
render
(
scene
,
cameraPY
,
renderTarget
);
renderer
.
render
(
scene
,
cameraPY
);
renderTarget
.
activeCubeFace
=
3
;
renderer
.
render
(
scene
,
cameraNY
,
renderTarget
);
renderer
.
render
(
scene
,
cameraNY
);
renderTarget
.
activeCubeFace
=
4
;
renderer
.
render
(
scene
,
cameraPZ
,
renderTarget
);
renderer
.
render
(
scene
,
cameraPZ
);
renderTarget
.
texture
.
generateMipmaps
=
generateMipmaps
;
renderTarget
.
activeCubeFace
=
5
;
renderer
.
render
(
scene
,
cameraNZ
,
renderTarget
);
renderer
.
render
(
scene
,
cameraNZ
);
renderer
.
setRenderTarget
(
currentRenderTarget
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录