From 13be7ded788fe88d5ac8d6759273516652bf1a80 Mon Sep 17 00:00:00 2001 From: Martin Lehoux Date: Sat, 4 Apr 2020 19:41:57 -0700 Subject: feat - Add Lambertian material --- material.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 material.go (limited to 'material.go') diff --git a/material.go b/material.go new file mode 100644 index 0000000..db1e4d6 --- /dev/null +++ b/material.go @@ -0,0 +1,16 @@ +package main + +type Material interface { + Scatter(ray Ray, hit HitRecord) (Ray, Color) +} + +type Lambertian struct { + albedo Color +} + +func (lambertian Lambertian) Scatter(ray Ray, hit HitRecord) (Ray, Color) { + // TODO: Use the correct distribution + direction := AddVec3D(hit.normal, RandomInUnitSphere()) + scattered := Ray{hit.point, direction} + return scattered, lambertian.albedo +} -- cgit v1.3