Buckets:
| import { | |
| BufferGeometry, | |
| Float32BufferAttribute, | |
| OrthographicCamera, | |
| Mesh | |
| } from 'three'; | |
| /** | |
| * Abstract base class for all post processing passes. | |
| * | |
| * This module is only relevant for post processing with {@link WebGLRenderer}. | |
| * | |
| * @abstract | |
| * @three_import import { Pass } from 'three/addons/postprocessing/Pass.js'; | |
| */ | |
| class Pass { | |
| /** | |
| * Constructs a new pass. | |
| */ | |
| constructor() { | |
| /** | |
| * This flag can be used for type testing. | |
| * | |
| * @type {boolean} | |
| * @readonly | |
| * @default true | |
| */ | |
| this.isPass = true; | |
| /** | |
| * If set to `true`, the pass is processed by the composer. | |
| * | |
| * @type {boolean} | |
| * @default true | |
| */ | |
| this.enabled = true; | |
| /** | |
| * If set to `true`, the pass indicates to swap read and write buffer after rendering. | |
| * | |
| * @type {boolean} | |
| * @default true | |
| */ | |
| this.needsSwap = true; | |
| /** | |
| * If set to `true`, the pass clears its buffer before rendering | |
| * | |
| * @type {boolean} | |
| * @default false | |
| */ | |
| this.clear = false; | |
| /** | |
| * If set to `true`, the result of the pass is rendered to screen. The last pass in the composers | |
| * pass chain gets automatically rendered to screen, no matter how this property is configured. | |
| * | |
| * @type {boolean} | |
| * @default false | |
| */ | |
| this.renderToScreen = false; | |
| } | |
| /** | |
| * Sets the size of the pass. | |
| * | |
| * @abstract | |
| * @param {number} width - The width to set. | |
| * @param {number} height - The width to set. | |
| */ | |
| setSize( /* width, height */ ) {} | |
| /** | |
| * This method holds the render logic of a pass. It must be implemented in all derived classes. | |
| * | |
| * @abstract | |
| * @param {WebGLRenderer} renderer - The renderer. | |
| * @param {WebGLRenderTarget} writeBuffer - The write buffer. This buffer is intended as the rendering | |
| * destination for the pass. | |
| * @param {WebGLRenderTarget} readBuffer - The read buffer. The pass can access the result from the | |
| * previous pass from this buffer. | |
| * @param {number} deltaTime - The delta time in seconds. | |
| * @param {boolean} maskActive - Whether masking is active or not. | |
| */ | |
| render( /* renderer, writeBuffer, readBuffer, deltaTime, maskActive */ ) { | |
| console.error( 'THREE.Pass: .render() must be implemented in derived pass.' ); | |
| } | |
| /** | |
| * Frees the GPU-related resources allocated by this instance. Call this | |
| * method whenever the pass is no longer used in your app. | |
| * | |
| * @abstract | |
| */ | |
| dispose() {} | |
| } | |
| // 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/21358 | |
| class FullscreenTriangleGeometry extends BufferGeometry { | |
| constructor() { | |
| super(); | |
| this.setAttribute( 'position', new Float32BufferAttribute( [ - 1, 3, 0, - 1, - 1, 0, 3, - 1, 0 ], 3 ) ); | |
| this.setAttribute( 'uv', new Float32BufferAttribute( [ 0, 2, 0, 0, 2, 0 ], 2 ) ); | |
| } | |
| } | |
| const _geometry = new FullscreenTriangleGeometry(); | |
| /** | |
| * This module is a helper for passes which need to render a full | |
| * screen effect which is quite common in context of post processing. | |
| * | |
| * The intended usage is to reuse a single full screen quad for rendering | |
| * subsequent passes by just reassigning the `material` reference. | |
| * | |
| * This module can only be used with {@link WebGLRenderer}. | |
| * | |
| * @augments Mesh | |
| * @three_import import { FullScreenQuad } from 'three/addons/postprocessing/Pass.js'; | |
| */ | |
| class FullScreenQuad { | |
| /** | |
| * Constructs a new full screen quad. | |
| * | |
| * @param {?Material} material - The material to render te full screen quad with. | |
| */ | |
| constructor( material ) { | |
| this._mesh = new Mesh( _geometry, material ); | |
| } | |
| /** | |
| * Frees the GPU-related resources allocated by this instance. Call this | |
| * method whenever the instance is no longer used in your app. | |
| */ | |
| dispose() { | |
| this._mesh.geometry.dispose(); | |
| } | |
| /** | |
| * Renders the full screen quad. | |
| * | |
| * @param {WebGLRenderer} renderer - The renderer. | |
| */ | |
| render( renderer ) { | |
| renderer.render( this._mesh, _camera ); | |
| } | |
| /** | |
| * The quad's material. | |
| * | |
| * @type {?Material} | |
| */ | |
| get material() { | |
| return this._mesh.material; | |
| } | |
| set material( value ) { | |
| this._mesh.material = value; | |
| } | |
| } | |
| export { Pass, FullScreenQuad }; | |
Xet Storage Details
- Size:
- 4.22 kB
- Xet hash:
- d4c133dae9887bf168e9feefeada75b37820619811404b261a25fb0174f30142
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.