Add checker texture to tutorial image to spruce things up.
This commit is contained in:
parent
bda42922e4
commit
56743b5d77
@ -9,7 +9,9 @@ use crate::moving_sphere::MovingSphere;
|
|||||||
use crate::renderer::Opt;
|
use crate::renderer::Opt;
|
||||||
use crate::renderer::Scene;
|
use crate::renderer::Scene;
|
||||||
use crate::sphere::Sphere;
|
use crate::sphere::Sphere;
|
||||||
|
use crate::texture::CheckerTexture;
|
||||||
use crate::texture::ConstantTexture;
|
use crate::texture::ConstantTexture;
|
||||||
|
use crate::texture::Texture;
|
||||||
use crate::vec3::Vec3;
|
use crate::vec3::Vec3;
|
||||||
|
|
||||||
pub fn new(opt: &Opt) -> Scene {
|
pub fn new(opt: &Opt) -> Scene {
|
||||||
@ -30,23 +32,26 @@ pub fn new(opt: &Opt) -> Scene {
|
|||||||
time_min,
|
time_min,
|
||||||
time_max,
|
time_max,
|
||||||
);
|
);
|
||||||
let ground_color = if opt.use_accel {
|
let ground_color: Box<dyn Texture> = if opt.use_accel {
|
||||||
ConstantTexture::new(Vec3::new(1.0, 0.4, 0.4))
|
Box::new(CheckerTexture::new(
|
||||||
|
ConstantTexture::new([0., 0., 0.]),
|
||||||
|
ConstantTexture::new([1.0, 0.4, 0.4]),
|
||||||
|
))
|
||||||
} else {
|
} else {
|
||||||
ConstantTexture::new(Vec3::new(0.4, 1.0, 0.4))
|
Box::new(ConstantTexture::new(Vec3::new(0.4, 1.0, 0.4)))
|
||||||
};
|
};
|
||||||
|
|
||||||
let objects: Vec<Box<dyn Hit>> = vec![
|
let objects: Vec<Box<dyn Hit>> = vec![
|
||||||
//let world: Box<Hit> = Box::new(HitableList::new(vec![
|
//let world: Box<Hit> = Box::new(HitableList::new(vec![
|
||||||
Box::new(Sphere::new([1., 0., 0.], 0.5, Dielectric::new(1.5))),
|
Box::new(Sphere::new([1., 0.5, 1.], 0.5, Dielectric::new(1.5))),
|
||||||
Box::new(Sphere::new(
|
Box::new(Sphere::new(
|
||||||
Vec3::new(0., 0., -1.),
|
Vec3::new(0., 0., -1.),
|
||||||
0.5,
|
0.5,
|
||||||
Lambertian::new(ConstantTexture::new(Vec3::new(0.1, 0.2, 0.5))),
|
Lambertian::new(ConstantTexture::new(Vec3::new(0.1, 0.2, 0.5))),
|
||||||
)),
|
)),
|
||||||
Box::new(Sphere::new(
|
Box::new(Sphere::new(
|
||||||
Vec3::new(0., -100.5, -1.),
|
Vec3::new(0., -1000.5, -1.),
|
||||||
100.,
|
1000.,
|
||||||
Lambertian::new(ground_color),
|
Lambertian::new(ground_color),
|
||||||
)),
|
)),
|
||||||
Box::new(Sphere::new(
|
Box::new(Sphere::new(
|
||||||
|
|||||||
@ -25,6 +25,12 @@ impl Texture for Arc<dyn Texture> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl Texture for Box<dyn Texture> {
|
||||||
|
fn value(&self, u: f32, v: f32, p: Vec3) -> Vec3 {
|
||||||
|
(**self).value(u, v, p)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod test {
|
mod test {
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user