node-ejs-renderer/node_modules/three/examples/jsm/nodes/fog/FogNode.js

49 lines
764 B
JavaScript
Raw Normal View History

2024-06-09 13:55:01 -04:00
import Node, { addNodeClass } from '../core/Node.js';
import { positionView } from '../accessors/PositionNode.js';
import { addNodeElement, nodeProxy } from '../shadernode/ShaderNode.js';
class FogNode extends Node {
constructor( colorNode, factorNode ) {
super( 'float' );
this.isFogNode = true;
this.colorNode = colorNode;
this.factorNode = factorNode;
}
getViewZNode( builder ) {
let viewZ;
const getViewZ = builder.context.getViewZ;
if ( getViewZ !== undefined ) {
viewZ = getViewZ( this );
}
return ( viewZ || positionView.z ).negate();
}
setup() {
return this.factorNode;
}
}
export default FogNode;
export const fog = nodeProxy( FogNode );
addNodeElement( 'fog', fog );
addNodeClass( 'FogNode', FogNode );