Я пытаюсь реализовать 2D-генерацию шума Perlin в С++, а некоторые реализации, которые я нашел, не используют никакого семени вообще (здесь, здесь или здесь). Другие реализации принимают начальное значение для получения разных шумов в зависимости от значения шума.
Однако я нашел пример кода, в котором добавлено начальное значение к параметрам функции, вычисляющим значение шума для каждой октавы (см. PerlinNoise:: Total() в связанной код). Другой использует трехмерную функцию семени и использует фиксированное начальное значение как значение z (не удалось найти пример только сейчас). В других статьях предлагается использовать другие шумовые функции.
Итак, мой вопрос: каким лучшим способом было бы добавить начальное значение для генерации шума Perlin. При одинаковом начальном значении должны генерироваться одинаковые значения шума. Если бы решение заключалось в создании пользовательской функции шума, мне было бы интересно, если бы он мог быть реализован с использованием Boost.Random(или классов С++ 11 Standard С++ Library).
Изменить: ответить на то, что я имею в виду под "лучшим" способом: какой лучший способ дает мне шум Perlin, как будто он должен работать, например. функция градиентного шума.