1cd5d28767
Added another color temperature based way of specifying color.
...
This uses a normalized version of blackbody radiation, so the
colors still vary but the brightness doesn't vary nearly as
wildly as with genuine blackbody radiation.
2018-12-28 01:27:08 -08:00
53754b956c
Blackbody colors are now parsed, and PsychoBlend has support as well.
2018-12-28 00:23:02 -08:00
5add4cfdb1
Implementing Color as a simple enum rather than as a trait.
...
There's really no reason for it to be a Trait, and this will simplify
a lot of things down the road.
2018-12-27 16:09:03 -08:00
28a07de456
Improve module path usage and remove extern crate declarations where possible.
2018-12-16 13:02:49 -08:00
8deb1e87bb
First step transitioning to Rust 2018.
2018-12-16 12:02:20 -08:00
c73db2edbe
Fix/silence a bunch of clippy warnings in the main crate.
2018-12-15 23:26:12 -08:00
589a67caa4
Run latest rustfmt on code. No functional changes.
2018-12-08 13:23:44 -08:00
498c1ea8d9
Running latest rustfmt. No functional change.
2018-10-30 22:31:25 -07:00
6d21a30840
Formatting with newer cargo fmt
.
...
No meaningful code change, only formatting.
2018-06-24 21:18:10 -07:00
b2576c20e7
Upgraded to Nom 2.x
2018-03-04 22:06:20 -08:00
97d3304149
Run new rustfmt on codebase.
2018-03-04 13:00:55 -08:00
c0a26819c6
Bunch of code quality improvements based on running clippy.
...
None of them change behavior, just make the code cleaner.
2017-07-22 17:21:11 -07:00
f649bec585
Reformat code with rustfmt 0.9
2017-06-15 22:00:31 -07:00
b8321beaad
Split colorspace transform functions out into their own crate.
...
They are now generated by a build.rs script from nothing but the
colorspace's primaries, which makes it super easy to add more
colorspaces. So easy that I added three more: ACES AP0, ACES AP1
and Rec.2020.
This lays the foundation for supporting output to different
colorspaces.
2017-06-11 03:03:23 -07:00
922e33ec3f
Reformat code with latest rustfmt and custom config.
2017-05-14 13:43:51 -07:00
6623443e2e
Improved .psy file parsing error messages.
...
Biggest improvement: it gives you line numbers. But also progress
on better descriptions.
2017-04-10 14:03:01 -07:00
e9e202933f
Assembly type now partially uses MemArena.
2017-04-09 18:27:01 -07:00
fc15fa9192
World type uses memory arena now.
2017-04-09 17:56:06 -07:00
57aa9be496
First steps towards using the memory arena allocator.
...
Changed Camera to us the memory arena allocator, and worked out a
bunch of stuff through doing that.
2017-04-09 17:31:17 -07:00
f4445417dc
Reorganizing the module tree.
...
Enough things had accumulated that it seemed to make sense to
group some stuff together. So here it is.
2017-02-14 00:14:08 -08:00
3cbb816d4b
Added DistantDiskLight (a.k.a. sun light) parsing and data structures.
...
Also created a proper World struct in the process, to store all
infinite-extent type stuff.
Note that I goofed and did a new rustfmt pass but forgot to
commit before making these changes, so there's a lot of
formatting changes in this too. *sigh*
2017-02-12 20:29:08 -08:00
746b3b0c1f
Replaced try!() macros with new ? operator.
2017-02-06 16:20:58 -08:00
97b5ef77f8
Code cosmetics: organize and alphabetize crate/mod/use statements.
2016-08-20 18:10:55 -07:00
5bc97f69b8
Actually use the background color from the scene file.
2016-07-16 13:54:41 -07:00
c2eb421fd8
Actually use seed in renders.
...
This is important for animations, where you don't want the same
noise pattern every frame.
2016-07-10 17:56:42 -07:00
a681ba461e
Implemented basic multi-threaded rendering.
...
It's a bit inefficient because a thread is spawned for each pixel.
Need to implement bucketing.
2016-06-03 21:03:04 -07:00
039943e0cb
Auto-formatting code with new version of rustfmt.
2016-06-02 22:43:35 -07:00
1e93e53822
Mixed matrix parsing, and strip quotes from file path in parsing.
2016-05-28 01:24:58 -07:00
d8cdf4d189
Cleaned up DataTree API and finished Instance parsing.
2016-05-23 00:08:12 -07:00
f5dd8f7a14
Got the bare beginnings of scene file parsing and rendering working.
...
It still doesn't parse or render any actual objects in the scene,
so all renders are just black. But the basic structures are in
place. Yay!
2016-05-21 15:14:10 -07:00
e96798ab6b
Lazily committing a bunch of stuff.
...
Includes:
- More scene parsing code. Making good progress!
- Making the rendering code actually use the Scene and Assembly
types.
- Bare beginnings of a Tracer type.
2016-03-12 00:33:11 -08:00
38d33ed144
More work on scene parsing.
...
Using Nom to help with parsing the contents of leaf nodes.
2016-03-10 23:58:19 -08:00
6268a61770
Realized I already did most of the DataTree work in another file.
...
Weird, to be frank. It was a lot of work. Can't believe I don't
even remember doing it before. Oh well.
In any case, I've improved the 'old' one quite a bit. It should
be more robust now, and will provide errors that may actually be
useful to people when a file fails to parse.
2016-03-06 22:47:41 -08:00
907d15f643
Started creating an interface for surfaces.
...
Testing it out by making a bogus TriangleMesh surface type.
2016-01-03 00:09:23 -08:00
470618fa6a
Created a Renderer type to be in charge of rendering.
2016-01-02 22:34:36 -08:00