Commit Graph

218 Commits

Author SHA1 Message Date
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
Matthew Gordon 8b30ad581e Create colour module 2020-09-02 23:21:17 -04:00
Matthew Gordon 6870186bca WIP: Add AccumulationBuffer 2020-09-01 23:34:01 -04:00
Matthew Gordon eccb444721 Make ToneMapper generic over it's input type 2020-09-01 23:33:32 -04:00
Matthew Gordon 7c8baf57da Use Array2D as storage for ImageRgbF 2020-09-01 22:44:55 -04:00
Matthew Gordon ef0fb96f9d Use Array2D for storage in ImageRgbU8 2020-09-01 22:26:50 -04:00
Matthew Gordon 40d9bb0bb1 Add Array2D struct 2020-09-01 22:26:10 -04:00
Matthew Gordon 26fb50b39b Add partially-implemented Mat2 that should have been in last commit 2020-08-29 23:06:28 -04:00
Matthew Gordon 61d6f69d11 Implement various matrix operations and remove nalgebra 2020-08-29 23:02:23 -04:00
Matthew Gordon f5b0a35635 Replace nalgebra matrix and vector classes with own classes
Nalgebra only used to find matrix inverse now.
2020-08-28 23:08:44 -04:00
Matthew Gordon 99cf127c9f Change a bunch of generics that used with RealType to just use f64 2020-08-18 23:12:28 -04:00
Matthew Gordon a98c0c4bca Fix bug that shifted view one tile to the right 2020-08-18 22:05:14 -04:00
Matthew Gordon 5c2fbf995a Made some minor improvements suggested by clippy 2020-08-15 00:06:06 -04:00
Matthew Gordon 8be0c0a21b Add mat3 struct 2020-08-14 23:48:45 -04:00
Matthew Gordon 4f429ade85 Add Mat4 class 2020-08-14 23:30:54 -04:00
Matthew Gordon 8f0a7d0cfd Add Vec2, Vec3 and Vec4 structs 2020-08-14 22:41:36 -04:00
Matthew Gordon 9160251d10 Start adding custom matrix and vector types 2020-08-13 23:16:56 -04:00