Почему алгоритмы шума Perlin используют таблицы поиска для случайных чисел - PullRequest
4 голосов
/ 14 марта 2012

Я исследовал алгоритмы шума для библиотеки, которую я хотел бы построить, и начал с шума Перлина (точнее, симплексного шума, я хочу работать с произвольными размерами или, по крайней мере, до 6).Чтение Симплексный шум, демистифицированный , помогло, но, просматривая реализации в конце, я увидел большую справочную таблицу с именем perm.

В примере кода, похоже, он используется длягенерировать индексы в виде набора градиентов, но метод кажется странным.Я предполагаю, что таблица предназначена только для того, чтобы обеспечить 1) детерминизм и 2) повышение скорости.

Мой вопрос заключается в том, имеет ли таблица поиска perm какое-либо вспомогательное значение или назначение, или она существует дляпричины выше?Или другой способ: есть ли конкретная причина, по которой генератор псевдослучайных чисел не используется, кроме производительности?

Ответы [ 2 ]

2 голосов
/ 12 декабря 2012

Это байтовый массив.Диапазон от 0 до 255. Вы можете рандомизировать его, если хотите.Возможно, вы захотите посеять случайное ... и т.д.

0 голосов
/ 30 июля 2013

Таблица пермиссии (и таблица градаций) используется для оптимизации. Это просто таблицы поиска предварительно вычисленных значений. Вы правы в обоих пунктах 1) и 2).

Кроме производительности и портативности, нет причин, по которым вы не могли бы использовать PRN.

...