添加关照、全局等高线、修改图层问题
This commit is contained in:
		
							
								
								
									
										65
									
								
								static/sdk/three/jsm/postprocessing/DotScreenPass.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								static/sdk/three/jsm/postprocessing/DotScreenPass.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,65 @@ | ||||
| import { | ||||
| 	ShaderMaterial, | ||||
| 	UniformsUtils | ||||
| } from 'three'; | ||||
| import { Pass, FullScreenQuad } from './Pass.js'; | ||||
| import { DotScreenShader } from '../shaders/DotScreenShader.js'; | ||||
|  | ||||
| class DotScreenPass extends Pass { | ||||
|  | ||||
| 	constructor( center, angle, scale ) { | ||||
|  | ||||
| 		super(); | ||||
|  | ||||
| 		const shader = DotScreenShader; | ||||
|  | ||||
| 		this.uniforms = UniformsUtils.clone( shader.uniforms ); | ||||
|  | ||||
| 		if ( center !== undefined ) this.uniforms[ 'center' ].value.copy( center ); | ||||
| 		if ( angle !== undefined ) this.uniforms[ 'angle' ].value = angle; | ||||
| 		if ( scale !== undefined ) this.uniforms[ 'scale' ].value = scale; | ||||
|  | ||||
| 		this.material = new ShaderMaterial( { | ||||
|  | ||||
| 			name: shader.name, | ||||
| 			uniforms: this.uniforms, | ||||
| 			vertexShader: shader.vertexShader, | ||||
| 			fragmentShader: shader.fragmentShader | ||||
|  | ||||
| 		} ); | ||||
|  | ||||
| 		this.fsQuad = new FullScreenQuad( this.material ); | ||||
|  | ||||
| 	} | ||||
|  | ||||
| 	render( renderer, writeBuffer, readBuffer /*, deltaTime, maskActive */ ) { | ||||
|  | ||||
| 		this.uniforms[ 'tDiffuse' ].value = readBuffer.texture; | ||||
| 		this.uniforms[ 'tSize' ].value.set( readBuffer.width, readBuffer.height ); | ||||
|  | ||||
| 		if ( this.renderToScreen ) { | ||||
|  | ||||
| 			renderer.setRenderTarget( null ); | ||||
| 			this.fsQuad.render( renderer ); | ||||
|  | ||||
| 		} else { | ||||
|  | ||||
| 			renderer.setRenderTarget( writeBuffer ); | ||||
| 			if ( this.clear ) renderer.clear(); | ||||
| 			this.fsQuad.render( renderer ); | ||||
|  | ||||
| 		} | ||||
|  | ||||
| 	} | ||||
|  | ||||
| 	dispose() { | ||||
|  | ||||
| 		this.material.dispose(); | ||||
|  | ||||
| 		this.fsQuad.dispose(); | ||||
|  | ||||
| 	} | ||||
|  | ||||
| } | ||||
|  | ||||
| export { DotScreenPass }; | ||||
		Reference in New Issue
	
	Block a user