NoiseTexture2D

Наследует: Texture2D < Texture < Resource < RefCounted < Object

2D-текстура, заполненная шумом, созданным объектом Noise.

Описание

Использует библиотеку FastNoiseLite или другие генераторы шума для заполнения данных текстуры нужного вам размера. NoiseTexture2D также может генерировать текстуры карты нормалей.

Класс использует Thread для внутренней генерации данных текстуры, поэтому Texture2D.get_image() может возвращать null, если процесс генерации еще не завершен. В этом случае вам нужно дождаться генерации текстуры, прежде чем обращаться к изображению и сгенерированным байтовым данным:

var texture = NoiseTexture2D.new()
texture.noise = FastNoiseLite.new()
await texture.changed
var image = texture.get_image()
var data = image.get_data()

Свойства

bool

as_normal_map

false

float

bump_strength

8.0

Gradient

color_ramp

bool

generate_mipmaps

true

int

height

512

bool

in_3d_space

false

bool

invert

false

Noise

noise

bool

normalize

true

bool

resource_local_to_scene

false (overrides Resource)

bool

seamless

false

float

seamless_blend_skirt

0.1

int

width

512


Описания свойств

bool as_normal_map = false 🔗

  • void set_as_normal_map(value: bool)

  • bool is_normal_map()

Если true, результирующая текстура содержит карту нормалей, созданную из исходного шума, интерпретируемого как карта рельефа.


float bump_strength = 8.0 🔗

  • void set_bump_strength(value: float)

  • float get_bump_strength()

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


Gradient color_ramp 🔗

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


bool generate_mipmaps = true 🔗

  • void set_generate_mipmaps(value: bool)

  • bool is_generating_mipmaps()

Определяет, генерируются ли mip-карты для этой текстуры. Включение этого параметра приводит к уменьшению сглаживания текстур на расстоянии, за счет увеличения использования памяти примерно на 33% и увеличения времени генерации текстуры шума.

Примечание: generate_mipmaps требует включения фильтрации mip-карт на материале с использованием NoiseTexture2D, чтобы иметь эффект.


int height = 512 🔗

  • void set_height(value: int)

  • int get_height()

Высота сгенерированной текстуры (в пикселях).


bool in_3d_space = false 🔗

  • void set_in_3d_space(value: bool)

  • bool is_in_3d_space()

Определяет, вычисляется ли шумовое изображение в трехмерном пространстве. Может привести к снижению контрастности.


bool invert = false 🔗

  • void set_invert(value: bool)

  • bool get_invert()

Если true, инвертирует текстуру шума. Белый становится черным, черный становится белым.


Noise noise 🔗

Экземпляр объекта Noise.


bool normalize = true 🔗

  • void set_normalize(value: bool)

  • bool is_normalized()

Если true, шумовое изображение, поступающее от генератора шума, нормализуется в диапазоне от 0.0 до 1.0.

Отключение нормализации может повлиять на контрастность и позволит создавать неповторяющиеся мозаичные текстуры шума.


bool seamless = false 🔗

  • void set_seamless(value: bool)

  • bool get_seamless()

Если true, бесшовная текстура запрашивается из ресурса Noise.

Примечание: Бесшовные текстуры шума могут генерироваться дольше и/или иметь меньшую контрастность по сравнению с небесшовным шумом в зависимости от используемого ресурса Noise. Это связано с тем, что некоторые реализации используют более высокие измерения для создания бесшовного шума.

Примечание: Реализация FastNoiseLite по умолчанию использует резервный путь для бесшовной генерации. Если использовать width или height ниже, чем по умолчанию, вам может потребоваться увеличить seamless_blend_skirt, чтобы сделать бесшовное смешивание более эффективным.


float seamless_blend_skirt = 0.1 🔗

  • void set_seamless_blend_skirt(value: float)

  • float get_seamless_blend_skirt()

Используется для реализации по умолчанию/резервного варианта создания бесшовной текстуры. Определяет расстояние, на котором смешиваются швы. Высокие значения могут привести к снижению детализации и контрастности. Дополнительные сведения см. в разделе Noise.

Примечание: Если вы используете width или height ниже, чем по умолчанию, вам может потребоваться увеличить seamless_blend_skirt, чтобы сделать бесшовное смешивание более эффективным.


int width = 512 🔗

  • void set_width(value: int)

  • int get_width()

Ширина сгенерированной текстуры (в пикселях).