Cesium-Examples/libs/three/examples/jsm/nodes/display/PosterizeNode.js
2025-03-19 11:00:22 +08:00

33 lines
615 B
JavaScript

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;
}
construct() {
const { sourceNode, stepsNode } = this;
return sourceNode.mul( stepsNode ).floor().div( stepsNode );
}
}
export default PosterizeNode;
export const posterize = nodeProxy( PosterizeNode );
addNodeElement( 'posterize', posterize );
addNodeClass( PosterizeNode );