dolly

Crates.iodolly
lib.rsdolly
version0.6.0
sourcesrc
created_at2021-08-05 22:41:08.190149
updated_at2024-07-22 19:44:25.435413
descriptionComposable camera rigs
homepage
repositoryhttps://github.com/h3r2tic/dolly
max_upload_size
id432215
size65,973
Tomasz Stachowiak (h3r2tic)

documentation

https://docs.rs/dolly

README

🎥 dolly

Crates.io Docs

Combine simple building blocks to create smooth cameras: first-person, chase, orbit, look-at, you name it!

Camera rigs made with dolly are engine-agnostic, and only provide camera positioning. Optical and rendering parameters such as field of view and clipping planes can be built on top, and are not within the scope of this crate.

While cameras are a complex topic in gamedev, this crate only provides the basics, aiming at small games and tools.

Example

orbit camera example

let mut camera: CameraRig = CameraRig::builder()
    .with(YawPitch::new().yaw_degrees(45.0).pitch_degrees(-30.0))
    .with(Smooth::new_rotation(1.5))
    .with(Arm::new(Vec3::Z * 4.0))
    .build();

// ...

let camera_driver = camera.driver_mut::<YawPitch>();
if keyboard.was_just_pressed(VirtualKeyCode::Z) {
    camera_driver.rotate_yaw_pitch(-90.0, 0.0);
}
if keyboard.was_just_pressed(VirtualKeyCode::X) {
    camera_driver.rotate_yaw_pitch(90.0, 0.0);
}

camera.update(time_delta_seconds);
Commit count: 45

cargo fmt