ReflectedLightNode.js 968 B

1234567891011121314151617181920212223242526272829303132
  1. import TempNode from '../core/Node.js';
  2. import VarNode from '../core/VarNode.js';
  3. import ConstNode from '../core/UniformNode.js';
  4. import OperatorNode from '../math/OperatorNode.js';
  5. import { Vector3 } from 'three';
  6. class ReflectedLightNode extends TempNode {
  7. constructor() {
  8. super( 'vec3' );
  9. this.directDiffuse = new VarNode( new ConstNode( new Vector3() ), 'DirectDiffuse' );
  10. this.directSpecular = new VarNode( new ConstNode( new Vector3() ), 'DirectSpecular' );
  11. this.indirectDiffuse = new VarNode( new ConstNode( new Vector3() ), 'IndirectDiffuse' );
  12. this.indirectSpecular = new VarNode( new ConstNode( new Vector3() ), 'IndirectSpecular' );
  13. }
  14. generate( builder ) {
  15. const { directDiffuse, directSpecular, indirectDiffuse, indirectSpecular } = this;
  16. const totalLight = new OperatorNode( '+', directDiffuse, directSpecular, indirectDiffuse, indirectSpecular );
  17. return totalLight.build( builder );
  18. }
  19. }
  20. export default ReflectedLightNode;