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
Matthew Gordon
699c308782
Rewrite BoundingVolumeHierarchy
...
New BVH has much cleaner design and is also using a much better
heuristic for dividing the scene.
Massive speedup (~28x!), presumable from having a heuristic that
actually works. This is still a simple heuristic (sort by
bounding box centres along largest dimension, and then divide into
equal halves) which can definitely be improved.
2020-08-11 23:59:03 -04:00