title: Best way to add seed to Perlin noise?
body: <p>I'm trying to implement 2D Perlin noise generation in C++, and some implementations I found use no seed at all (<a href="http://www.dreamincode.net/forums/topic/66480-perlin-noise/" rel="nofollow noreferrer">here</a>, <a href="http://freespace.virgin.net/hugo.elias/models/m_perlin.htm" rel="nofollow noreferrer">here</a> or <a href="https://stackoverflow.com/questions/6973369/software-perlin-noise-implementation">here</a>). Other implementations take a seed value to get different noise depending on the noise value.</p>
  
  <p>However I found <a href="https://stackoverflow.com/questions/4753055/perlin-noise-generation-for-terrain">example code</a> where one added the seed value to the function parameters calculating the noise value for each octave (see PerlinNoise::Total() in the linked code). Another one uses a 3D seed function and uses the fixed seed value as the z value (couldn't find the example just now). Other articles suggest using other noise functions.</p>
  
  <p>So my question would be, what the best way would be to add a seed value to Perlin noise generation is. Given the same seed value, the same noise values should be generated. If the solution would be to have a custom noise function, I would be interested if it could be implemented using Boost.Random (or C++11's Standard C++ Library classes).</p>
  
  <p>Edit: To answer what I mean with "best" way: What's the best way that gives me Perlin noise like it was supposed to work, e.g. a gradient noise function.</p>