1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- extends Control
- # The OpenSimplexNoise object.
- var noise = OpenSimplexNoise.new()
- var noise_texture = NoiseTexture.new()
- # Various noise parameters.
- var min_noise = -1
- var max_noise = 1
- # Are we using a NoiseTexture instead?
- # Noise textures automatically grab and apply the noise data to an ImageTexture, instead of manually.
- const use_noise_texture = false
- # Called when the node enters the scene tree for the first time.
- func _ready():
- # Set up noise with basic info.
- $ParameterContainer/SeedSpinBox.value = noise.seed
- $ParameterContainer/LacunaritySpinBox.value = noise.lacunarity
- $ParameterContainer/OctavesSpinBox.value = noise.octaves
- $ParameterContainer/PeriodSpinBox.value = noise.period
- $ParameterContainer/PersistenceSpinBox.value = noise.persistence
- # Render the noise.
- _refresh_noise_images()
- # Do we need to set up a noise texture?
- if use_noise_texture:
- noise_texture.noise = noise
- $SeamlessNoiseTexture.texture = noise_texture
- func _refresh_noise_images():
- # Adjust min/max for shader.
- var _min = ((min_noise + 1)/2)
- var _max = ((max_noise + 1)/2)
- var _material = $SeamlessNoiseTexture.material
- _material.set_shader_param("min_value", _min)
- _material.set_shader_param("max_value", _max)
- # Are we using noise textures instead?
- if use_noise_texture:
- return
- # Get a new image if we aren't using a NoiseTexture.
- var image = noise.get_seamless_image(500)
- var image_texture = ImageTexture.new()
- # Draw it.
- image_texture.create_from_image(image)
- $SeamlessNoiseTexture.texture = image_texture
- func _on_DocumentationButton_pressed():
- #warning-ignore:return_value_discarded
- OS.shell_open("https://docs.godotengine.org/en/latest/classes/class_opensimplexnoise.html")
- func _on_SeedSpinBox_value_changed(value):
- noise.seed = value
- _refresh_noise_images()
- func _on_LacunaritySpinBox_value_changed(value):
- noise.lacunarity = value
- _refresh_noise_images()
- func _on_OctavesSpinBox_value_changed(value):
- noise.octaves = value
- _refresh_noise_images()
- func _on_PeriodSpinBox_value_changed(value):
- noise.period = value
- _refresh_noise_images()
- func _on_PersistenceSpinBox_value_changed(value):
- noise.persistence = value
- _refresh_noise_images()
- func _on_MinClipSpinBox_value_changed(value):
- min_noise = value
- _refresh_noise_images()
- func _on_MaxClipSpinBox_value_changed(value):
- max_noise = value
- _refresh_noise_images()
|