Implement a Render Graph #16

Merged
SeanOMik merged 20 commits from feature/render-graph into main 2024-06-15 22:54:47 +00:00
5 changed files with 14 additions and 16 deletions
Showing only changes of commit 9ce79e6b29 - Show all commits

View File

@ -12,8 +12,6 @@ use crate::math::Transform;
use self::directional::DirectionalLight;
use super::render_buffer::BindGroupPair;
const MAX_LIGHT_COUNT: usize = 16;
/// A struct that stores a list of lights in a wgpu::Buffer.

View File

@ -7,7 +7,7 @@ edition = "2021"
[dependencies]
lyra-ecs = { path = "../lyra-ecs", features = [ "math" ] }
lyra-reflect = { path = "../lyra-reflect" }
lyra-reflect = { path = "../lyra-reflect", features = [ "math" ] }
lyra-math = { path = "../lyra-math" }
lyra-scene = { path = "../lyra-scene" }
anyhow = "1.0.75"

View File

@ -34,10 +34,10 @@ impl From<gltf::material::PbrMetallicRoughness<'_>> for PbrRoughness {
#[derive(Clone, Debug, Default, Reflect)]
pub struct PbrGlossiness {
/// The rgba diffuse color of the material
pub diffuse_color: glam::Vec4,
pub diffuse_color: lyra_math::Vec4,
// The base color texture
// pub diffuse_texture // TODO
pub specular: glam::Vec3,
pub specular: lyra_math::Vec3,
/// The glossiness factor of the material.
/// From 0.0 (no glossiness) to 1.0 (full glossiness)
pub glossiness: f32,
@ -101,7 +101,7 @@ pub struct Specular {
pub factor: f32,
/// The color of the specular reflection
pub color_factor: glam::Vec3,
pub color_factor: lyra_math::Vec3,
/// A texture that defines the strength of the specular reflection,
/// stored in the alpha (`A`) channel. This will be multiplied by
@ -140,7 +140,7 @@ pub struct Material {
//pub pbr_roughness: PbrRoughness,
/// The RGBA base color of the model. If a texture is supplied with `base_color_texture`, this value
/// will tint the texture. If a texture is not provided, this value would be the color of the Material.
pub base_color: glam::Vec4,
pub base_color: lyra_math::Vec4,
/// The metalness of the material
/// From 0.0 (non-metal) to 1.0 (metal)
pub metallic: f32,

View File

@ -50,9 +50,9 @@ impl From<Vec<u32>> for MeshIndices {
#[repr(C)]
#[derive(Clone, Debug, PartialEq, Reflect)]
pub enum VertexAttributeData {
Vec2(Vec<glam::Vec2>),
Vec3(Vec<glam::Vec3>),
Vec4(Vec<glam::Vec4>),
Vec2(Vec<lyra_math::Vec2>),
Vec3(Vec<lyra_math::Vec3>),
Vec4(Vec<lyra_math::Vec4>),
}
impl VertexAttributeData {

View File

@ -374,7 +374,7 @@ pub(crate) mod tests {
use instant::Instant;
use crate::{Image, ResourceData, Texture};
use crate::{Image, ResourceData};
use super::*;
@ -431,10 +431,10 @@ pub(crate) mod tests {
#[test]
fn ensure_single() {
let man = ResourceManager::new();
let res = man.request::<Texture>(&get_image("squiggles.png")).unwrap();
let res = man.request::<Image>(&get_image("squiggles.png")).unwrap();
assert_eq!(Arc::strong_count(&res.handle.res), 3);
let resagain = man.request::<Texture>(&get_image("squiggles.png")).unwrap();
let resagain = man.request::<Image>(&get_image("squiggles.png")).unwrap();
assert_eq!(Arc::strong_count(&resagain.handle.res), 4);
}
@ -442,7 +442,7 @@ pub(crate) mod tests {
#[test]
fn ensure_none() {
let man = ResourceManager::new();
let res = man.request::<Texture>(&get_image("squigglesfff.png")).unwrap();
let res = man.request::<Image>(&get_image("squigglesfff.png")).unwrap();
//let err = res.err().unwrap();
// 1 second should be enough to run into an error
@ -468,7 +468,7 @@ pub(crate) mod tests {
#[test]
fn reload_image() {
let man = ResourceManager::new();
let res = man.request::<Texture>(&get_image("squiggles.png")).unwrap();
let res = man.request::<Image>(&get_image("squiggles.png")).unwrap();
busy_wait_resource(&res, 10.0);
let img = res.data_ref();
img.unwrap();
@ -489,7 +489,7 @@ pub(crate) mod tests {
std::fs::copy(orig_path, &image_path).unwrap();
let man = ResourceManager::new();
let res = man.request::<Texture>(&image_path).unwrap();
let res = man.request::<Image>(&image_path).unwrap();
busy_wait_resource(&res, 10.0);
let img = res.data_ref();
img.unwrap();