File tree Expand file tree Collapse file tree 1 file changed +4
-1
lines changed Expand file tree Collapse file tree 1 file changed +4
-1
lines changed Original file line number Diff line number Diff line change 350
350
Rays, a Simple Camera, and Background
351
351
====================================================================================================
352
352
353
+ < div class='together'>
353
354
The one thing that all ray tracers have is a ray class, and a computation of what color is seen
354
355
along a ray. Let’s think of a ray as a function $\mathbf{p}(t) = \mathbf{a} + t \vec{\mathbf{b}}$.
355
356
Here $\mathbf{p}$ is a 3D position along a line in 3D. $\mathbf{a}$ is the ray origin and
356
357
$\vec{\mathbf{b}}$ is the ray direction. The ray parameter $t$ is a real number (`double` in the
357
358
code). Plug in a different $t$ and $p(t)$ moves the point along the ray. Add in negative $t$ and you
358
359
can go anywhere on the 3D line. For positive $t$, you get only the parts in front of $\mathbf{a}$,
359
- and this is what is often called a half-line or ray. The example $\mathbf{c} = p(2)$ is shown here:
360
+ and this is what is often called a half-line or ray.
360
361
361
362
![Figure [lerp]: Linear interpolation](../images/fig.lerp.jpg)
362
363
364
+ </ div>
365
+
363
366
< div class='together'>
364
367
The function $p(t)$ in more verbose code form I call `ray::at(t)`:
365
368
You can’t perform that action at this time.
0 commit comments