mx_unifiednoise3d
mx_unifiednoise3d
统一的 3D 噪声生成节点,支持 Perlin、Cell、Worley、Fractal 等多种噪声类型。接受位置、频率、偏移、抖动和分形参数,输出标量用于颜色、位移或体积驱动。
核心优势
用单一接口聚合多种噪声算法,便于在材质内快速切换和参数化。同样支持分形多频率(octaves/lacunarity/diminish)、输出重映射与可选钳位,方便在多种视觉效果中复用。
常见用途
程序化纹理与表面细节
顶点位移与形变驱动
体积噪声(云、烟、雾、星云)采样
混合/遮罩/掩码的随机场生成(Worley/Cell 特征)
如何调整
noiseType: 0=Perlin,1=Cell,2=Worley,3=Fractal。freq 控制空间缩放(增大频率更细);offset 平移采样位置;jitter 对 Worley 距离有影响;outmin/outmax 对结果重映射区间;clampoutput 打开后会钳位到 [outmin,outmax];对分形噪声,调节 octaves(层数)、lacunarity(频率倍增)和 diminish(振幅衰减)可形成不同细节层次。
代码示例
1<Canvas>
2 <mesh>
3 <sphereGeometry args={[0.6, 128, 128]} />
4 {/* 将噪声作为位移或颜色驱动示例。noiseType: 0=Perlin,1=Cell,2=Worley,3=Fractal */}
5 <meshStandardNodeMaterial
6 // 使用 positionLocal 或 uv 等作为位置输入
7 displacementNode={ mx_unifiednoise3d( 3, positionLocal, vec3(2.0), vec3(0.0), 1.0, 0.0, 1.0, false, 4, 2.0, 0.5 ).mul( 0.12 ) }
8 colorNode={ color( mx_unifiednoise3d( 0, positionLocal.mul(0.5), vec3(1.5), vec3(0.0), 1.0, 0.0, 1.0 ).rgb ) }
9 />
10 </mesh>
11</Canvas>