diff --git a/field.go b/field.go index 06eb0e2..74a142e 100644 --- a/field.go +++ b/field.go @@ -124,9 +124,21 @@ func (fl *FieldLayer) IsDirty() bool { return fl.dirty } +type AdderField struct { + fields []Field +} + +func (f *AdderField) Get(x, y float32) float32 { + var z float32 = 0.0 + for _, field := range f.fields { + z += rl.Clamp(field.Get(x, y), 0.0, 1.0) / float32(len(f.fields)) + } + return z +} type SinXYField struct {} func (f *SinXYField) Get(x, y float32) float32 { - return float32(math.Sin(float64(x * y))) + return float32(0.5 + 0.5*math.Sin(float64(x))*math.Sin(float64(y))) + //return float32(math.Sin(float64(x * y))) } diff --git a/main.go b/main.go index 1953f5c..fe0193e 100644 --- a/main.go +++ b/main.go @@ -10,7 +10,7 @@ import ( "time" g "github.com/d2fn/sumi/internal/graphics" - //"github.com/ojrac/opensimplex-go" + "github.com/ojrac/opensimplex-go" gui "github.com/gen2brain/raylib-go/raygui" rl "github.com/gen2brain/raylib-go/raylib" @@ -58,7 +58,7 @@ func main() { rng := rand.New(rand.NewSource(0)) //imageField := NewImageField("/home/d/Dropbox/art/data/david.png") - //noiseField := &SimplexNoiseField { Noise: opensimplex.New32(0) } + noiseField := &SimplexNoiseField { Noise: opensimplex.New32(0) } sinXYField := &SinXYField { } //imageField := NewImageField("/home/d/Dropbox/art/data/ramstatue.png") //imageField := NewImageField("/home/d/Dropbox/art/data/bassrockastro/Photo Dec 24 2025, 5 58 23 PM.jpg") @@ -69,8 +69,13 @@ func main() { x: -float32(sourceWidth / 2.0), y: -float32(sourceHeight / 2.0), field: &ScaleField{ - scale: 500.0, - field: sinXYField, + scale: 100.0, + field: &AdderField { + fields: []Field { + sinXYField, + noiseField, + }, + }, }, }