| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 | import {	BufferGeometry,	Float32BufferAttribute,	OrthographicCamera,	Mesh} from '../../../build/three.module.js';class Pass {	constructor() {		// if set to true, the pass is processed by the composer		this.enabled = true;		// if set to true, the pass indicates to swap read and write buffer after rendering		this.needsSwap = true;		// if set to true, the pass clears its buffer before rendering		this.clear = false;		// if set to true, the result of the pass is rendered to screen. This is set automatically by EffectComposer.		this.renderToScreen = false;	}	setSize( /* width, height */ ) {}	render( /* renderer, writeBuffer, readBuffer, deltaTime, maskActive */ ) {		console.error( 'THREE.Pass: .render() must be implemented in derived pass.' );	}}// Helper for passes that need to fill the viewport with a single quad.const _camera = new OrthographicCamera( - 1, 1, 1, - 1, 0, 1 );// https://github.com/mrdoob/three.js/pull/21358const _geometry = new BufferGeometry();_geometry.setAttribute( 'position', new Float32BufferAttribute( [ - 1, 3, 0, - 1, - 1, 0, 3, - 1, 0 ], 3 ) );_geometry.setAttribute( 'uv', new Float32BufferAttribute( [ 0, 2, 0, 0, 2, 0 ], 2 ) );class FullScreenQuad {	constructor( material ) {		this._mesh = new Mesh( _geometry, material );	}	dispose() {		this._mesh.geometry.dispose();	}	render( renderer ) {		renderer.render( this._mesh, _camera );	}	get material() {		return this._mesh.material;	}	set material( value ) {		this._mesh.material = value;	}}export { Pass, FullScreenQuad };
 |