node-ejs-renderer/node_modules/three/examples/jsm/nodes/display/PosterizeNode.js

33 lines
628 B
JavaScript
Raw Normal View History

2024-06-09 13:55:01 -04:00
import TempNode from '../core/TempNode.js';
import { addNodeClass } from '../core/Node.js';
import { addNodeElement, nodeProxy } from '../shadernode/ShaderNode.js';
class PosterizeNode extends TempNode {
constructor( sourceNode, stepsNode ) {
super();
this.sourceNode = sourceNode;
this.stepsNode = stepsNode;
}
setup() {
const { sourceNode, stepsNode } = this;
return sourceNode.mul( stepsNode ).floor().div( stepsNode );
}
}
export default PosterizeNode;
export const posterize = nodeProxy( PosterizeNode );
addNodeElement( 'posterize', posterize );
addNodeClass( 'PosterizeNode', PosterizeNode );