Melhor maneira de adicionar sementes ao ruído Perli

Estou tentando implementar a geração de ruído 2D Perlin em C ++, e algumas implementações que encontrei não usam nenhuma semente aqu, aqu ouaqu). Outras implementações usam um valor inicial para obter um ruído diferente, dependendo do valor do ruíd

Como eu encontreiexample code onde se adicionou o valor inicial aos parâmetros da função calculando o valor do ruído para cada oitava (consulte PerlinNoise :: Total () no código vinculado). Outro usa uma função de semente 3D e usa o valor fixo de semente como valor z (não foi possível encontrar o exemplo agora). Outros artigos sugerem o uso de outras funções de ruído.

Então, minha pergunta seria: qual seria a melhor maneira de adicionar um valor inicial à geração de ruído Perlin. Dado o mesmo valor inicial, os mesmos valores de ruído devem ser gerados. Se a solução consistisse em ter uma função de ruído personalizada, eu estaria interessado se pudesse ser implementado usando o Boost.Random (ou as classes da Biblioteca C ++ Standard do C ++ 11

Edit: Para responder o que quero dizer com o "melhor" caminho: Qual é o melhor caminho que me dá o ruído de Perlin como deveria funcionar, por exemplo. uma função de ruído gradient

questionAnswers(1)

yourAnswerToTheQuestion