diff options
| author | Martin Lehoux <martin@lehoux.net> | 2020-04-05 23:34:05 -0700 |
|---|---|---|
| committer | Martin Lehoux <martin@lehoux.net> | 2020-04-05 23:34:05 -0700 |
| commit | 4c823f57959a5d821a9f00d8e8c7f57c08ac2ded (patch) | |
| tree | 483ba7af5cbcd051cf9835e7cb4821e6d8cbd2f4 /main.go | |
| parent | 09126c915e0f410fddfee14239589fad250ea712 (diff) | |
feat - Camera VFOV
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 37 |
1 files changed, 21 insertions, 16 deletions
@@ -2,6 +2,7 @@ package main import ( + "math" "math/rand" "github.com/schollz/progressbar" @@ -26,24 +27,28 @@ const ( func main() { // Scene - lowerLeftCorner := Vec3D{-2.0, -1.0, -1.0} - origin := Vec3D{0.0, 0.0, 0.0} - horizontal := Vec3D{4.0, 0.0, 0.0} - vertical := Vec3D{0.0, 2.0, 0.0} - camera := Camera{lowerLeftCorner, origin, horizontal, vertical} + camera := NewCamera(90.0, float64(Width)/float64(Height)) - matRed := Lambertian{Color{0.7, 0.3, 0.3}} - matGreen := Lambertian{Color{0.8, 0.8, 0.0}} - metalGrey := Metal{Color{0.8, 0.8, 0.8}, 0.3} + r := math.Cos(math.Pi / 4) + blue := Lambertian{Color{0.0, 0.0, 1.0}} + red := Lambertian{Color{1.0, 0.0, 0.0}} + World := HitableList{ + Sphere{Vec3D{-r, 0.0, -1.0}, r, blue}, + Sphere{Vec3D{r, 0.0, -1.0}, r, red}, + } + + // matRed := Lambertian{Color{0.7, 0.3, 0.3}} + // matGreen := Lambertian{Color{0.8, 0.8, 0.0}} + // metalGrey := Metal{Color{0.8, 0.8, 0.8}, 0.3} // metalBrown := Metal{Color{0.8, 0.6, 0.2}, 1.0} - glass := Dielectric{1.5} + // glass := Dielectric{1.5} - WORLD := HitableList{ - Sphere{Vec3D{0.0, 0.0, -1.0}, 0.5, glass}, - Sphere{Vec3D{-1.0, 0.0, -1.0}, 0.5, metalGrey}, - Sphere{Vec3D{1.0, 0.0, -1.0}, 0.5, matRed}, - Sphere{Vec3D{0.0, -100.5, -1.0}, 100.0, matGreen}, - } + // World := HitableList{ + // Sphere{Vec3D{0.0, 0.0, -1.0}, 0.5, glass}, + // Sphere{Vec3D{-1.0, 0.0, -1.0}, 0.5, metalGrey}, + // Sphere{Vec3D{1.0, 0.0, -1.0}, 0.5, matRed}, + // Sphere{Vec3D{0.0, -100.5, -1.0}, 100.0, matGreen}, + // } // Program // start := AddVec3D(Origin, Vec3D{-1.0, 0.0, 0.0}) @@ -61,7 +66,7 @@ func main() { u := (float64(y) + rand.Float64()) / float64(Width) v := (float64(x) + rand.Float64()) / float64(Height) ray := camera.GetRay(u, v) - colorList[it] = RayColor(ray, WORLD, 0) + colorList[it] = RayColor(ray, World, 0) } color := ColorMeanSquare(colorList) frame[Height-1-x][y] = color.ToPixel() |
