From 8730659596dbfdb9625c0fc413625b261f7d6d70 Mon Sep 17 00:00:00 2001 From: Martin Lehoux Date: Sat, 4 Apr 2020 19:55:48 -0700 Subject: feat - Add Metal material --- material.go | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'material.go') diff --git a/material.go b/material.go index db1e4d6..a36fb52 100644 --- a/material.go +++ b/material.go @@ -14,3 +14,14 @@ func (lambertian Lambertian) Scatter(ray Ray, hit HitRecord) (Ray, Color) { scattered := Ray{hit.point, direction} return scattered, lambertian.albedo } + +type Metal struct { + albedo Color + fuzz float64 +} + +func (metal Metal) Scatter(ray Ray, hit HitRecord) (Ray, Color) { + reflected := AddVec3D(ray.direction.Unit().Reflect(hit.normal), ScalarProduct(metal.fuzz, RandomInUnitSphere())) + scattered := Ray{hit.point, reflected} + return scattered, metal.albedo +} -- cgit v1.3