Struct rustracer::camera::PerspectiveCamera
source · pub struct PerspectiveCamera {
distance: f32,
aspect_ratio: f32,
transformation: Transformation,
}
Expand description
A camera implementing a perspective 3D -> 2D projection.
This class implements an observer seeing the world through a perspective projection.
Fields§
§distance: f32
Screen distance.
aspect_ratio: f32
Aspect ratio.
transformation: Transformation
Transformation
to apply to Ray
.
Implementations§
source§impl PerspectiveCamera
impl PerspectiveCamera
sourcepub fn new(
distance: f32,
aspect_ratio: f32,
transformation: Transformation
) -> Self
pub fn new( distance: f32, aspect_ratio: f32, transformation: Transformation ) -> Self
Create a new perspective camera.
The parameter distance
tells how much far from the eye
of the observer is the screen, and it influences the so-called «aperture»
(the field-of-view angle along the horizontal direction).
The parameter aspect_ratio
defines how larger than the height is the image.
For fullscreen images, you should probably set aspect_ratio
to 16/9
,
as this is the most used aspect ratio used in modern monitors.
The transformation
parameter is an instance of the Transformation
.
Trait Implementations§
source§impl Clone for PerspectiveCamera
impl Clone for PerspectiveCamera
source§fn clone(&self) -> PerspectiveCamera
fn clone(&self) -> PerspectiveCamera
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for PerspectiveCamera
impl Debug for PerspectiveCamera
source§impl Default for PerspectiveCamera
impl Default for PerspectiveCamera
source§fn default() -> PerspectiveCamera
fn default() -> PerspectiveCamera
source§impl FireRay for PerspectiveCamera
impl FireRay for PerspectiveCamera
source§fn fire_ray(&self, u: f32, v: f32) -> Ray
fn fire_ray(&self, u: f32, v: f32) -> Ray
Shoot a Ray
through the camera’s screen.
The coordinates (u, v)
specify the point on the screen where the ray crosses it.
Coordinates:
(0, 0)
represent the bottom-left corner(0, 1)
the top-left corner(1, 0)
the bottom-right corner(1, 1)
the top-right corner
(0, 1) (1, 1)
+------------------------------+
| |
| |
| |
+------------------------------+
(0, 0) (1, 0)
source§impl PartialEq for PerspectiveCamera
impl PartialEq for PerspectiveCamera
source§fn eq(&self, other: &PerspectiveCamera) -> bool
fn eq(&self, other: &PerspectiveCamera) -> bool
self
and other
values to be equal, and is used
by ==
.