Помогите с использованием библиотеки perno noise libnoise - PullRequest
4 голосов
/ 23 мая 2011

Когда я вызываю функцию getvalue в libnoise с x, y и z в качестве целых чисел, я всегда возвращаю 0 в результате.Это нормально?Когда я пробую 1,25, 0,75, 0,5, как в учебнике http://libnoise.sourceforge.net/tutorials/tutorial2.html, я получаю ожидаемый результат 0,686347.В частности, я пробовал это с целыми числами до 20. Я просто не понимаю, как это работает?

Любая помощь очень ценится.

Ответы [ 2 ]

6 голосов
/ 23 мая 2011

enter image description here

Хотя Оли Чарльзуорт прав, вы получаете нули при целочисленных значениях, потому что все нули встречаются при целочисленных значениях.Смотрите вышеприведенный график для легкой визуальной демонстрации!Причина, по которой нули встречаются у целых чисел, заключается в том, что когерентный шум считается гладким (в отличие от зубчатых), и очень простой способ добиться этого - просто установить нули на целые числа и интерполировать псевдослучайные числа между ними.Преимущество плавного шума заключается в том, что он органичен и реалистичен по своей природе.

Сравните эту функцию когерентного шума:

enter image description here

С этой функцией некогерентного шума:

enter image description here

Какая гора больше всего похожа?:)

1 голос
/ 23 мая 2011

Согласно http://libnoise.sourceforge.net/noisegen/index.html#gradientnoise, значения в целочисленных координатах всегда будут равны нулю.

...