Git Product home page Git Product logo

amortizednoise's Introduction

Amortized Noise

  This GitHub repository contains supplementary material to accompany
  Ian Parberry, "Amortized Noise", Journal of Computer Graphics Techniques,
  Vol. 3, No. 2, pp. 31-47, 2014.

  See also http://ianparberry.com/research/amortizednoise/.

ABSTRACT

  Perlin noise is often used to compute a regularly spaced grid of noise values. 
  The amortized noise algorithm takes advantage of this regular call pattern to
  amortize the computation cost of floating point computations over interpolated
  points using dynamic programming techniques. The 2D amortized noise algorithm
  uses a factor of 17/3 ~ 5.67 fewer floating point multiplications than the 2D
  Perlin noise algorithm, resulting in a speedup by a factor of approximately
  3.6-4.8 in practice on available desktop and laptop computing hardware. The 3D
  amortized noise algorithm uses a factor of 40/7 ~ 5.71 fewer floating point
  multiplications than the 3D Perlin noise algorithm, but the increasing
  overhead for the initialization of tables limits the speedup factor achieved
  in practice to around 2.25. Improvements to both 2D Perlin noise and 2D
  amortized noise include making them infinite and non-repeating by replacing
  the permutation table with a perfect hash function, and making them smoother
  by using quintic splines instead of cubic splines. While these improvements
  slow down 2D Perlin noise down by a factor of approximately 32-92, they slow
  2D amortized noise by a negligible amount.

LICENSE

  The source code in this repository is made available under the following license.

  // Copyright Ian Parberry, (date).
  //
  // This file is made available under the GNU All-Permissive License.
  //
  // Copying and distribution of this file, with or without modification,
  // are permitted in any medium without royalty provided the copyright
  // notice and this notice are preserved.  This file is offered as-is,
  // without any warranty.

CONTENTS
  
  2D Evaluator
  2D Generator
  3D Generator
  Data
  Examples

2D Evaluator

  Contents: A Microsoft(R) Visual Studio 2012(TM) project and a Unix makefile for
  the evaluator used in the paper to measure the running time of amortized noise
  compared to Perlin noise.

  Doxygen generated documentation can be found at
  http://larc.unt.edu/ian/research/amortizednoise/Doxygen/Evaluate2D/.

2D Generator

  Contents: A Microsoft(R) Visual Studio 2012(TM) project and a Unix makefile for
  a generator that will save a grayscale image of 2D finite or infinite amortized
  noise.

  Doxygen generated documentation can be found at
  http://larc.unt.edu/ian/research/amortizednoise/Doxygen/Generate2D.

3D Generator

  Contents: A Visual Studio 2012(TM) project and a Unix++ makefile for a generator
  that will save grayscale images of 3D finite or infinite amortized noise.

  Doxygen generated documentation can be found at
  http://larc.unt.edu/ian/research/amortizednoise/Doxygen/Generate3D/.

Data

  Contents: Files Data2D.xlsx and Data3D.xlsx containing the test data used in the
  paper in Microsoft(R) Excel(TM) format.

Examples

    i0s512o36s9999r23c14.png  512x512 grayscale image of 2D finite amortized noise
    i1s512o36s9999r23c42.png  512x512 grayscale image of 2D infinite amortized noise
    finite.gif                256x256 animated gif of 3D finite amortized noise
    infinite.gif              256x256 animated gif of 3D infinite amortized noise

amortizednoise's People

Contributors

ian-parberry avatar

Watchers

James Cloos avatar

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.