36 lines
		
	
	
		
			711 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			711 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import FogNode from './FogNode.js';
 | |
| import { smoothstep } from '../math/MathNode.js';
 | |
| import { addNodeClass } from '../core/Node.js';
 | |
| import { addNodeElement, nodeProxy } from '../shadernode/ShaderNode.js';
 | |
| 
 | |
| class FogRangeNode extends FogNode {
 | |
| 
 | |
| 	constructor( colorNode, nearNode, farNode ) {
 | |
| 
 | |
| 		super( colorNode );
 | |
| 
 | |
| 		this.isFogRangeNode = true;
 | |
| 
 | |
| 		this.nearNode = nearNode;
 | |
| 		this.farNode = farNode;
 | |
| 
 | |
| 	}
 | |
| 
 | |
| 	setup( builder ) {
 | |
| 
 | |
| 		const viewZ = this.getViewZNode( builder );
 | |
| 
 | |
| 		return smoothstep( this.nearNode, this.farNode, viewZ );
 | |
| 
 | |
| 	}
 | |
| 
 | |
| }
 | |
| 
 | |
| export default FogRangeNode;
 | |
| 
 | |
| export const rangeFog = nodeProxy( FogRangeNode );
 | |
| 
 | |
| addNodeElement( 'rangeFog', rangeFog );
 | |
| 
 | |
| addNodeClass( 'FogRangeNode', FogRangeNode );
 |