NoiseTexture3D

继承: Texture3D < Texture < Resource < RefCounted < Object

Noise 对象生成的噪声所填充的 3D 纹理。

描述

使用 FastNoiseLite 库或其他噪声生成器来填充指定尺寸的纹理数据。

本类通过内部 Thread 线程生成纹理数据,因此若生成过程尚未完成,调用 Texture3D.get_data() 可能返回 null。此时需要等待纹理生成完成后才能访问图像数据:

var texture = NoiseTexture3D.new()
texture.noise = FastNoiseLite.new()
await texture.changed
var data = texture.get_data()

属性


属性说明

Gradient color_ramp 🔗

Gradient,用于将每个像素的亮度映射到一个颜色值。


int depth = 64 🔗

  • void set_depth(value: int)

  • int get_depth()

生成的纹理的深度(单位为像素)。


int height = 64 🔗

  • void set_height(value: int)

  • int get_height()

生成的纹理的高度(单位为像素)。


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.01.0 范围内。

禁用归一化会改变图像对比度,但同时支持生成非重复的可平铺噪声纹理。


bool seamless = false 🔗

  • void set_seamless(value: bool)

  • bool get_seamless()

若设为 true,将从 Noise 资源请求生成无缝纹理。

注意:根据所使用的 Noise 资源不同,无缝噪声纹理的生成时间可能更长且对比度可能较低。这是因为部分实现会通过更高维度的计算来生成无缝噪声。

注意:默认的 FastNoiseLite 实现采用备用路径生成无缝纹理。若使用的 width (宽度)、height (高度)或 depth (深度)小于默认值,可能需要增大 seamless_blend_skirt (无缝混合边距)来提升无缝混合效果。


float seamless_blend_skirt = 0.1 🔗

  • void set_seamless_blend_skirt(value: float)

  • float get_seamless_blend_skirt()

该参数用于无缝纹理生成的默认/后备实现,控制接缝区域的混合过渡距离。设置过高会导致细节和对比度降低。详见 Noise 说明文档。

注意:若使用的 width (宽度)、height (高度)或 depth (深度)小于默认值,可能需要增加 seamless_blend_skirt (无缝混合边距)来优化无缝混合效果。


int width = 64 🔗

  • void set_width(value: int)

  • int get_width()

生成的纹理的宽度(单位为像素)。