From 88ce3ed506277c881d9ef2a898ec9862f2a7b243 Mon Sep 17 00:00:00 2001 From: HampusM Date: Sun, 12 May 2024 13:01:33 +0200 Subject: fix(engine): make default material colors black --- engine/src/material.rs | 24 ++++++++++++------------ engine/src/renderer/mod.rs | 18 +++--------------- 2 files changed, 15 insertions(+), 27 deletions(-) (limited to 'engine') diff --git a/engine/src/material.rs b/engine/src/material.rs index c896084..880f689 100644 --- a/engine/src/material.rs +++ b/engine/src/material.rs @@ -7,9 +7,9 @@ use crate::texture::{Id as TextureId, Texture}; #[derive(Debug, Clone, Component)] pub struct Material { - ambient: Option>, - diffuse: Option>, - specular: Option>, + ambient: Color, + diffuse: Color, + specular: Color, ambient_map: TextureId, diffuse_map: TextureId, specular_map: TextureId, @@ -20,21 +20,21 @@ pub struct Material impl Material { #[must_use] - pub fn ambient(&self) -> Option<&Color> + pub fn ambient(&self) -> &Color { - self.ambient.as_ref() + &self.ambient } #[must_use] - pub fn diffuse(&self) -> Option<&Color> + pub fn diffuse(&self) -> &Color { - self.diffuse.as_ref() + &self.diffuse } #[must_use] - pub fn specular(&self) -> Option<&Color> + pub fn specular(&self) -> &Color { - self.specular.as_ref() + &self.specular } #[must_use] @@ -206,9 +206,9 @@ impl Builder }); Material { - ambient: self.ambient.clone(), - diffuse: self.diffuse.clone(), - specular: self.specular.clone(), + ambient: self.ambient.unwrap_or_default(), + diffuse: self.diffuse.unwrap_or_default(), + specular: self.specular.unwrap_or_default(), ambient_map, diffuse_map, specular_map, diff --git a/engine/src/renderer/mod.rs b/engine/src/renderer/mod.rs index fbb86f7..e2a567a 100644 --- a/engine/src/renderer/mod.rs +++ b/engine/src/renderer/mod.rs @@ -385,30 +385,18 @@ fn apply_light( gl_shader_program.set_uniform_vec_3fv( cstr!("material.ambient"), - &material - .ambient() - .cloned() - .unwrap_or(Color { red: 1.0, green: 1.0, blue: 1.0 }) - .into(), + &material.ambient().clone().into(), ); gl_shader_program.set_uniform_vec_3fv( cstr!("material.diffuse"), - &material - .diffuse() - .cloned() - .unwrap_or(Color { red: 1.0, green: 1.0, blue: 1.0 }) - .into(), + &material.diffuse().clone().into(), ); #[allow(clippy::cast_possible_wrap)] gl_shader_program.set_uniform_vec_3fv( cstr!("material.specular"), - &material - .specular() - .cloned() - .unwrap_or(Color { red: 1.0, green: 1.0, blue: 1.0 }) - .into(), + &material.specular().clone().into(), ); #[allow(clippy::cast_possible_wrap)] -- cgit v1.2.3-18-g5258