添加关照、全局等高线、修改图层问题

This commit is contained in:
2025-07-17 18:54:05 +08:00
parent c781d38c0c
commit b274b62671
4594 changed files with 791769 additions and 4921 deletions

View File

@ -0,0 +1,34 @@
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 );

View File

@ -0,0 +1,48 @@
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 );

View File

@ -0,0 +1,35 @@
import FogNode from './FogNode.js';
import { smoothstep } from '../math/MathNode.js';
import { addNodeClass } from '../core/Node.js';
import { addNodeElement, nodeProxy } from '../shadernode/ShaderNode.js';
class FogRangeNode extends FogNode {
constructor( colorNode, nearNode, farNode ) {
super( colorNode );
this.isFogRangeNode = true;
this.nearNode = nearNode;
this.farNode = farNode;
}
setup( builder ) {
const viewZ = this.getViewZNode( builder );
return smoothstep( this.nearNode, this.farNode, viewZ );
}
}
export default FogRangeNode;
export const rangeFog = nodeProxy( FogRangeNode );
addNodeElement( 'rangeFog', rangeFog );
addNodeClass( 'FogRangeNode', FogRangeNode );