mirror of
https://github.com/jiawanlong/Cesium-Examples.git
synced 2025-07-06 16:31:03 +00:00
36 lines
745 B
JavaScript
36 lines
745 B
JavaScript
![]() |
import FogNode from './FogNode.js';
|
||
|
import { positionView } from '../accessors/PositionNode.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;
|
||
|
|
||
|
}
|
||
|
|
||
|
construct() {
|
||
|
|
||
|
const depthNode = positionView.z.negate();
|
||
|
const densityNode = this.densityNode;
|
||
|
|
||
|
return densityNode.mul( densityNode, depthNode, depthNode ).negate().exp().oneMinus();
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
export default FogExp2Node;
|
||
|
|
||
|
export const densityFog = nodeProxy( FogExp2Node );
|
||
|
|
||
|
addNodeElement( 'densityFog', densityFog );
|
||
|
|
||
|
addNodeClass( FogExp2Node );
|