Coder Social home page Coder Social logo

farazzshaikh / glnoise Goto Github PK

View Code? Open in Web Editor NEW
222.0 222.0 13.0 7.37 MB

A collection of GLSL noise functions for use with WebGL with an easy to use API.

License: MIT License

JavaScript 16.65% GLSL 57.46% TypeScript 20.31% CSS 0.22% Shell 5.36%
glsl glsl-shaders graphics nodejs npm shaders webgl webgl-programming webgl2

glnoise's Introduction

glnoise's People

Contributors

farazzshaikh avatar github-actions[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

glnoise's Issues

New noise functions

You may want to have a look at the repo https://github.com/stegu/psrdnoise/ for a set of modern improved noise functions by me and Ian McEwan. These are both better and faster than the functions we published in ashima/webgl-noise, and they include code for computing the analytical derivative of the noise, which means that "flow noise" by Perlin and Neyret is now very easy to implement in 2D and 3D (the 3D version being an innovation of ours), and the "curl noise" function you include in your library is obsolete. Compared to finite differences, the analytical derivatives require only a small fraction of the work to compute.

Like the webgl-noise functions, the new functions are still compatible with WebGL 1.0 (no integer math) for maximum portability. Furthermore, I made a WGSL port for the upcoming WebGPU platform, and a GLSL version of 2D noise that works with "mediump". Most other noise functions have problems with mediump. Procedural texturing is really very hard to use with only mediump precision for all attributes and uniforms, but the noise function as such copes with 16-bit half-floats.

Incidentally, the patent on Perlin's original algorithm for Simplex Noise has now expired, so there is no need to mention it any longer. The patent claims were arguably applicable in part to the old webgl-noise functions, but not to the new functions, although that is now a moot point. I would even argue that the patent was issued in error by the USPO and would have been invalidated on a challenge or as a result of any actual litigation. Specifically, its primary claim (that simplex noise lacks grid artifacts and/or is visually isotropic) is demonstrably false, which invalidates all dependent claims and thereby the entire patent. Again, because the patent finally expired in January 2022, this is now moot.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.