CheckerNode.js 651 B

1234567891011121314151617181920212223242526272829303132333435
  1. import Node from '../core/Node.js';
  2. import ShaderNode from '../shadernode/ShaderNode.js';
  3. import { uv, add, mul, floor, mod, sign } from '../shadernode/ShaderNodeElements.js';
  4. const checkerShaderNode = new ShaderNode( ( inputs ) => {
  5. const uv = mul( inputs.uv, 2.0 );
  6. const cx = floor( uv.x );
  7. const cy = floor( uv.y );
  8. const result = mod( add( cx, cy ), 2.0 );
  9. return sign( result );
  10. } );
  11. class CheckerNode extends Node {
  12. constructor( uvNode = uv() ) {
  13. super( 'float' );
  14. this.uvNode = uvNode;
  15. }
  16. generate( builder ) {
  17. return checkerShaderNode.call( { uv: this.uvNode } ).build( builder );
  18. }
  19. }
  20. export default CheckerNode;