diff options
| author | James Barnett <noreply@jamesbarnett.xyz> | 2022-01-04 21:44:49 +0000 |
|---|---|---|
| committer | James Barnett <noreply@jamesbarnett.xyz> | 2022-01-04 21:44:49 +0000 |
| commit | 16b0f20415efd3ed2c181df74a473ebd5265892b (patch) | |
| tree | 2d94216df0dca5b378f74b47515af5b910fc5ae7 /src/Geometry.ts | |
| parent | 496c63266d02bc9369e3406353b877a8ebbae60a (diff) | |
| download | js-raytracer-16b0f20415efd3ed2c181df74a473ebd5265892b.tar.xz js-raytracer-16b0f20415efd3ed2c181df74a473ebd5265892b.zip | |
Fix specular lighting. Update scene.
Diffstat (limited to 'src/Geometry.ts')
| -rw-r--r-- | src/Geometry.ts | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/Geometry.ts b/src/Geometry.ts index 41d6023..556c7ea 100644 --- a/src/Geometry.ts +++ b/src/Geometry.ts @@ -19,21 +19,30 @@ export class Sphere { } export class Plane { + @Type(() => Colour) + readonly checkerboardColour1: Colour; + @Type(() => Colour) + readonly checkerboardColour2: Colour; constructor( readonly yPos: number, readonly width: number, // How far the plane extends into x/-x from 0 readonly zStartPos: number, readonly zEndPos: number, - readonly checkerboardScale: number - ) {} + readonly checkerboardScale: number, + checkerboardColour1: Colour, + checkerboardColour2: Colour + ) { + this.checkerboardColour1 = checkerboardColour1; + this.checkerboardColour2 = checkerboardColour2; + } getMaterialAtPoint(x: number, z: number): Material { let colour: Colour; // prettier-ignore if ((Math.round(this.checkerboardScale * x) + Math.round(this.checkerboardScale * z)) & 1) { - colour = new Colour(15, 15, 15); + colour = this.checkerboardColour1; } else { - colour = new Colour(200, 200, 200); + colour = this.checkerboardColour2; } return new Material(colour, new Albedo(1, 0, 0, 0), 0, 1); } |