Commit Graph

234 Commits

Author SHA1 Message Date
Matthew Gordon 5bd23d56bb Update itertools to fix compilation error 2025-09-02 11:19:59 -03:00
Matthew Gordon 4202cc8f2e Code reformatting 2025-03-29 15:39:59 -03:00
Matthew Gordon 6e3a5dd1d8 Replace Aggregate with Primitive and stub Primitive::transform()
All the implemntations of transform are just todo!()
2025-03-29 15:39:02 -03:00
Matthew Gordon fa713fc72d Add Affine3 struct 2025-03-29 15:37:06 -03:00
Matthew Gordon 84ad551026 Add sin and cos to Float 2025-03-29 15:36:29 -03:00
Matthew Gordon 44bc147421 Add missing Copy marker to Vec4 2025-03-29 15:26:13 -03:00
Matthew Gordon 908da3d995 Add Vec4::xyz() 2025-03-29 15:13:40 -03:00
Matthew Gordon 80b2d87d22 Minor changes suggested by clippy 2025-03-28 22:14:10 -03:00
Matthew Gordon 8c458d073e Fix unit test in camera 2025-03-28 22:14:10 -03:00
Matthew Gordon e8f9040807 Make vector and matrix classes parameterized by float type 2025-03-28 22:14:03 -03:00
Matthew Gordon 7172bab68f Fix benchmark
Benchmark code had become out-of-sync with main code and wasn't compiling.
2025-03-21 21:12:59 -03:00
Matthew Gordon d43cf2feeb Fix typo in test 2025-03-21 20:59:35 -03:00
Matthew Gordon 406f347971 Fix floating-point precision issue in accumulation_buffer
Fixed an issue that prevented the image from converging.

(Technically, the convergence was happening and the issue was the final
calculation of the displayed colours, but the visual effect was the same as
failure to converge.)
2025-03-21 20:52:23 -03:00
Matthew Gordon 07651817dc Implement divide-by-scalar for Vec3 2025-03-21 20:51:50 -03:00
Matthew Gordon c1a79e7893 Update example run command in readme 2024-02-13 13:21:22 -04:00
Matthew Gordon 1f2924939f Remove sun from test lighting environment
Because multiple importance sampling is not implemented yet,
convergence is quite slow and the single bright light source
of the sun causes the image to be extremely noisy.
2022-04-26 21:09:32 -04:00
Matthew Gordon fb744258b2 Numerous small changes suggested by clippy 2021-10-08 09:23:16 -04:00
Matthew Gordon 6a1fe84af7 Add random_distributions::SkyLightPdf 2021-10-08 08:37:29 -04:00
Matthew Gordon ed224b18cb Add random_distributions::LinearWeighted 2021-10-07 11:23:46 -04:00
Matthew Gordon 1f84cde760 Make default material sampling cosine-weighted instead of uniform 2021-10-05 09:13:08 -04:00
Matthew Gordon b0c704f79a Add random_distributions::CosineWeightedHemisphere 2021-10-05 08:33:52 -04:00
Matthew Gordon 8459f3110f Add PDF to RandomDistribution 2021-10-04 09:01:58 -04:00
Matthew Gordon 8badbaa3ca Add UniformHemisphere random distribution 2021-10-04 08:14:16 -04:00
Matthew Gordon 41cc032bed Ignore some tests in random_distributions 2021-10-04 07:40:32 -04:00
Matthew Gordon 9ec3525b15 Add random_distributions::UnitDisc 2021-10-03 11:01:34 -04:00
Matthew Gordon eee0da42c3 Add missing constructor for random_distributions::UniformSquare 2021-10-03 11:00:14 -04:00
Matthew Gordon fac841295e Add UniformSquare random distribution 2021-10-03 09:59:06 -04:00
Matthew Gordon c83416682e Factor integrators into submodules 2021-10-02 16:37:16 -04:00
Matthew Gordon ab7cf9ed72 Replace usage of depricated external_doc 2021-10-02 11:21:22 -04:00
Matthew Gordon 4286af7f25 Update README.md 2020-09-14 19:57:24 -04:00
Matthew Gordon 45cf4fa487 Implement importance sampling for materials 2020-09-12 11:53:01 -04:00
Matthew Gordon 7c82605d98 Add SmoothTransparentDialectric material 2020-09-12 10:01:33 -04:00
Matthew Gordon db2d1806a3 Fix generate_dodecahedron() to match recent BVH changes 2020-09-12 09:59:52 -04:00
Matthew Gordon d4cbcfcb59 impl Mul<&Vec3> for f64 2020-09-12 09:49:22 -04:00
Matthew Gordon 65dd9b5095 Add integrators::test_liggting_environment()
Should have been included in an earlier commit.
2020-09-12 09:47:17 -04:00
Matthew Gordon 87f62eedb0 Add photon parameter to Material::sample(), other changes to integrate() 2020-09-12 09:45:21 -04:00
Matthew Gordon 438d8c64ee Add Spectrum::diamond_index_of_refraction() constructor 2020-09-12 09:36:10 -04:00
Matthew Gordon 56d3991e7d Add Spectrum::grey() constructor 2020-09-12 09:35:37 -04:00
Matthew Gordon a0db18d383 Add ColourXyz to sRGB conversion 2020-09-09 22:45:05 -04:00
Matthew Gordon a5f77e61b3 Add antialiasing 2020-09-09 20:51:30 -04:00
Matthew Gordon 773ca99ac1 Very inefficient first-pass at global illumination 2020-09-09 20:39:32 -04:00
Matthew Gordon 2f1285c526 Add Spectrum::reflection_from_linear_rgb() 2020-09-07 22:48:57 -04:00
Matthew Gordon 2494a30aef Cast rays for single light wavelengths instead of RGB values
Colours are wrong because Spectrum class isn't implemented.

Also there's a lot of other cleanup that needs to be done.
2020-09-05 22:45:43 -04:00
Matthew Gordon 8defc781b1 Finished implementing AccumulationBuffer 2020-09-04 22:04:17 -04:00
Matthew Gordon e0d3354a77 Add ColourXyz::from_photon() 2020-09-04 22:01:40 -04:00
Matthew Gordon 425f093756 derive(Clone) for Array2D 2020-09-04 22:01:14 -04:00
Matthew Gordon 93e76fc5ea derive(Clone,Default,Debug) for Photon 2020-09-04 22:00:39 -04:00
Matthew Gordon bc69ca04a8 derive(PartialEq) for ColourXyz 2020-09-04 21:59:34 -04:00
Matthew Gordon 84fbc1fef5 Add ColourXyz struct and a number of usefull functions 2020-09-02 23:22:24 -04:00
Matthew Gordon c6acac0567 Add Photon type 2020-09-02 23:21:53 -04:00