three
Version:
JavaScript 3D library
43 lines (22 loc) • 740 B
JavaScript
import ContextNode from '../core/ContextNode.js';
import { reflectedLight } from '../shadernode/ShaderNodeBaseElements.js';
class LightContextNode extends ContextNode {
constructor( node, lightingModelNode = null ) {
super( node );
this.lightingModelNode = lightingModelNode;
}
getNodeType( /*builder*/ ) {
return 'vec3';
}
generate( builder ) {
const { lightingModelNode } = this;
this.context.reflectedLight = reflectedLight();
if ( lightingModelNode !== null ) {
this.context.lightingModelNode = lightingModelNode;
}
const type = this.getNodeType( builder );
super.generate( builder, type );
return this.context.reflectedLight.build( builder, type );
}
}
export default LightContextNode;