1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//! Ray primitive.
//!
//! A ray is an origin plus a direction, parametrized by `t >= 0`.
//! In transient rendering we *also* care about the cumulative optical path
//! length the ray has accumulated so far — this is what gives every photon
//! contribution a definite arrival time at the sensor.
use crateVec3;
/// A ray with cumulative optical path length. The path length is what
/// makes this a *transient* ray rather than a steady-state one — it
/// carries enough state for the time-binned framebuffer to credit each
/// terminal hit to the correct time bin.