Skip to content

Commit 90c34c0

Browse files
authored
Effects: Use FullScreenQuad. (#29126)
1 parent 9405496 commit 90c34c0

File tree

2 files changed

+23
-24
lines changed

2 files changed

+23
-24
lines changed

examples/jsm/effects/AnaglyphEffect.js

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,13 @@
11
import {
22
LinearFilter,
33
Matrix3,
4-
Mesh,
54
NearestFilter,
6-
OrthographicCamera,
7-
PlaneGeometry,
85
RGBAFormat,
9-
Scene,
106
ShaderMaterial,
117
StereoCamera,
128
WebGLRenderTarget
139
} from 'three';
10+
import { FullScreenQuad } from '../postprocessing/Pass.js';
1411

1512
class AnaglyphEffect {
1613

@@ -30,10 +27,6 @@ class AnaglyphEffect {
3027
- 0.00155529, - 0.0184503, 1.2264
3128
] );
3229

33-
const _camera = new OrthographicCamera( - 1, 1, 1, - 1, 0, 1 );
34-
35-
const _scene = new Scene();
36-
3730
const _stereo = new StereoCamera();
3831

3932
const _params = { minFilter: LinearFilter, magFilter: NearestFilter, format: RGBAFormat };
@@ -99,8 +92,7 @@ class AnaglyphEffect {
9992

10093
} );
10194

102-
const _mesh = new Mesh( new PlaneGeometry( 2, 2 ), _material );
103-
_scene.add( _mesh );
95+
const _quad = new FullScreenQuad( _material );
10496

10597
this.setSize = function ( width, height ) {
10698

@@ -132,7 +124,7 @@ class AnaglyphEffect {
132124
renderer.render( scene, _stereo.cameraR );
133125

134126
renderer.setRenderTarget( null );
135-
renderer.render( _scene, _camera );
127+
_quad.render( renderer );
136128

137129
renderer.setRenderTarget( currentRenderTarget );
138130

@@ -142,8 +134,9 @@ class AnaglyphEffect {
142134

143135
_renderTargetL.dispose();
144136
_renderTargetR.dispose();
145-
_mesh.geometry.dispose();
146-
_mesh.material.dispose();
137+
138+
_material.dispose();
139+
_quad.dispose();
147140

148141
};
149142

examples/jsm/effects/ParallaxBarrierEffect.js

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,17 @@
11
import {
22
LinearFilter,
3-
Mesh,
43
NearestFilter,
5-
OrthographicCamera,
6-
PlaneGeometry,
74
RGBAFormat,
8-
Scene,
95
ShaderMaterial,
106
StereoCamera,
117
WebGLRenderTarget
128
} from 'three';
9+
import { FullScreenQuad } from '../postprocessing/Pass.js';
1310

1411
class ParallaxBarrierEffect {
1512

1613
constructor( renderer ) {
1714

18-
const _camera = new OrthographicCamera( - 1, 1, 1, - 1, 0, 1 );
19-
20-
const _scene = new Scene();
21-
2215
const _stereo = new StereoCamera();
2316

2417
const _params = { minFilter: LinearFilter, magFilter: NearestFilter, format: RGBAFormat };
@@ -77,8 +70,7 @@ class ParallaxBarrierEffect {
7770

7871
} );
7972

80-
const mesh = new Mesh( new PlaneGeometry( 2, 2 ), _material );
81-
_scene.add( mesh );
73+
const _quad = new FullScreenQuad( _material );
8274

8375
this.setSize = function ( width, height ) {
8476

@@ -93,6 +85,8 @@ class ParallaxBarrierEffect {
9385

9486
this.render = function ( scene, camera ) {
9587

88+
const currentRenderTarget = renderer.getRenderTarget();
89+
9690
if ( scene.matrixWorldAutoUpdate === true ) scene.updateMatrixWorld();
9791

9892
if ( camera.parent === null && camera.matrixWorldAutoUpdate === true ) camera.updateMatrixWorld();
@@ -108,7 +102,19 @@ class ParallaxBarrierEffect {
108102
renderer.render( scene, _stereo.cameraR );
109103

110104
renderer.setRenderTarget( null );
111-
renderer.render( _scene, _camera );
105+
_quad.render( renderer );
106+
107+
renderer.setRenderTarget( currentRenderTarget );
108+
109+
};
110+
111+
this.dispose = function () {
112+
113+
_renderTargetL.dispose();
114+
_renderTargetR.dispose();
115+
116+
_material.dispose();
117+
_quad.dispose();
112118

113119
};
114120

0 commit comments

Comments
 (0)