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: f32Screen distance.
aspect_ratio: f32Aspect ratio.
transformation: TransformationTransformation 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 ==.