Commit graph

207 commits

Author SHA1 Message Date
Antoine Martin 00dae425d9 library: render: write passes in steps 2020-04-08 18:05:11 +02:00
Antoine Martin be1f400b34 library: render: pathtracer: sequential passes 2020-04-08 17:54:45 +02:00
Bruno BELANYI 2fe65e9bc6 examples: cornell-box: change FOV and positions
To make sure we see the entirety of the box, with a point-of-view which
is similar to the pictures that can be found online, the box has to be
farther away.

I also re-centered the point-light to have it beneath the lamp in the
middle of the ceiling.
2020-04-08 01:22:34 +02:00
Antoine Martin 9596bb3d00 library: render: pathtracer: simple progress 2020-04-07 23:54:28 +02:00
Antoine Martin 82dee9fde5 library: render: progress: fix refresh for pathtracing 2020-04-07 23:54:28 +02:00
Antoine Martin b89e01107d library: unnest scene module to please clippy
warning: module has the same name as its containing module
  --> pathtracer/src/scene/mod.rs:12:1
   |
12 | pub mod scene;
   | ^^^^^^^^^^^^^^
   |
   = note: `#[warn(clippy::module_inception)]` on by default
2020-04-07 23:01:56 +02:00
Antoine Martin f7780cb54e rustfmt: bump to latest version to please CI 2020-04-07 22:56:00 +02:00
Antoine Martin 3f2c7b40e8 library: render: pathtracer: draft parallelize 2020-04-07 22:53:21 +02:00
Antoine Martin c0c34fba7d library: scene: mesh: use unknown_param for Ke
tobj actually has an `unknown_param` map with everything that's not in
the official MTL spec, so let's use that instead of forking tobj
2020-04-07 22:53:21 +02:00
Antoine Martin 0c289ca482 library: scene: mesh: parse emitted light from MTL 2020-04-07 17:31:19 +02:00
Bruno BELANYI a10fd07f43 library: render: pathtracer: basic pathtracing 2020-04-06 15:40:34 +02:00
Bruno BELANYI ddebd55fcd library: render: utils: use Unit for vectors 2020-04-06 15:25:39 +02:00
Bruno BELANYI c1801a7a78 library: render: pathtracer: use map_or_else 2020-04-06 15:07:43 +02:00
Bruno BELANYI 482e6bea3f library: render: add basics for Pathtracer
This is simple ray-tracing, with a binary white-or-black color depending
on whether we hit an object or not.
2020-04-06 14:58:07 +02:00
Bruno BELANYI 6066fe00dc library: render: move progressbar creation to module 2020-04-02 00:13:43 +02:00
Bruno BELANYI 70a923cf26 library: render: move raytracer to own directory 2020-04-02 00:06:33 +02:00
Bruno BELANYI 4bb20e2f30 executable: add bidirectional renderer option 2020-04-02 00:03:43 +02:00
Bruno BELANYI c0fc885159 library: render: add #[allow(unused)] attributes 2020-04-02 00:02:11 +02:00
Bruno BELANYI fc2de38b1a library: render: split bidirectional pathtracer 2020-04-01 23:58:27 +02:00
Bruno BELANYI 96995e7ef1 library: core: light_properties: add emitted light 2020-04-01 23:43:01 +02:00
Bruno BELANYI 7eefd7b574 WIP: library: render: pathtracer: add build_path 2020-03-31 12:09:28 +02:00
Bruno BELANYI 6d0de72e57 WIP: library: render: pathtrace: add Path struct 2020-03-31 12:09:28 +02:00
Bruno BELANYI a200a839b6 examples: rename aliasing_limit to shot_rays 2020-03-31 12:09:28 +02:00
Bruno BELANYI d4345e6ea4 library: scene: rename aliasing_limit to shot_rays 2020-03-31 12:09:28 +02:00
Bruno BELANYI e68ceb484d executable: use dummy pahtracer renderer 2020-03-31 12:09:09 +02:00
Bruno BELANYI b624ced37f library: render: pathtrace: add dummy Pathtracer 2020-03-30 02:25:58 +02:00
Bruno BELANYI 9c6b9af31a library: render: add Renderer trait 2020-03-29 21:28:06 +02:00
Bruno BELANYI 83ed6406ac executable: allow the choice of renderer 2020-03-29 21:28:06 +02:00
Bruno BELANYI 5ebad7c1ab pathtracer: move rendering logic to 'render' module 2020-03-29 20:41:19 +02:00
Bruno BELANYI ad668251d4 beevee: bvh: accelerated: add missing link to BVH 2020-03-29 20:20:01 +02:00
Bruno BELANYI a59bd026bc library: rename 'render' module to 'scene' 2020-03-29 20:15:27 +02:00
Bruno BELANYI aa47b54e4c examples: move OBJ-related files to subdirectory 2020-03-29 19:44:12 +02:00
Bruno BELANYI 4593e276c4 library: core: camera: fix documentation phrasing 2020-03-29 19:36:51 +02:00
Bruno BELANYI 9ad1100ded library: core: camera: move film behind the camera
To prepare for adding the handling of focal blur, move the film so that
it is behind the point of convergence of the lens.

In addition, store the distance to the focal plane in the camera, which
will be used when calculating rays with an non-zero aperture.
2020-03-29 19:36:51 +02:00
Bruno BELANYI 2f3224ea07 library: render: scene: calculate rays w/ camera 2020-03-29 19:36:51 +02:00
Bruno BELANYI 78d5954419 library: core: color: fix from_slice's doc-test 2020-03-29 19:36:16 +02:00
Bruno BELANYI b79c94aad9 library: core: camera: add ray calculation method 2020-03-29 19:35:50 +02:00
Antoine Martin c7fec074c2 examples: add cornell box example 2020-03-29 19:22:12 +02:00
Bruno BELANYI 2994a7dcfa library: render: mesh: parse rotation in degrees 2020-03-29 18:13:38 +02:00
Antoine Martin e1f18786ce cargo: bump tobj to 1.0 2020-03-29 16:52:26 +02:00
Bruno BELANYI 642f4221cd beevee: bvh: tree: fix build panic 2020-03-27 17:40:12 +01:00
Antoine Martin 0e65a75e2b library: render: mesh: fix panic when parsing OBJ 2020-03-27 17:40:12 +01:00
Antoine Martin cca40bcb8e library: render: mesh: from_slice to build Vector 2020-03-27 17:40:12 +01:00
Antoine Martin f0d36c7d7b library: render: mesh: use nalgebra::zero instead 2020-03-27 17:40:12 +01:00
Bruno BELANYI 15381d4bbd library: render: mesh: scale, rotate, & translate
The scaling factor is the same on all axis, to avoid having angles
changed which would mess with the normals too much.
2020-03-27 17:40:12 +01:00
Antoine Martin 2d624c517f library: render: mesh: make default material grey 2020-03-27 17:40:12 +01:00
Antoine Martin fe5eee0172 library: render: mesh: load basic material from OBJ 2020-03-27 17:40:12 +01:00
Antoine Martin 6ba0f328cd library: render: mesh: handle empty normals in OBJ 2020-03-27 17:40:12 +01:00
Antoine Martin 0368edbd74 library: render: mesh: add OBJ loading 2020-03-27 17:39:44 +01:00
Bruno BELANYI a0d7d5e590 library: render: scene: remove ignored test 2020-03-26 19:05:01 +01:00