From b69793bf6e8be54973cad1b18185a67dbf11bad1 Mon Sep 17 00:00:00 2001 From: "Dmitry V. Sokolov" Date: Sun, 20 Jan 2019 12:18:08 +0100 Subject: [PATCH] refractions --- out.jpg | Bin 41335 -> 47238 bytes tinyraytracer.cpp | 34 ++++++++++++++++++++++++++-------- 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/out.jpg b/out.jpg index 609e5c612b8cec6131efac21e5c456b9555f1202..1e85428fc82d88c43b7e64dee8a65650f041e135 100644 GIT binary patch literal 47238 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 ACjbBd literal 41335 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

(AX06=A#e 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 az`rf &spheres, Vec3f &hit, Vec3f &N, Material &material) { float spheres_dist = std::numeric_limits::max(); for (size_t i=0; i < spheres.size(); i++) { @@ -67,8 +81,11 @@ Vec3f cast_ray(const Vec3f &orig, const Vec3f &dir, const std::vector &s } Vec3f reflect_dir = reflect(dir, N).normalize(); + Vec3f refract_dir = refract(dir, N, material.refractive_index).normalize(); Vec3f reflect_orig = reflect_dir*N < 0 ? point - N*1e-3 : point + N*1e-3; // offset the original point to avoid occlusion by the object itself + Vec3f refract_orig = refract_dir*N < 0 ? point - N*1e-3 : point + N*1e-3; Vec3f reflect_color = cast_ray(reflect_orig, reflect_dir, spheres, lights, depth + 1); + Vec3f refract_color = cast_ray(refract_orig, refract_dir, spheres, lights, depth + 1); float diffuse_light_intensity = 0, specular_light_intensity = 0; for (size_t i=0; i &s diffuse_light_intensity += lights[i].intensity * std::max(0.f, light_dir*N); specular_light_intensity += powf(std::max(0.f, -reflect(-light_dir, N)*dir), material.specular_exponent)*lights[i].intensity; } - return material.diffuse_color * diffuse_light_intensity * material.albedo[0] + Vec3f(1., 1., 1.)*specular_light_intensity * material.albedo[1] + reflect_color*material.albedo[2]; + return material.diffuse_color * diffuse_light_intensity * material.albedo[0] + Vec3f(1., 1., 1.)*specular_light_intensity * material.albedo[1] + reflect_color*material.albedo[2] + refract_color*material.albedo[3]; } void render(const std::vector &spheres, const std::vector &lights) { @@ -118,13 +135,14 @@ void render(const std::vector &spheres, const std::vector &lights } int main() { - Material ivory(Vec3f(0.6, 0.3, 0.1), Vec3f(0.4, 0.4, 0.3), 50.); - Material red_rubber(Vec3f(0.9, 0.1, 0.0), Vec3f(0.3, 0.1, 0.1), 10.); - Material mirror(Vec3f(0.0, 10.0, 0.8), Vec3f(1.0, 1.0, 1.0), 1425.); + Material ivory(1.0, Vec4f(0.6, 0.3, 0.1, 0.0), Vec3f(0.4, 0.4, 0.3), 50.); + Material glass(1.5, Vec4f(0.0, 0.5, 0.1, 0.8), Vec3f(0.6, 0.7, 0.8), 125.); + Material red_rubber(1.0, Vec4f(0.9, 0.1, 0.0, 0.0), Vec3f(0.3, 0.1, 0.1), 10.); + Material mirror(1.0, Vec4f(0.0, 10.0, 0.8, 0.0), Vec3f(1.0, 1.0, 1.0), 1425.); std::vector spheres; spheres.push_back(Sphere(Vec3f(-3, 0, -16), 2, ivory)); - spheres.push_back(Sphere(Vec3f(-1.0, -1.5, -12), 2, mirror)); + spheres.push_back(Sphere(Vec3f(-1.0, -1.5, -12), 2, glass)); spheres.push_back(Sphere(Vec3f( 1.5, -0.5, -18), 3, red_rubber)); spheres.push_back(Sphere(Vec3f( 7, 5, -18), 4, mirror));