Style fixes for open simplex noise demo

This commit is contained in:
Aaron Franke
2020-02-02 03:56:57 -05:00
parent abf9d68bf4
commit 729be3461d
2 changed files with 18 additions and 36 deletions

View File

@@ -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()

View File

@@ -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;
}
}