25 lines
387 B
Go
25 lines
387 B
Go
package main
|
|
|
|
import (
|
|
"math"
|
|
"github.com/gen2brain/raylib-go/raylib"
|
|
)
|
|
|
|
func clamp01(v float32) float32 {
|
|
if v < 0 {
|
|
return 0
|
|
}
|
|
if v > 1 {
|
|
return 1
|
|
}
|
|
return v
|
|
}
|
|
|
|
func GrayCurve(v, k float32) rl.Color {
|
|
v = float32(math.Pow(float64(clamp01(v)), float64(k))) // k < 1 boosts highlights, k > 1 boosts shadows
|
|
c := uint8(v * 255)
|
|
return rl.Color{R: c, G: c, B: c, A: 255}
|
|
}
|
|
|
|
|