Нода «Текстура шума» (noise texture node)#

Нода ":abbr:`Текстура шума (Noise Texture)`".

Нода Noise Texture оценивает фрактальный шум Перлина в координатах вводной текстуры. Её можно использовать для одиночной оценки шума Перлина или для объединения нескольких октав (слоёв) с возрастающей детализацией.

Входы (inputs)#

Входы являются динамическими: они становятся доступными при необходимости, в зависимости от свойств ноды.

Вектор (vector)

Координата текстуры для вычисления шума; если сокет не подключён – «по умолчанию» координаты текстуры «генерируются».

W

Координата вычисления текстуры шума.

Масштабировать (scale)

Масштаб основной октавы шума.

Детальность (detail)

Количество октав шума. Может иметь дробную часть, в этом случае выполняется смешивание (например, Detail 2.5 даёт 50% смешивание между 2 и 3 октавами).

Шероховатость (roughness)

Смешивать более гладкий узор шума и более грубый с более острыми пиками.

Лакунарность (lacunarity)

Разница между масштабом каждых двух последовательных октав. Бо́льшие значения соответствуют бо́льшему масштабу для более высоких октав.

Смещение (offset)

Добавленное смещение к каждой октаве определяет уровень, на котором появится самая высокая октава.

Насыщенность (gain)

Дополнительный множитель для настройки величины октав.

Искажение (distortion)

Величина искажения.

Свойства#

Измерения (dimensions)

Измерения пространства для оценки шума.

1D:

Вычисление шума в одномерном пространстве на входе W.

2D:

Вычисление шума в двумерном пространстве на входе Vector. Компонент Z игнорируется.

3D:

Вычисление шума в трёхмерном пространстве на входе Vector.

4D:

Вычисление шума в четырёхмерном пространстве на входе Vector и на входе W как четвёртое измерение.

Примечание

Чем больше измерений, тем больше времени рендеринга, поэтому следует использовать меньше измерений, если только они не требуются для вашей задумки.

Тип (type)

Тип текстуры шума с различными способами комбинирования октав.

fBM:

Фрактальное броуновское движение, даёт однородный и изотропный результат. Значения из октав складываются.

Мультифрактал (multifractal):

Результат более неравномерный, варьируется в зависимости от местоположения, аналогично реальному рельефу. Значения из октав перемножаются.

Гибридный мультифрактал (hybrid multifractal):

Создаёт вершины и долины с различными значениями шероховатости, как будто настоящие горы поднимаются из плоских равнин. Объединяет аддитивный каскад с мультипликативным каскадом.

Хребтообразный мультафрактал (ridged multifractal):

Создаёт острые пики. Вычисляет абсолютное значение шума, создавая «каньоны», а затем переворачивает поверхность вверх дном.

Гетероповерхность (hetero terrain):

Подобно Hybrid Multifractal создаёт неоднородный рельеф, но с подобием русел реки.

Нормализовать (normalize) fBM

Если включено, гарантирует, что выходные значения останутся в диапазоне от 0.0 до 1.0. Если отключено, диапазон не более: -(Детальность + 1) до Детальность + 1 (меньше, если Шероховатость < 1).

Выходы (outputs)#

Коэффициент (factor)

Значение фрактального шума.

Цвет (color)

Цвет с различным фрактальным шумом в каждом компоненте.

Примеры#

../../../_images/render_shader-nodes_textures_noise_example.jpg

Текстура шума с высокой детализацией.#

Различные типы шума с одинаковыми параметрами.#
../../../_images/render_shader-nodes_textures_musgrave_example-type-fbm.jpg

fBM.#

../../../_images/render_shader-nodes_textures_musgrave_example-type-multifractal.jpg

Мультифрактал.#

../../../_images/render_shader-nodes_textures_musgrave_example-type-hybrid.jpg

Гибридный мультифрактал.#

../../../_images/render_shader-nodes_textures_musgrave_example-type-terrain.jpg

Гетероповерхность.#

../../../_images/render_shader-nodes_textures_musgrave_example-type-ridged.jpg

Хребтообразный мультафрактал.#

Примечания#

Хотя шум носит случайный характер, он следует определённому шаблону, который в некоторых конфигурациях может не вычисляться как случайный. Например, рассмотрим следующую конфигурацию, в которой сеть из объектов имеет материал, вычисляющий текстуру шума в своих местоположениях. Можно было бы ожидать, что объекты будут иметь случайные значения, поскольку они находятся в разных местах, но это не так.

../../../_images/render_shader-nodes_textures_noise_issue-constant-value.png

Пример конфигурации, в которой шум вычисляется как постоянное значение.#

Кажется, все объекты имеют значение 0.5. Чтобы понять, почему это происходит, давайте посмотрим на следующий график одномерной текстуры шума.

../../../_images/render_shader-nodes_textures_noise_1d-noise-plot.png

График одномерного шума с нулевой детализацией и нулевым искажением.#

Горизонтальная линия обозначает значение 0.5, а вертикальные линии обозначают целые числа, предполагая масштаб шума равным 1. Как видно, шум всегда пересекает линию 0.5 при целых числах. Поскольку вышеупомянутые объекты были распределены по сетке и имеют целочисленные местоположения, все они вычисляются как 0.5, что объясняет рассматриваемую проблему.

Как правило, любое дискретное вычисление шума при целочисленном кратном значении, обратном масштабу шума, всегда будет вычисляться как 0.5. Отсюда также следует, что более близкие к этому вычислению будут иметь значения, близкие к 0.5. В таких случаях почти всегда предпочтительнее использовать White Noise Texture.

Тем не менее, можно смягчить эту проблему несколькими способами:

  • Настроить масштаб шума, чтобы избежать выравнивания шума с областью вычисления.

  • Добавить произвольное смещение к координатам текстуры, чтобы нарушить выравнивание с областью вычисления.

  • Вычислять шум в более высоком измерении и настраивать дополнительное измерение, пока не будет достигнут удовлетворительный результат.

../../../_images/render_shader-nodes_textures_noise_issue-constant-value.png

Проблема с постоянным значением.#

../../../_images/render_shader-nodes_textures_noise_solution1-constant-value.png

Смягчение проблемы путём настройки масштаба.#

../../../_images/render_shader-nodes_textures_noise_solution2-constant-value.png

Смягчение проблемы путём добавления произвольного смещения.#

../../../_images/render_shader-nodes_textures_noise_solution3-constant-value.png

Смягчение проблемы путём вычисления в более высоком измерении.#

Аналогично, в других конфигурациях можно наблюдать некоторые полосатые узоры в шуме, где есть полосы областей с высоким контрастом, за которыми следуют полосы областей с низким контрастом. Например, плоские поверхности, которые слегка наклонены вдоль одной из осей, будут иметь такой полосатый узор.

../../../_images/render_shader-nodes_textures_noise_issue-banding.png

Пример конфигурации, в которой шум имеет полосатую структуру.#

Это происходит из-за того, что небольшой наклон вдоль одной из осей приводит к тому, что значения вдоль перпендикулярной оси меняются очень медленно, что делает сетчатую структуру шума более заметной. Самый простой способ решить эту проблему – повернуть координаты на произвольную величину.

../../../_images/render_shader-nodes_textures_noise_solution-banding.png

Смягчение проблемы путём поворота координат на произвольную величину.#