aboutsummaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'main.go')
-rw-r--r--main.go37
1 files changed, 21 insertions, 16 deletions
diff --git a/main.go b/main.go
index 7042d21..957fc92 100644
--- a/main.go
+++ b/main.go
@@ -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()