CheckerNode.js 586 B

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