42 lines
		
	
	
		
			932 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			42 lines
		
	
	
		
			932 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | import AnalyticLightNode from './AnalyticLightNode.js'; | ||
|  | import { lightTargetDirection } from './LightNode.js'; | ||
|  | import { addLightNode } from './LightsNode.js'; | ||
|  | import { addNodeClass } from '../core/Node.js'; | ||
|  | 
 | ||
|  | import { DirectionalLight } from 'three'; | ||
|  | 
 | ||
|  | class DirectionalLightNode extends AnalyticLightNode { | ||
|  | 
 | ||
|  | 	constructor( light = null ) { | ||
|  | 
 | ||
|  | 		super( light ); | ||
|  | 
 | ||
|  | 	} | ||
|  | 
 | ||
|  | 	setup( builder ) { | ||
|  | 
 | ||
|  | 		super.setup( builder ); | ||
|  | 
 | ||
|  | 		const lightingModel = builder.context.lightingModel; | ||
|  | 
 | ||
|  | 		const lightColor = this.colorNode; | ||
|  | 		const lightDirection = lightTargetDirection( this.light ); | ||
|  | 		const reflectedLight = builder.context.reflectedLight; | ||
|  | 
 | ||
|  | 		lightingModel.direct( { | ||
|  | 			lightDirection, | ||
|  | 			lightColor, | ||
|  | 			reflectedLight, | ||
|  | 			shadowMask: this.shadowMaskNode | ||
|  | 		}, builder.stack, builder ); | ||
|  | 
 | ||
|  | 	} | ||
|  | 
 | ||
|  | } | ||
|  | 
 | ||
|  | export default DirectionalLightNode; | ||
|  | 
 | ||
|  | addNodeClass( 'DirectionalLightNode', DirectionalLightNode ); | ||
|  | 
 | ||
|  | addLightNode( DirectionalLight, DirectionalLightNode ); |