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 );
 |