大屏添加cesium
This commit is contained in:
		
							
								
								
									
										99
									
								
								public/sdk/three/jsm/postprocessing/RenderPass.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										99
									
								
								public/sdk/three/jsm/postprocessing/RenderPass.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,99 @@ | ||||
| import { | ||||
| 	Color | ||||
| } from 'three'; | ||||
| import { Pass } from './Pass.js'; | ||||
|  | ||||
| class RenderPass extends Pass { | ||||
|  | ||||
| 	constructor( scene, camera, overrideMaterial = null, clearColor = null, clearAlpha = null ) { | ||||
|  | ||||
| 		super(); | ||||
|  | ||||
| 		this.scene = scene; | ||||
| 		this.camera = camera; | ||||
|  | ||||
| 		this.overrideMaterial = overrideMaterial; | ||||
|  | ||||
| 		this.clearColor = clearColor; | ||||
| 		this.clearAlpha = clearAlpha; | ||||
|  | ||||
| 		this.clear = true; | ||||
| 		this.clearDepth = false; | ||||
| 		this.needsSwap = false; | ||||
| 		this._oldClearColor = new Color(); | ||||
|  | ||||
| 	} | ||||
|  | ||||
| 	render( renderer, writeBuffer, readBuffer /*, deltaTime, maskActive */ ) { | ||||
|  | ||||
| 		const oldAutoClear = renderer.autoClear; | ||||
| 		renderer.autoClear = false; | ||||
|  | ||||
| 		let oldClearAlpha, oldOverrideMaterial; | ||||
|  | ||||
| 		if ( this.overrideMaterial !== null ) { | ||||
|  | ||||
| 			oldOverrideMaterial = this.scene.overrideMaterial; | ||||
|  | ||||
| 			this.scene.overrideMaterial = this.overrideMaterial; | ||||
|  | ||||
| 		} | ||||
|  | ||||
| 		if ( this.clearColor !== null ) { | ||||
|  | ||||
| 			renderer.getClearColor( this._oldClearColor ); | ||||
| 			renderer.setClearColor( this.clearColor ); | ||||
|  | ||||
| 		} | ||||
|  | ||||
| 		if ( this.clearAlpha !== null ) { | ||||
|  | ||||
| 			oldClearAlpha = renderer.getClearAlpha(); | ||||
| 			renderer.setClearAlpha( this.clearAlpha ); | ||||
|  | ||||
| 		} | ||||
|  | ||||
| 		if ( this.clearDepth == true ) { | ||||
|  | ||||
| 			renderer.clearDepth(); | ||||
|  | ||||
| 		} | ||||
|  | ||||
| 		renderer.setRenderTarget( this.renderToScreen ? null : readBuffer ); | ||||
|  | ||||
| 		if ( this.clear === true ) { | ||||
|  | ||||
| 			// TODO: Avoid using autoClear properties, see https://github.com/mrdoob/three.js/pull/15571#issuecomment-465669600 | ||||
| 			renderer.clear( renderer.autoClearColor, renderer.autoClearDepth, renderer.autoClearStencil ); | ||||
|  | ||||
| 		} | ||||
|  | ||||
| 		renderer.render( this.scene, this.camera ); | ||||
|  | ||||
| 		// restore | ||||
|  | ||||
| 		if ( this.clearColor !== null ) { | ||||
|  | ||||
| 			renderer.setClearColor( this._oldClearColor ); | ||||
|  | ||||
| 		} | ||||
|  | ||||
| 		if ( this.clearAlpha !== null ) { | ||||
|  | ||||
| 			renderer.setClearAlpha( oldClearAlpha ); | ||||
|  | ||||
| 		} | ||||
|  | ||||
| 		if ( this.overrideMaterial !== null ) { | ||||
|  | ||||
| 			this.scene.overrideMaterial = oldOverrideMaterial; | ||||
|  | ||||
| 		} | ||||
|  | ||||
| 		renderer.autoClear = oldAutoClear; | ||||
|  | ||||
| 	} | ||||
|  | ||||
| } | ||||
|  | ||||
| export { RenderPass }; | ||||
		Reference in New Issue
	
	Block a user