Быстрый генератор псевдослучайных чисел для процедурного контентаC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Быстрый генератор псевдослучайных чисел для процедурного контента

Сообщение Anonymous »

Я ищу генератор псевдослучайных чисел, который бы работал быстро, когда перед генерацией каждого числа ему дается начальное число. Большинство генераторов, которые я видел до сих пор, предполагают, что вы устанавливаете начальное число один раз, а затем генерируете длинную последовательность чисел. Единственное, что похоже на то, что я видел до сих пор, — это шум Перлина, но он генерирует слишком «гладкие» данные — для аналогичных входных данных он имеет тенденцию давать аналогичные результаты.

Объявление генератора должно выглядеть примерно так:

Код: Выделить всё

int RandomNumber1(int seed);
Или:

Код: Выделить всё

int RandomNumber3(int seedX, int seedY, int seedZ);
Я думаю, что хорошего RandomNumber1 должно быть достаточно, поскольку можно реализовать RandomNumber3, хешируя его входные данные и передавая результат в RandomNumber1, но я написал второй прототип на случае, если некоторая реализация может использовать независимые входные данные.

Предполагаемое использование этого генератора — использовать его для генератора процедурного контента, например, создание леса путем размещения деревьев в сетке и определение случайного вида дерева и случайного пространственного смещения для каждого местоположения.

Генератор должен быть очень эффективным (менее 500 циклов ЦП), поскольку процедурный контент создается в огромных количества в реальном времени во время рендеринга.

Подробнее здесь: https://stackoverflow.com/questions/167 ... al-content
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»