mx_noise_vec3
mx_noise_vec3
一个基于柏林噪声的程序化彩色噪声生成器,一次性输出一个三维向量(vec3),非常适合直接创建彩色纹理或三维位移场。
核心优势
高效地一次性生成三个相关的噪声通道,简化了创建彩色程序化纹理和三维矢量场(用于顶点扭曲)的流程,无需手动组合多个单通道噪声。
常见用途
直接生成多彩星云、迷幻图案等彩色纹理
通过三维顶点位移制作紊流、融化等扭曲效果
扰动 UV 坐标以模拟水面或热气流的折射
定义三维矢量场以驱动粒子运动
如何调整
通过为 `amplitude` 输入一个 `vec3` 来为噪声着色或控制各通道对比度。在顶点着色器中,将其输出作为位移矢量与顶点位置相加,可实现三维扭曲。将 `positionWorld` 作为输入并结合 `timer()`,可以创造出物体穿过动态彩色烟雾的体积效果。其输出的 .r, .g, .b 分量也可被单独用作三个独立的噪声图。
代码示例
1// 使用非均匀的振幅为噪声着色,使其偏向红色调
2const tintedNoise = mx_noise_vec3( uv(), vec3( 1.0, 0.3, 0.1 ), 0.5 );