Gamma correction

This commit is contained in:
Luxdragon 2024-02-29 15:16:04 +01:00
parent 297085e741
commit 8b06725106
2 changed files with 90008 additions and 90000 deletions

180000
image.ppm

File diff suppressed because it is too large Load diff

View file

@ -147,6 +147,10 @@ func Degrees_to_radians(degrees float32) float32 {
return (degrees * pi) / 180.0
}
func Linear_to_gamma(linear_component float32) float32 {
return float32(math.Sqrt(float64(linear_component)))
}
func RandomDouble() float32 {
// Returns a random real in [0,1).
return rand.Float32()
@ -173,6 +177,10 @@ func Write_color(v Vec3, samples_per_pixel int) {
g := v.Y() / float32(samples_per_pixel)
b := v.Z() / float32(samples_per_pixel)
r = Linear_to_gamma(r)
g = Linear_to_gamma(g)
b = Linear_to_gamma(b)
// Write the translate [0, 255] value of each color component
intensity := NewInterval(0.000, 0.999)
fmt.Println(int(intensity.Clamp(r)* 256.0), int(intensity.Clamp(g)* 256.0), int(intensity.Clamp(b)* 256.0))