This repository contains the noise functions that were converted from GLSL to WGSL, sourced from ashima/webgl-noise and stegu/webgl-noise.
Please note that it currently does not include psrdnoise
since the original author has already provided a version converted to WGSL (please refer to: stegu/psrdnoise).
Special thanks to Stefan Gustavson and Ian McEwan, Ashima Arts for their contributions to the community! This repository focuses solely on the language porting.
Be sure to visit ashima/webgl-noise, stegu/webgl-noise, and stegu/psrdnoise for more information!
Finally, a big thank you to Stefan Gustavson for the help!
All files with the .wgsl
extension are located in subdirectories within the src
directory.
To install wgsl-noise
using npm, you can run:
npm i wgsl-noise
To avoid potential naming conflicts between math functions when using multiple noise functions in the same app, I separate math functions from noise functions by default.
When using this package, you should first import the math
and then include the specific noise functions that you need as follows:
import { math, cellular2D, snoise3D, } from "./node_modules/wgsl-noise/dist/main.js"
const shaderCode = `
${math}
${cellular2D}
${snoise3D}
// your shader code...
`
If you are certain that you will only use a single noise function, you can import the functions located in the src
directory as follows:
import { cellular2D } from "./node_modules/wgsl-noise/src/main.js"
const shaderCode = `
${cellular2D}
// your shader code...
`
The default entry point for wgsl-noise
is specified in wgsl-noise/package.json
:
{
// ...
"main": "dist/main.js",
// ...
}
Please refer to the MIT license for detailed licensing information.