FogRangeNode.js 733 B

12345678910111213141516171819202122232425262728293031323334
  1. import FogNode from './FogNode.js';
  2. import { smoothstep } from '../math/MathNode.js';
  3. import { positionView } from '../accessors/PositionNode.js';
  4. import { addNodeClass } from '../core/Node.js';
  5. import { addNodeElement, nodeProxy } from '../shadernode/ShaderNode.js';
  6. class FogRangeNode extends FogNode {
  7. constructor( colorNode, nearNode, farNode ) {
  8. super( colorNode );
  9. this.isFogRangeNode = true;
  10. this.nearNode = nearNode;
  11. this.farNode = farNode;
  12. }
  13. construct() {
  14. this.factorNode = smoothstep( this.nearNode, this.farNode, positionView.z.negate() );
  15. }
  16. }
  17. export default FogRangeNode;
  18. export const rangeFog = nodeProxy( FogRangeNode );
  19. addNodeElement( 'rangeFog', rangeFog );
  20. addNodeClass( FogRangeNode );