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/Raytracer.ts | |
| parent | 496c63266d02bc9369e3406353b877a8ebbae60a (diff) | |
| download | js-raytracer-16b0f20415efd3ed2c181df74a473ebd5265892b.tar.xz js-raytracer-16b0f20415efd3ed2c181df74a473ebd5265892b.zip | |
Fix specular lighting. Update scene.
Diffstat (limited to 'src/Raytracer.ts')
| -rw-r--r-- | src/Raytracer.ts | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/src/Raytracer.ts b/src/Raytracer.ts index 895073c..34cbe00 100644 --- a/src/Raytracer.ts +++ b/src/Raytracer.ts @@ -53,7 +53,7 @@ class Raytracer { for (let x = 0; x < this.context.width; x++) { const rayX = x + 0.5 - this.context.width / 2; - const rayY = -(y + 0.5) + this.context.height / 2; + const rayY = -(y + 100) + this.context.height / 2; const rayZ = -this.context.height / (2 * Math.tan(this.context.fov / 2)); const rayDirection = new Vector(rayX, rayY, rayZ).normalise(); @@ -91,10 +91,7 @@ class Raytracer { recursionDepth > this.context.options.maxRecurseDepth || !result.geometryHit ) { - // No hit, show background colour - // return new Colour(50, 178, 203); - // return new Colour(150, 150, 150); - return new Colour(0, 128, 128); + return this.context.backgroundColour; } let reflectionColour = new Colour(0, 0, 0); @@ -218,7 +215,9 @@ class Raytracer { } }); - let rgbVector = result.material.diffuseColour.toVector(); + let rgbVector = result.material.diffuseColour + .toVector() + .multiply(result.material.albedo.diffuseAlbedo); if (this.context.options.diffuseLighting) { rgbVector = rgbVector.multiply(diffuseLightIntensity); @@ -229,9 +228,7 @@ class Raytracer { .multiply(specularLightIntensity) .multiply(result.material.albedo.specularAlbedo); - rgbVector = rgbVector - .multiply(result.material.albedo.diffuseAlbedo) - .add(totalSpecularIntensity); + rgbVector = rgbVector.add(totalSpecularIntensity); } if (this.context.options.reflections) { |