mirror of
https://github.com/godotengine/godot-demo-projects.git
synced 2026-01-04 15:00:09 +01:00
Style fixes for open simplex noise demo
This commit is contained in:
@@ -1,108 +1,91 @@
|
||||
extends Control
|
||||
|
||||
#The OpenSimplexNoise object
|
||||
# The OpenSimplexNoise object.
|
||||
var noise = OpenSimplexNoise.new()
|
||||
var noise_texture = NoiseTexture.new()
|
||||
|
||||
#Various noise parameters
|
||||
var noise_size = 500
|
||||
# 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
|
||||
# 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
|
||||
# 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
|
||||
# Render the noise.
|
||||
_refresh_noise_images()
|
||||
|
||||
#Do we need to set up a noise texture?
|
||||
# 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
|
||||
# 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?
|
||||
# Are we using noise textures instead?
|
||||
if use_noise_texture:
|
||||
return
|
||||
|
||||
#Get a new image if we aren't using a NoiseTexture
|
||||
# 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
|
||||
# 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):
|
||||
|
||||
#Update the noise seed
|
||||
noise.seed = value
|
||||
_refresh_noise_images()
|
||||
|
||||
|
||||
func _on_LacunaritySpinBox_value_changed(value):
|
||||
|
||||
#Update noise
|
||||
noise.lacunarity = value
|
||||
_refresh_noise_images()
|
||||
|
||||
|
||||
func _on_OctavesSpinBox_value_changed(value):
|
||||
|
||||
#Update noise
|
||||
noise.octaves = value
|
||||
_refresh_noise_images()
|
||||
|
||||
|
||||
func _on_PeriodSpinBox_value_changed(value):
|
||||
|
||||
#Update noise
|
||||
noise.period = value
|
||||
_refresh_noise_images()
|
||||
|
||||
|
||||
func _on_PersistenceSpinBox_value_changed(value):
|
||||
|
||||
#Update noise
|
||||
noise.persistence = value
|
||||
_refresh_noise_images()
|
||||
|
||||
|
||||
func _on_MinClipSpinBox_value_changed(value):
|
||||
|
||||
#Just refresh
|
||||
min_noise = value
|
||||
_refresh_noise_images()
|
||||
|
||||
|
||||
func _on_MaxClipSpinBox_value_changed(value):
|
||||
|
||||
#Just refresh
|
||||
max_noise = value
|
||||
_refresh_noise_images()
|
||||
|
||||
|
||||
@@ -4,18 +4,17 @@ uniform float min_value = -1;
|
||||
uniform float max_value = 1;
|
||||
|
||||
void fragment() {
|
||||
|
||||
//Get the color
|
||||
// Get the color.
|
||||
vec4 color = texture(TEXTURE, UV);
|
||||
|
||||
//Compare the value
|
||||
// Compare the value.
|
||||
float gray = color.x;
|
||||
if (gray < min_value){
|
||||
if (gray < min_value) {
|
||||
color = vec4(0, 0, 0, 1);
|
||||
}else if (gray > max_value) {
|
||||
} else if (gray > max_value) {
|
||||
color = vec4(1, 1, 1, 1);
|
||||
}
|
||||
|
||||
//Write back the color
|
||||
// Write back the color.
|
||||
COLOR = color;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user