You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
685 B
35 lines
685 B
import FogNode from './FogNode.js';
|
|
import { addNodeClass } from '../core/Node.js';
|
|
import { addNodeElement, nodeProxy } from '../shadernode/ShaderNode.js';
|
|
|
|
class FogExp2Node extends FogNode {
|
|
|
|
constructor( colorNode, densityNode ) {
|
|
|
|
super( colorNode );
|
|
|
|
this.isFogExp2Node = true;
|
|
|
|
this.densityNode = densityNode;
|
|
|
|
}
|
|
|
|
setup( builder ) {
|
|
|
|
const viewZ = this.getViewZNode( builder );
|
|
const density = this.densityNode;
|
|
|
|
return density.mul( density, viewZ, viewZ ).negate().exp().oneMinus();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
export default FogExp2Node;
|
|
|
|
export const densityFog = nodeProxy( FogExp2Node );
|
|
|
|
addNodeElement( 'densityFog', densityFog );
|
|
|
|
addNodeClass( 'FogExp2Node', FogExp2Node );
|