LightContextNode.js 736 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import ContextNode from '../core/ContextNode.js';
  2. import { reflectedLight } from '../shadernode/ShaderNodeElements.js';
  3. class LightContextNode extends ContextNode {
  4. constructor( node, lightingModelNode = null ) {
  5. super( node );
  6. this.lightingModelNode = lightingModelNode;
  7. }
  8. getNodeType( /*builder*/ ) {
  9. return 'vec3';
  10. }
  11. generate( builder ) {
  12. const { lightingModelNode } = this;
  13. this.context.reflectedLight = reflectedLight();
  14. if ( lightingModelNode !== null ) {
  15. this.context.lightingModelNode = lightingModelNode;
  16. }
  17. const type = this.getNodeType( builder );
  18. super.generate( builder, type );
  19. return this.context.reflectedLight.build( builder, type );
  20. }
  21. }
  22. export default LightContextNode;