35 lines
		
	
	
		
			685 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			685 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import FogNode from './FogNode.js';
 | |
| import { addNodeClass } from '../core/Node.js';
 | |
| import { addNodeElement, nodeProxy } from '../shadernode/ShaderNode.js';
 | |
| 
 | |
| class FogExp2Node extends FogNode {
 | |
| 
 | |
| 	constructor( colorNode, densityNode ) {
 | |
| 
 | |
| 		super( colorNode );
 | |
| 
 | |
| 		this.isFogExp2Node = true;
 | |
| 
 | |
| 		this.densityNode = densityNode;
 | |
| 
 | |
| 	}
 | |
| 
 | |
| 	setup( builder ) {
 | |
| 
 | |
| 		const viewZ = this.getViewZNode( builder );
 | |
| 		const density = this.densityNode;
 | |
| 
 | |
| 		return density.mul( density, viewZ, viewZ ).negate().exp().oneMinus();
 | |
| 
 | |
| 	}
 | |
| 
 | |
| }
 | |
| 
 | |
| export default FogExp2Node;
 | |
| 
 | |
| export const densityFog = nodeProxy( FogExp2Node );
 | |
| 
 | |
| addNodeElement( 'densityFog', densityFog );
 | |
| 
 | |
| addNodeClass( 'FogExp2Node', FogExp2Node );
 |