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