Bruno BELANYI
eca5ec5c26
library: render: scene: deserialize w/ indirection
2020-03-18 18:20:20 +01:00
Bruno BELANYI
be4da14313
library: render: object: allow use in BVH
2020-03-18 18:18:03 +01:00
Bruno BELANYI
09af312b86
examples: add colorful scene
...
This scene shows-off how to declare every type of lights, and results in
a pretty and colorful scene.
2020-03-18 18:06:13 +01:00
Bruno BELANYI
f9c86639ce
library: core: film: fix x/y ratio mix-up
...
The X axis is the left-right axis. The Y axis is the up-down axis.
2020-03-18 18:06:13 +01:00
Bruno BELANYI
f066ea7125
executable: add scene parsing and rendering
2020-03-18 16:32:55 +01:00
Bruno BELANYI
e383b77f68
project: add structopt dependency
2020-03-18 16:32:22 +01:00
Bruno BELANYI
a8d23782a4
library: render: scene: add deserialization
2020-03-18 15:53:33 +01:00
Bruno BELANYI
c8ca438091
library: core: scene: derive Debug and PartialEq
2020-03-18 15:53:25 +01:00
Bruno BELANYI
bfa9aa22dc
examples: add example YAML scene
2020-03-18 15:52:41 +01:00
Bruno BELANYI
67628ec083
library: render: object: add deserialization
...
By using `enum_dispatch` and deserializing the enums, you can very
easily represent the `Object` in serialized form.
2020-03-18 15:52:41 +01:00
Bruno BELANYI
02874c9c22
library: texture: enum: add deserialization
2020-03-18 15:42:37 +01:00
Bruno BELANYI
3f1a166edf
library: shape: enum: add deserialization
2020-03-18 15:42:25 +01:00
Bruno BELANYI
6aa5f2536c
library: material: enum: add deserialization
2020-03-18 15:42:18 +01:00
Bruno BELANYI
05fb6601b2
library: use enum_dispatch on Object related trait
...
This allows for easier testing (notable allowing for comparisons),
better performance (thanks to inlining instead of vtable indirection),
and should ease the deserialization of `Material`, `Shape`, and
`Texture` traits. This should allow `Object` to be deserialized easily.
2020-03-18 15:24:09 +01:00
Bruno BELANYI
3ba17fac49
project: replace typetag by enum_dispatch
2020-03-18 15:23:58 +01:00
Bruno BELANYI
4112a933ed
library: render: light_aggregate: add deserialization
2020-03-18 14:52:50 +01:00
Bruno BELANYI
ccc9eaf423
library: shape: triangle: add deserialization
2020-03-18 14:46:30 +01:00
Bruno BELANYI
8060262ce0
library: shape: sphere: add deserialization
2020-03-18 14:46:22 +01:00
Bruno BELANYI
eff133abf3
library: texture: uniform: add deserialization
2020-03-18 14:38:26 +01:00
Bruno BELANYI
803b34641d
library: material: uniform: add deserialization
2020-03-18 14:38:17 +01:00
Bruno BELANYI
7ce201ecc2
library: light: spot: add deserialization
2020-03-18 14:38:01 +01:00
Bruno BELANYI
3ef827cabf
library: light: spot: fix constructors
...
The vector was not normalized on input in the SpotLight constructor...
2020-03-18 14:37:16 +01:00
Bruno BELANYI
ebe00365d1
library: light: point: add deserialization
2020-03-18 14:36:28 +01:00
Bruno BELANYI
42abfed3fa
library: light: directional: add deserialization
2020-03-18 14:35:53 +01:00
Bruno BELANYI
85f274a0b1
library: light: ambient: add deserialization
2020-03-18 14:35:19 +01:00
Bruno BELANYI
9dcce9218f
library: material: uniform: fix float comparison
2020-03-18 14:34:37 +01:00
Bruno BELANYI
76db818fa8
library: serialize: add vector_normalizer helper
2020-03-18 14:31:33 +01:00
Bruno BELANYI
a90d4d9405
library: add serialize module
2020-03-18 14:31:17 +01:00
Bruno BELANYI
076118edaa
library: core: camera: add deserialization
2020-03-18 13:03:12 +01:00
Bruno BELANYI
0644d453b8
library: core: color: add deserialization
2020-03-18 13:03:02 +01:00
Bruno BELANYI
22b109212c
project: add deserialization feature of nalgebra
2020-03-18 11:51:59 +01:00
Bruno BELANYI
c16db361ea
project: add typetag dependency
2020-03-18 11:47:07 +01:00
Bruno BELANYI
0f87626b66
project: add serde_yaml dependency
2020-03-18 11:46:56 +01:00
Bruno BELANYI
b59c6ee50d
project: add Serde dependency
2020-03-18 11:46:03 +01:00
Bruno BELANYI
670b076ec6
library: render: object: remove unused annotation
2020-03-18 00:19:42 +01:00
Bruno BELANYI
3386617c69
library: render: scene: add reflection
...
This required changing the place were the normal, the texel projection,
and the reflection were calculated to avoid possibly expensive lookups.
I also changed the style a bit to make it more readable.
2020-03-18 00:17:03 +01:00
Bruno BELANYI
d8f5f880ec
library: material: add reflectivity
...
This necessitates adding it to the trait, and its implementations.
2020-03-18 00:08:23 +01:00
Bruno BELANYI
6a829a96fd
library: render: add Scene implementation
2020-03-18 00:08:23 +01:00
Bruno BELANYI
c53d50f165
project: add rand dependency
2020-03-17 23:42:32 +01:00
Bruno BELANYI
58f9a508dc
library: core: color: add image::Rgbconversion
2020-03-17 23:28:24 +01:00
Bruno BELANYI
e9eaabcd0a
library: core: color: add derive Sum
2020-03-17 23:27:57 +01:00
Bruno BELANYI
cbcc5ff03e
project: add image dependency
2020-03-17 23:25:41 +01:00
Bruno BELANYI
7dc622b9e7
library: core: film: add width/height methods
2020-03-17 23:25:29 +01:00
Bruno BELANYI
4c7085ab16
library: core: film: use float for pixel_ratio
2020-03-17 23:24:48 +01:00
Bruno BELANYI
197e8104e0
library: render: light_aggregate: add *_iter
...
You can iterate over the two types of lights in the aggregate: the ones
implementing `SpatialLight`, and the ones that are only `Light`.
2020-03-17 22:47:30 +01:00
Bruno BELANYI
d6f5f29a2a
library: render: rename LightAggregate fields
2020-03-17 22:46:25 +01:00
Bruno BELANYI
852cd65c6a
library: render: add LightAggregate implementation
2020-03-17 20:49:49 +01:00
Bruno BELANYI
7112873715
library: replace super::super
by crate
import
...
Done with the following shell command:
`sed -e 's/super::super/crate/' -i $(git grep -l super::super)`.
Followed by a `cargo fmt --all`.
2020-03-17 20:49:30 +01:00
Bruno BELANYI
4f3af74c22
library: render: add Object implementation
2020-03-17 20:44:47 +01:00
Bruno BELANYI
2dab475f68
library: add render module
2020-03-17 19:30:01 +01:00