Узел Noise Texture (текстура шума)

Узел Noise Texture.

The Noise Texture node evaluates a fractal Perlin noise at the input texture coordinates. It can be used for a single Perlin noise evaluation, or for combining multiple octaves (layers) with increasingly finer detail.

Входы

The inputs are dynamic: they become available if needed depending on the node properties.

Vector

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

W

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

Масштаб (scale)

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

Detail (детальность)

Number of noise octaves. This can have a fractional part, in which case a blend is performed (e.g. a Detail of 2.5 results in a 50% blend between 2 and 3 octaves).

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

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

Lacunarity

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

Смещение (offset)

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

Gain (усиление)

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

Distortion (искажение)

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

Свойства

Размеры

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

1D:

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

2D:

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

3D:

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

4D:

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

Примечание

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

Тип

Type of Noise texture, with different ways to combine octaves.

fBM:

Fractal Brownian motion, produces a homogeneous and isotropic result. Values from octaves are added together.

Multifractal:

More uneven, varying by location similar to real terrain. Values from octaves are multiplied together.

Hybrid Multifractal:

Creates peaks and valleys with different roughness values, like real mountains rise out of flat plains. Combines octaves using both addition and multiplication.

Ridged Multifractal:

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

Hetero Terrain:

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

Normalize fBM

If enabled, ensures that the output values stay in the range 0.0 to 1.0. If disabled, the range is at most -(Detail + 1) to Detail + 1 (smaller if Roughness < 1).

Выходы

Фактор (factor)

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

Цвет (color)

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

Примеры

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

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

Different Noise types with the same parameters.
../../../_images/render_shader-nodes_textures_musgrave_example-type-fbm.jpg

fBM (фрактал Броуновского движения).

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

Multifractal.

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

Hybrid Multifractal.

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

Heterogeneous Terrain.

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

Ridged Multifractal.

Примечания

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

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

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

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

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

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

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

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

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

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

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

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

../../../_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

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