From 180c3251f443b02df30f2ccd6b97f795ee2ec368 Mon Sep 17 00:00:00 2001 From: Schell Carl Scivally Date: Wed, 6 Dec 2023 21:03:20 +1300 Subject: [PATCH] feat: drawing gltf nodes (#67) * WIP drawing gltf nodes * better accessor support * extract u8,i8,u16,i16 in shaders as u32,i32 * successfully rendering simple gltf files w/ the new gpu-driven gltf pipeline * fixed typo causing scene tangent errors --- crates/renderling-shader/src/array.rs | 39 +- crates/renderling-shader/src/bits.rs | 320 ++++++++ crates/renderling-shader/src/gltf.rs | 628 +++++++++++++++- crates/renderling-shader/src/lib.rs | 12 + crates/renderling-shader/src/stage.rs | 182 ++++- crates/renderling-shader/src/tutorial.rs | 5 +- .../src/linkage/stage-new_stage_vertex.spv | Bin 53732 -> 382464 bytes .../src/linkage/stage-stage_fragment.spv | Bin 123296 -> 123296 bytes .../linkage/stage-test_i8_i16_extraction.spv | Bin 0 -> 2300 bytes .../tutorial-implicit_isosceles_vertex.spv | Bin 744 -> 744 bytes .../linkage/tutorial-slabbed_render_unit.spv | Bin 49068 -> 380628 bytes .../src/linkage/tutorial-slabbed_vertices.spv | Bin 14696 -> 14696 bytes crates/renderling/src/scene/gltf_support.rs | 65 +- crates/renderling/src/slab.rs | 34 + crates/renderling/src/stage.rs | 36 +- crates/renderling/src/stage/gltf_support.rs | 681 +++++++++++++++--- crates/renderling/src/tutorial.rs | 63 +- 17 files changed, 1861 insertions(+), 204 deletions(-) create mode 100644 crates/renderling/src/linkage/stage-test_i8_i16_extraction.spv diff --git a/crates/renderling-shader/src/array.rs b/crates/renderling-shader/src/array.rs index 6054615d..35591901 100644 --- a/crates/renderling-shader/src/array.rs +++ b/crates/renderling-shader/src/array.rs @@ -6,7 +6,9 @@ use crate::slab::Slabbed; #[repr(C)] pub struct Array { + // u32 offset in the slab index: u32, + // number of `T` elements in the array len: u32, _phantom: PhantomData, } @@ -25,11 +27,15 @@ impl Copy for Array {} impl core::fmt::Debug for Array { fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { - f.debug_struct("Array") - .field("index", &self.index) - .field("len", &self.len) - .field("_phantom", &self._phantom) - .finish() + f.debug_struct(if self.is_null() { + "Array (null)" + } else { + "Array" + }) + .field("index", &self.index) + .field("len", &self.len) + .field("_phantom", &self._phantom) + .finish() } } @@ -75,7 +81,7 @@ impl Default for Array { } } -impl Array { +impl Array { pub fn new(index: u32, len: u32) -> Self { Self { index, @@ -92,11 +98,18 @@ impl Array { self.len == 0 } + pub fn is_null(&self) -> bool { + self.index == u32::MAX + } + pub fn contains_index(&self, index: usize) -> bool { index >= self.index as usize && index < (self.index + self.len) as usize } - pub fn at(&self, index: usize) -> Id { + pub fn at(&self, index: usize) -> Id + where + T: Slabbed, + { if index >= self.len() { Id::NONE } else { @@ -107,4 +120,16 @@ impl Array { pub fn starting_index(&self) -> usize { self.index as usize } + + /// Convert this array into a `u32` array. + pub fn into_u32_array(self) -> Array + where + T: Slabbed, + { + Array { + index: self.index, + len: self.len * T::slab_size() as u32, + _phantom: PhantomData, + } + } } diff --git a/crates/renderling-shader/src/bits.rs b/crates/renderling-shader/src/bits.rs index dc820623..6f224353 100644 --- a/crates/renderling-shader/src/bits.rs +++ b/crates/renderling-shader/src/bits.rs @@ -2,6 +2,8 @@ use core::ops::RangeInclusive; +use crate::{id::Id, slab::Slab}; + /// Statically define a shift/mask range as a literal range of bits. pub const fn bits(range: RangeInclusive) -> (u32, u32) { let mut start = *range.start(); @@ -34,3 +36,321 @@ pub fn insert(bits: &mut u32, (shift, mask): (u32, u32), value: u32) { pub fn extract(bits: u32, (shift, mask): (u32, u32)) -> u32 { (bits >> shift) & mask } + +/// The shift/mask range for the first 8 bits of a u32. +pub const U8_0_BITS: (u32, u32) = bits(0..=7); +/// The shift/mask range for the second 8 bits of a u32. +pub const U8_1_BITS: (u32, u32) = bits(8..=15); +/// The shift/mask range for the third 8 bits of a u32. +pub const U8_2_BITS: (u32, u32) = bits(16..=23); +/// The shift/mask range for the fourth 8 bits of a u32. +pub const U8_3_BITS: (u32, u32) = bits(24..=31); + +/// The shift/mask range for the first 16 bits of a u32. +pub const U16_0_BITS: (u32, u32) = bits(0..=15); +/// The shift/mask range for the second 16 bits of a u32. +pub const U16_1_BITS: (u32, u32) = bits(16..=31); + +/// Extract 8 bits of the u32 at the given index in the slab. +/// +/// Returns the extracted value, the index of the next component and the index +/// of the next u32 in the slab. +pub fn extract_u8( + // index of the u32 in the slab + u32_index: usize, + // eg 0 for the first 8 bits, 1 for the second 8 bits, etc + byte_offset: usize, + // slab of u32s + slab: &[u32], +) -> (u32, usize, usize) { + const SHIFT_MASKS: [((u32, u32), usize); 4] = [ + (U8_0_BITS, 0), + (U8_1_BITS, 0), + (U8_2_BITS, 0), + (U8_3_BITS, 1), + ]; + let byte_mod = byte_offset % 4; + let (shift_mask, index_inc) = SHIFT_MASKS[byte_mod as usize]; + let u32_value = slab.read(Id::from(u32_index)); + let value = extract(u32_value, shift_mask); + (value, u32_index + index_inc as usize, byte_mod + 1) +} + +/// Extract 8 bits of the u32 at the given index in the slab. +/// +/// Returns the extracted value, the index of the next component and the index +/// of the next u32 in the slab. +pub fn extract_i8( + // index of the u32 in the slab + u32_index: usize, + // eg 0 for the first 8 bits, 1 for the second 8 bits, etc + byte_offset: usize, + // slab of u32s + slab: &[u32], +) -> (i32, usize, usize) { + let (value, u32_index, n) = extract_u8(u32_index, byte_offset, slab); + let value: i32 = (value as i32 & 0xFF) - ((value as i32 & 0x80) << 1); + (value, u32_index, n) +} + +/// Extract 16 bits of the u32 at the given index in the slab. +pub fn extract_u16( + // index of the u32 in the slab + u32_index: usize, + // eg 0 for the first 16 bits, 2 for the second 16 bits, etc + byte_offset: usize, + // slab of u32s + slab: &[u32], +) -> (u32, usize, usize) { + // NOTE: This should only have two entries, but we'll still handle the case where + // the extraction is not aligned to a u32 boundary by reading as if it were, and then + // re-aligning. + const SHIFT_MASKS: [((u32, u32), usize, usize); 4] = [ + (U16_0_BITS, 2, 0), + (U16_0_BITS, 2, 0), + (U16_1_BITS, 0, 1), + (U16_1_BITS, 0, 1), + ]; + let byte_mod = byte_offset % 4; + crate::println!("byte_mod: {byte_mod}"); + let (shift_mask, next_byte_offset, index_inc) = SHIFT_MASKS[byte_mod as usize]; + let u32_value = slab.read(Id::from(u32_index)); + crate::println!("u32: {:032b}", u32_value); + let value = extract(u32_value, shift_mask); + crate::println!("u16: {:016b}", value); + crate::println!("u32: {:?}", u32_value); + (value, u32_index + index_inc, next_byte_offset) +} + +/// Extract 16 bits of the u32 at the given index in the slab. +pub fn extract_i16( + // index of the u32 in the slab + u32_index: usize, + // eg 0 for the first 16 bits, 1 for the second 16 bits, etc + byte_offset: usize, + // slab of u32s + slab: &[u32], +) -> (i32, usize, usize) { + let (value, u32_index, n) = extract_u16(u32_index, byte_offset, slab); + let value: i32 = (value as i32 & 0xFFFF) - ((value as i32 & 0x8000) << 1); + (value, u32_index, n) +} + +/// Extract 32 bits of the u32 at the given index in the slab. +pub fn extract_u32( + // index of the u32 in the slab + u32_index: usize, + // ignored and always passed back as `0` + _byte_offset: usize, + // slab of u32s + slab: &[u32], +) -> (u32, usize, usize) { + (slab.read(Id::from(u32_index)), u32_index + 1, 0) +} + +/// Extract 32 bits of the u32 at the given index in the slab. +pub fn extract_i32( + // index of the u32 in the slab + u32_index: usize, + // ignored and always passed back as `0` + _byte_offset: usize, + // slab of u32s + slab: &[u32], +) -> (i32, usize, usize) { + let (value, _, _) = extract_u32(u32_index, 0, slab); + (value as i32, u32_index + 1, 0) +} + +/// Extract 32 bits of the u32 at the given index in the slab. +pub fn extract_f32( + // index of the u32 in the slab + u32_index: usize, + // ignored and always passed back as `0` + _byte_offset: usize, + // slab of u32s + slab: &[u32], +) -> (f32, usize, usize) { + let (value, _, _) = extract_u32(u32_index, 0, slab); + (f32::from_bits(value), u32_index + 1, 0) +} + +#[cfg(test)] +mod test { + use super::*; + + #[test] + fn bits_sanity() { + let mut store = 0; + assert_eq!( + "00000000000000000000000000000000", + &format!("{:032b}", store) + ); + insert(&mut store, bits(0..=7), u8::MAX as u32); + assert_eq!( + "00000000000000000000000011111111", + &format!("{:032b}", store) + ); + store = 0; + insert(&mut store, bits(8..=15), u8::MAX as u32); + assert_eq!( + "00000000000000001111111100000000", + &format!("{:032b}", store) + ); + } + + #[test] + fn bits_u8_sanity() { + let mut bits = 0; + println!("bits: {:032b}", bits); + super::insert(&mut bits, super::U8_0_BITS, 6u8 as u32); + println!("bits: {:032b}", bits); + assert_eq!(super::extract(bits, super::U8_0_BITS), 6); + super::insert(&mut bits, super::U8_1_BITS, 5u8 as u32); + println!("bits: {:032b}", bits); + assert_eq!(super::extract(bits, super::U8_0_BITS), 6); + assert_eq!(super::extract(bits, super::U8_1_BITS), 5); + super::insert(&mut bits, super::U8_2_BITS, 4u8 as u32); + println!("bits: {:032b}", bits); + assert_eq!(super::extract(bits, super::U8_0_BITS), 6); + assert_eq!(super::extract(bits, super::U8_1_BITS), 5); + assert_eq!(super::extract(bits, super::U8_2_BITS), 4); + super::insert(&mut bits, super::U8_3_BITS, 3u8 as u32); + println!("bits: {:032b}", bits); + assert_eq!(super::extract(bits, super::U8_0_BITS), 6); + assert_eq!(super::extract(bits, super::U8_1_BITS), 5); + assert_eq!(super::extract(bits, super::U8_2_BITS), 4); + assert_eq!(super::extract(bits, super::U8_3_BITS), 3); + } + + #[test] + fn extract_u8_sanity() { + let u8_slab = [0u8, 1u8, 2u8, 3u8, 4u8, 5u8, 0u8, 0u8]; + let u32_slab: &[u32] = bytemuck::cast_slice(&u8_slab); + let index = 0; + let n = 0; + let (a, index, n) = extract_u8(index, n, u32_slab); + let (b, index, n) = extract_u8(index, n, u32_slab); + let (c, index, n) = extract_u8(index, n, u32_slab); + let (d, index, n) = extract_u8(index, n, u32_slab); + let (e, index, n) = extract_u8(index, n, u32_slab); + let (f, _, _) = extract_u8(index, n, u32_slab); + assert_eq!([0, 1, 2, 3, 4, 5], [a, b, c, d, e, f]); + } + + #[test] + fn extract_i8_sanity() { + let i8_slab = [0i8, -1i8, -2i8, -3i8, 4i8, 5i8, 0i8, 0i8]; + let u32_slab: &[u32] = bytemuck::cast_slice(&i8_slab); + let index = 0; + let n = 0; + let (a, index, n) = extract_i8(index, n, u32_slab); + let (b, index, n) = extract_i8(index, n, u32_slab); + let (c, index, n) = extract_i8(index, n, u32_slab); + let (d, index, n) = extract_i8(index, n, u32_slab); + let (e, index, n) = extract_i8(index, n, u32_slab); + let (f, _, _) = extract_i8(index, n, u32_slab); + assert_eq!([0, -1, -2, -3, 4, 5], [a, b, c, d, e, f]); + } + + #[test] + fn extract_u16_sanity() { + let u16_slab = [0u16, 1u16, 2u16, 3u16, 4u16, 5u16]; + let u32_slab: &[u32] = bytemuck::cast_slice(&u16_slab); + let index = 0; + let n = 0; + let (a, index, n) = extract_u16(index, n, u32_slab); + let (b, index, n) = extract_u16(index, n, u32_slab); + let (c, index, n) = extract_u16(index, n, u32_slab); + let (d, index, n) = extract_u16(index, n, u32_slab); + let (e, index, n) = extract_u16(index, n, u32_slab); + let (f, _, _) = extract_u16(index, n, u32_slab); + assert_eq!([0, 1, 2, 3, 4, 5], [a, b, c, d, e, f]); + } + + #[test] + fn extract_i16_sanity() { + let i16_slab = [0i16, -1i16, -2i16, -3i16, 4i16, 5i16, -12345i16, 0i16]; + let u32_slab: &[u32] = bytemuck::cast_slice(&i16_slab); + let index = 0; + let n = 0; + let (a, index, n) = extract_i16(index, n, u32_slab); + let (b, index, n) = extract_i16(index, n, u32_slab); + let (c, index, n) = extract_i16(index, n, u32_slab); + let (d, index, n) = extract_i16(index, n, u32_slab); + let (e, index, n) = extract_i16(index, n, u32_slab); + let (f, index, n) = extract_i16(index, n, u32_slab); + let (g, _, _) = extract_i16(index, n, u32_slab); + assert_eq!([0, -1, -2, -3, 4, 5, -12345], [a, b, c, d, e, f, g]); + } + + #[test] + fn extract_u32_sanity() { + let u32_slab = [0u32, 1u32, 2u32, 3u32, 4u32, 5u32]; + let u32_slab: &[u32] = bytemuck::cast_slice(&u32_slab); + let index = 0; + let n = 0; + let (a, index, n) = extract_u32(index, n, u32_slab); + let (b, index, n) = extract_u32(index, n, u32_slab); + let (c, index, n) = extract_u32(index, n, u32_slab); + let (d, index, n) = extract_u32(index, n, u32_slab); + let (e, index, n) = extract_u32(index, n, u32_slab); + let (f, _, _) = extract_u32(index, n, u32_slab); + assert_eq!([0, 1, 2, 3, 4, 5], [a, b, c, d, e, f]); + } + + #[test] + fn extract_i32_sanity() { + let i32_slab = [0i32, -1i32, -2i32, -3i32, 4i32, 5i32, -12345i32]; + let u32_slab: &[u32] = bytemuck::cast_slice(&i32_slab); + let index = 0; + let n = 0; + let (a, index, n) = extract_i32(index, n, u32_slab); + let (b, index, n) = extract_i32(index, n, u32_slab); + let (c, index, n) = extract_i32(index, n, u32_slab); + let (d, index, n) = extract_i32(index, n, u32_slab); + let (e, index, n) = extract_i32(index, n, u32_slab); + let (f, index, n) = extract_i32(index, n, u32_slab); + let (g, _, _) = extract_i32(index, n, u32_slab); + assert_eq!([0, -1, -2, -3, 4, 5, -12345], [a, b, c, d, e, f, g]); + } + + #[test] + fn extract_f32_sanity() { + let f32_slab = [ + 0.0f32, + -1.0f32, + -2.0f32, + -3.0f32, + 4.0f32, + 5.0f32, + -12345.0f32, + ]; + let u32_slab: &[u32] = bytemuck::cast_slice(&f32_slab); + let index = 0; + let n = 0; + let (a, index, n) = extract_f32(index, n, u32_slab); + let (b, index, n) = extract_f32(index, n, u32_slab); + let (c, index, n) = extract_f32(index, n, u32_slab); + let (d, index, n) = extract_f32(index, n, u32_slab); + let (e, index, n) = extract_f32(index, n, u32_slab); + let (f, index, n) = extract_f32(index, n, u32_slab); + let (g, _, _) = extract_f32(index, n, u32_slab); + assert_eq!( + [0f32, -1f32, -2f32, -3f32, 4f32, 5f32, -12345f32], + [a, b, c, d, e, f, g] + ); + } + + #[test] + fn indices_sanity() { + let slab: [u32; 20] = [ + 65536, 2, 0, 0, 0, 1065353216, 0, 0, 0, 1065353216, 0, 0, 0, 1065353216, 0, 0, + 1065353216, 0, 0, 1065353216, + ]; + let u32_index = 9usize; + let byte_offset = 0usize; + let (a, u32_index, byte_offset) = extract_u32(u32_index, byte_offset, &slab); + let (b, u32_index, byte_offset) = extract_u32(u32_index, byte_offset, &slab); + let (c, u32_index, byte_offset) = extract_u32(u32_index, byte_offset, &slab); + } +} diff --git a/crates/renderling-shader/src/gltf.rs b/crates/renderling-shader/src/gltf.rs index 76d4bdb1..86802f6b 100644 --- a/crates/renderling-shader/src/gltf.rs +++ b/crates/renderling-shader/src/gltf.rs @@ -1,14 +1,22 @@ //! Gltf types that are used in shaders. +use glam::{Vec2, Vec3, Vec4}; + use crate::{ - self as renderling_shader, array::Array, id::Id, pbr::PbrMaterial, slab::Slabbed, + self as renderling_shader, + array::Array, + id::Id, + pbr::PbrMaterial, + slab::{Slab, Slabbed}, texture::GpuTexture, }; #[repr(transparent)] +#[cfg_attr(not(target_arch = "spirv"), derive(Debug))] #[derive(Default, Clone, Copy, Slabbed)] pub struct GltfBuffer(pub Array); #[repr(u32)] -#[derive(Default, Clone, Copy)] +#[cfg_attr(not(target_arch = "spirv"), derive(Debug))] +#[derive(Default, Clone, Copy, PartialEq)] pub enum DataType { I8, U8, @@ -48,6 +56,7 @@ impl Slabbed for DataType { } #[repr(u32)] +#[cfg_attr(not(target_arch = "spirv"), derive(Debug))] #[derive(Default, Clone, Copy)] pub enum Dimensions { #[default] @@ -96,9 +105,13 @@ impl Slabbed for Dimensions { } } +#[cfg_attr(not(target_arch = "spirv"), derive(Debug))] #[derive(Default, Clone, Copy, Slabbed)] pub struct GltfAccessor { - // The byte size of each component that this accessor describes. + // The byte size of each element that this accessor describes. + // + /// For example, if the accessor describes a `Vec3` of F32s, then + // the size is 3 * 4 = 12. pub size: u32, pub buffer: Id, // Returns the offset relative to the start of the parent buffer view in bytes. @@ -107,19 +120,487 @@ pub struct GltfAccessor { pub view_offset: u32, // The stride in bytes between vertex attributes or other interleavable data. pub view_stride: u32, - // The number of components within the buffer view - not to be confused with the + // The number of elements within the buffer view - not to be confused with the // number of bytes in the buffer view. pub count: u32, // The data type of components in the attribute. - pub component_type: DataType, + pub data_type: DataType, // Specifies if the attribute is a scalar, vector, or matrix. pub dimensions: Dimensions, // Whether or not the attribute is normalized. pub normalized: bool, } +/// Used to access contiguous u8 components from a buffer, contained in u32s. +pub struct IncU8 { + slab_index: usize, + byte_offset: usize, +} + +impl IncU8 { + pub fn extract(self, slab: &[u32]) -> (u32, Self) { + let (value, slab_index, byte_offset) = + crate::bits::extract_u8(self.slab_index, self.byte_offset, slab); + ( + value, + Self { + slab_index, + byte_offset, + }, + ) + } +} + +/// Used to access contiguous i8 components from a buffer, contained in u32s. +pub struct IncI8 { + slab_index: usize, + byte_offset: usize, +} + +impl IncI8 { + pub fn extract(self, slab: &[u32]) -> (i32, Self) { + let (value, slab_index, byte_offset) = + crate::bits::extract_i8(self.slab_index, self.byte_offset, slab); + ( + value, + Self { + slab_index, + byte_offset, + }, + ) + } +} + +/// Used to access contiguous u16 components from a buffer, contained in u32s. +pub struct IncU16 { + slab_index: usize, + byte_offset: usize, +} + +impl IncU16 { + pub fn extract(self, slab: &[u32]) -> (u32, Self) { + let (value, slab_index, byte_offset) = + crate::bits::extract_u16(self.slab_index, self.byte_offset, slab); + crate::println!("value: {value:?}"); + ( + value, + Self { + slab_index, + byte_offset, + }, + ) + } +} + +/// Used to access contiguous i16 components from a buffer, contained in u32s. +pub struct IncI16 { + slab_index: usize, + byte_offset: usize, +} + +impl IncI16 { + pub fn extract(self, slab: &[u32]) -> (i32, Self) { + let (value, slab_index, byte_offset) = + crate::bits::extract_i16(self.slab_index, self.byte_offset, slab); + ( + value, + Self { + slab_index, + byte_offset, + }, + ) + } +} + +impl GltfAccessor { + fn slab_index_and_byte_offset(&self, element_index: usize, slab: &[u32]) -> (usize, usize) { + crate::println!("index: {element_index:?}"); + let buffer_id = self.buffer; + crate::println!("buffer_id: {buffer_id:?}"); + let buffer = slab.read(self.buffer); + crate::println!("buffer: {:?}", buffer); + let buffer_start = buffer.0.starting_index(); + crate::println!("buffer_start: {buffer_start:?}"); + let buffer_start_bytes = buffer_start * 4; + crate::println!("buffer_start_bytes: {buffer_start_bytes:?}"); + let byte_offset = buffer_start_bytes + + self.view_offset as usize + + element_index as usize + * if self.size > self.view_stride { + self.size + } else { + self.view_stride + } as usize; + crate::println!("byte_offset: {byte_offset:?}"); + let slab_index = byte_offset / 4; + crate::println!("slab_index: {slab_index:?}"); + let byte_offset = byte_offset % 4; + (slab_index, byte_offset) + } + + pub fn inc_u8(&self, index: usize, slab: &[u32]) -> IncU8 { + let (slab_index, byte_offset) = self.slab_index_and_byte_offset(index, slab); + IncU8 { + slab_index, + byte_offset, + } + } + + pub fn inc_i8(&self, index: usize, slab: &[u32]) -> IncI8 { + let (slab_index, byte_offset) = self.slab_index_and_byte_offset(index, slab); + IncI8 { + slab_index, + byte_offset, + } + } + + pub fn inc_u16(&self, index: usize, slab: &[u32]) -> IncU16 { + let (slab_index, byte_offset) = self.slab_index_and_byte_offset(index, slab); + IncU16 { + slab_index, + byte_offset, + } + } + + pub fn inc_i16(&self, index: usize, slab: &[u32]) -> IncI16 { + let (slab_index, byte_offset) = self.slab_index_and_byte_offset(index, slab); + IncI16 { + slab_index, + byte_offset, + } + } + + pub fn get_u32(&self, vertex_index: usize, slab: &[u32]) -> u32 { + let x; + match self.data_type { + DataType::I8 => { + let inc = self.inc_i8(vertex_index, slab); + let (ix, _) = inc.extract(slab); + x = ix as u32; + } + DataType::U8 => { + let inc = self.inc_u8(vertex_index, slab); + let (ix, _) = inc.extract(slab); + x = ix; + } + DataType::I16 => { + let inc = self.inc_i16(vertex_index, slab); + let (ix, _) = inc.extract(slab); + x = ix as u32; + } + DataType::U16 => { + let inc = self.inc_u16(vertex_index, slab); + let (ix, _) = inc.extract(slab); + x = ix; + } + DataType::U32 => { + let (slab_index, _) = self.slab_index_and_byte_offset(vertex_index, slab); + x = crate::bits::extract_u32(slab_index, 0, slab).0; + } + DataType::F32 => { + let (slab_index, _) = self.slab_index_and_byte_offset(vertex_index, slab); + x = crate::bits::extract_f32(slab_index, 0, slab).0 as u32; + } + } + x + } + + pub fn get_f32(&self, vertex_index: usize, slab: &[u32]) -> f32 { + let x; + match self.data_type { + DataType::I8 => { + let inc = self.inc_i8(vertex_index, slab); + let (ix, _) = inc.extract(slab); + x = ix as f32; + } + DataType::U8 => { + let inc = self.inc_u8(vertex_index, slab); + let (ix, _) = inc.extract(slab); + x = ix as f32; + } + DataType::I16 => { + let inc = self.inc_i16(vertex_index, slab); + let (ix, _) = inc.extract(slab); + x = ix as f32; + } + DataType::U16 => { + let inc = self.inc_u16(vertex_index, slab); + let (ix, _) = inc.extract(slab); + x = ix as f32; + } + DataType::U32 => { + let (slab_index, _) = self.slab_index_and_byte_offset(vertex_index, slab); + x = crate::bits::extract_u32(slab_index, 0, slab).0 as f32; + } + DataType::F32 => { + let (slab_index, _) = self.slab_index_and_byte_offset(vertex_index, slab); + x = crate::bits::extract_f32(slab_index, 0, slab).0; + } + } + x + } + + pub fn get_vec2(&self, vertex_index: usize, slab: &[u32]) -> glam::Vec2 { + let x; + let y; + match self.data_type { + DataType::I8 => { + let inc = self.inc_i8(vertex_index, slab); + let (ix, inc) = inc.extract(slab); + let (iy, _) = inc.extract(slab); + x = ix as f32; + y = iy as f32; + } + DataType::U8 => { + let inc = self.inc_u8(vertex_index, slab); + let (ix, inc) = inc.extract(slab); + let (iy, _) = inc.extract(slab); + x = ix as f32; + y = iy as f32; + } + DataType::I16 => { + let inc = self.inc_i16(vertex_index, slab); + let (ix, inc) = inc.extract(slab); + let (iy, _) = inc.extract(slab); + x = ix as f32; + y = iy as f32; + } + DataType::U16 => { + let inc = self.inc_u16(vertex_index, slab); + let (ix, inc) = inc.extract(slab); + let (iy, _) = inc.extract(slab); + x = ix as f32; + y = iy as f32; + } + DataType::U32 => { + let (slab_index, _) = self.slab_index_and_byte_offset(vertex_index, slab); + x = crate::bits::extract_u32(slab_index, 0, slab).0 as f32; + y = crate::bits::extract_u32(slab_index + 1, 0, slab).0 as f32; + } + DataType::F32 => { + let (slab_index, _) = self.slab_index_and_byte_offset(vertex_index, slab); + x = crate::bits::extract_f32(slab_index, 0, slab).0; + y = crate::bits::extract_f32(slab_index + 1, 0, slab).0; + } + } + match self.dimensions { + Dimensions::Scalar => glam::Vec2::new(x, 0.0), + _ => glam::Vec2::new(x, y), + } + } + + pub fn get_vec3(&self, vertex_index: usize, slab: &[u32]) -> glam::Vec3 { + let x; + let y; + let z; + match self.data_type { + DataType::I8 => { + let inc = self.inc_i8(vertex_index, slab); + let (ix, inc) = inc.extract(slab); + let (iy, inc) = inc.extract(slab); + let (iz, _) = inc.extract(slab); + x = ix as f32; + y = iy as f32; + z = iz as f32; + } + DataType::U8 => { + let inc = self.inc_u8(vertex_index, slab); + let (ix, inc) = inc.extract(slab); + let (iy, inc) = inc.extract(slab); + let (iz, _) = inc.extract(slab); + x = ix as f32; + y = iy as f32; + z = iz as f32; + } + DataType::I16 => { + let inc = self.inc_i16(vertex_index, slab); + let (ix, inc) = inc.extract(slab); + let (iy, inc) = inc.extract(slab); + let (iz, _) = inc.extract(slab); + x = ix as f32; + y = iy as f32; + z = iz as f32; + } + DataType::U16 => { + let inc = self.inc_u16(vertex_index, slab); + let (ix, inc) = inc.extract(slab); + let (iy, inc) = inc.extract(slab); + let (iz, _) = inc.extract(slab); + x = ix as f32; + y = iy as f32; + z = iz as f32; + } + DataType::U32 => { + let (slab_index, _) = self.slab_index_and_byte_offset(vertex_index, slab); + x = crate::bits::extract_u32(slab_index, 0, slab).0 as f32; + y = crate::bits::extract_u32(slab_index + 1, 0, slab).0 as f32; + z = crate::bits::extract_u32(slab_index + 2, 0, slab).0 as f32; + } + DataType::F32 => { + let (slab_index, _) = self.slab_index_and_byte_offset(vertex_index, slab); + x = crate::bits::extract_f32(slab_index, 0, slab).0; + y = crate::bits::extract_f32(slab_index + 1, 0, slab).0; + z = crate::bits::extract_f32(slab_index + 2, 0, slab).0; + } + } + match self.dimensions { + Dimensions::Scalar => glam::Vec3::new(x, 0.0, 0.0), + Dimensions::Vec2 => glam::Vec3::new(x, y, 0.0), + _ => glam::Vec3::new(x, y, z), + } + } + + pub fn get_vec4(&self, vertex_index: usize, slab: &[u32]) -> glam::Vec4 { + let x; + let y; + let z; + let w; + match self.data_type { + DataType::I8 => { + let inc = self.inc_i8(vertex_index, slab); + let (ix, inc) = inc.extract(slab); + let (iy, inc) = inc.extract(slab); + let (iz, inc) = inc.extract(slab); + let (iw, _) = inc.extract(slab); + x = ix as f32; + y = iy as f32; + z = iz as f32; + w = iw as f32; + } + DataType::U8 => { + let inc = self.inc_u8(vertex_index, slab); + let (ix, inc) = inc.extract(slab); + let (iy, inc) = inc.extract(slab); + let (iz, inc) = inc.extract(slab); + let (iw, _) = inc.extract(slab); + x = ix as f32; + y = iy as f32; + z = iz as f32; + w = iw as f32; + } + DataType::I16 => { + let inc = self.inc_i16(vertex_index, slab); + let (ix, inc) = inc.extract(slab); + let (iy, inc) = inc.extract(slab); + let (iz, inc) = inc.extract(slab); + let (iw, _) = inc.extract(slab); + x = ix as f32; + y = iy as f32; + z = iz as f32; + w = iw as f32; + } + DataType::U16 => { + let inc = self.inc_u16(vertex_index, slab); + let (ix, inc) = inc.extract(slab); + let (iy, inc) = inc.extract(slab); + let (iz, inc) = inc.extract(slab); + let (iw, _) = inc.extract(slab); + x = ix as f32; + y = iy as f32; + z = iz as f32; + w = iw as f32; + } + DataType::U32 => { + let (slab_index, _) = self.slab_index_and_byte_offset(vertex_index, slab); + x = crate::bits::extract_u32(slab_index, 0, slab).0 as f32; + y = crate::bits::extract_u32(slab_index + 1, 0, slab).0 as f32; + z = crate::bits::extract_u32(slab_index + 2, 0, slab).0 as f32; + w = crate::bits::extract_u32(slab_index + 3, 0, slab).0 as f32; + } + DataType::F32 => { + let (slab_index, _) = self.slab_index_and_byte_offset(vertex_index, slab); + x = crate::bits::extract_f32(slab_index, 0, slab).0; + y = crate::bits::extract_f32(slab_index + 1, 0, slab).0; + z = crate::bits::extract_f32(slab_index + 2, 0, slab).0; + w = crate::bits::extract_f32(slab_index + 3, 0, slab).0; + } + } + match self.dimensions { + Dimensions::Scalar => glam::Vec4::new(x, 0.0, 0.0, 0.0), + Dimensions::Vec2 => glam::Vec4::new(x, y, 0.0, 0.0), + Dimensions::Vec3 => glam::Vec4::new(x, y, z, 0.0), + _ => glam::Vec4::new(x, y, z, w), + } + } + + pub fn get_uvec4(&self, vertex_index: usize, slab: &[u32]) -> glam::UVec4 { + let x; + let y; + let z; + let w; + match self.data_type { + DataType::I8 => { + let inc = self.inc_i8(vertex_index, slab); + let (ix, inc) = inc.extract(slab); + let (iy, inc) = inc.extract(slab); + let (iz, inc) = inc.extract(slab); + let (iw, _) = inc.extract(slab); + x = ix as u32; + y = iy as u32; + z = iz as u32; + w = iw as u32; + } + DataType::U8 => { + let inc = self.inc_u8(vertex_index, slab); + let (ix, inc) = inc.extract(slab); + let (iy, inc) = inc.extract(slab); + let (iz, inc) = inc.extract(slab); + let (iw, _) = inc.extract(slab); + x = ix; + y = iy; + z = iz; + w = iw; + } + DataType::I16 => { + let inc = self.inc_i16(vertex_index, slab); + let (ix, inc) = inc.extract(slab); + let (iy, inc) = inc.extract(slab); + let (iz, inc) = inc.extract(slab); + let (iw, _) = inc.extract(slab); + x = ix as u32; + y = iy as u32; + z = iz as u32; + w = iw as u32; + } + DataType::U16 => { + let inc = self.inc_u16(vertex_index, slab); + let (ix, inc) = inc.extract(slab); + let (iy, inc) = inc.extract(slab); + let (iz, inc) = inc.extract(slab); + let (iw, _) = inc.extract(slab); + x = ix; + y = iy; + z = iz; + w = iw; + } + DataType::U32 => { + let (slab_index, _) = self.slab_index_and_byte_offset(vertex_index, slab); + x = crate::bits::extract_u32(slab_index, 0, slab).0; + y = crate::bits::extract_u32(slab_index + 1, 0, slab).0; + z = crate::bits::extract_u32(slab_index + 2, 0, slab).0; + w = crate::bits::extract_u32(slab_index + 3, 0, slab).0; + } + DataType::F32 => { + let (slab_index, _) = self.slab_index_and_byte_offset(vertex_index, slab); + x = crate::bits::extract_f32(slab_index, 0, slab).0 as u32; + y = crate::bits::extract_f32(slab_index + 1, 0, slab).0 as u32; + z = crate::bits::extract_f32(slab_index + 2, 0, slab).0 as u32; + w = crate::bits::extract_f32(slab_index + 3, 0, slab).0 as u32; + } + } + match self.dimensions { + Dimensions::Scalar => glam::UVec4::new(x, 0, 0, 0), + Dimensions::Vec2 => glam::UVec4::new(x, y, 0, 0), + Dimensions::Vec3 => glam::UVec4::new(x, y, z, 0), + _ => glam::UVec4::new(x, y, z, w), + } + } +} + +#[cfg_attr(not(target_arch = "spirv"), derive(Debug))] #[derive(Default, Clone, Copy, Slabbed)] pub struct GltfPrimitive { + pub vertex_count: u32, pub material: Id, pub indices: Id, pub positions: Id, @@ -132,12 +613,116 @@ pub struct GltfPrimitive { pub weights: Id, } +impl GltfPrimitive { + pub fn get_vertex(&self, vertex_index: usize, slab: &[u32]) -> crate::stage::Vertex { + let index = if self.indices.is_some() { + let indices = slab.read(self.indices); + let index = indices.get_u32(vertex_index, slab); + index as usize + } else { + vertex_index + }; + crate::println!("index: {index:?}"); + + let position = if self.positions.is_none() { + Vec3::ZERO + } else { + let positions = slab.read(self.positions); + crate::println!("positions: {positions:?}"); + positions.get_vec3(index, slab) + }; + crate::println!("position: {position:?}"); + + let normal = if self.normals.is_none() { + Vec3::Z + } else { + let normals = slab.read(self.normals); + crate::println!("normals: {normals:?}"); + normals.get_vec3(index, slab) + }; + crate::println!("normal: {normal:?}"); + + let tangent = if self.tangents.is_none() { + Vec4::Y + } else { + let tangents = slab.read(self.tangents); + crate::println!("tangents: {tangents:?}"); + tangents.get_vec4(index, slab) + }; + crate::println!("tangent: {tangent:?}"); + + let color = if self.colors.is_none() { + Vec4::ONE + } else { + let colors = slab.read(self.colors); + crate::println!("colors: {colors:?}"); + colors.get_vec4(index, slab) + }; + crate::println!("color: {color:?}"); + + let tex_coords0 = if self.tex_coords0.is_none() { + Vec2::ZERO + } else { + let tex_coords0 = slab.read(self.tex_coords0); + crate::println!("tex_coords0: {tex_coords0:?}"); + tex_coords0.get_vec2(index, slab) + }; + crate::println!("tex_coords0: {tex_coords0:?}"); + + let tex_coords1 = if self.tex_coords1.is_none() { + Vec2::ZERO + } else { + let tex_coords1 = slab.read(self.tex_coords1); + crate::println!("tex_coords1: {tex_coords1:?}"); + tex_coords1.get_vec2(index, slab) + }; + crate::println!("tex_coords1: {tex_coords1:?}"); + + let uv = Vec4::new(tex_coords0.x, tex_coords0.y, tex_coords1.x, tex_coords1.y); + crate::println!("uv: {uv:?}"); + + let joints = if self.joints.is_none() { + [0; 4] + } else { + let joints = slab.read(self.joints); + crate::println!("joints: {joints:?}"); + let joints = joints.get_uvec4(index, slab); + crate::println!("joints: {joints:?}"); + [joints.x, joints.y, joints.z, joints.w] + }; + crate::println!("joints: {joints:?}"); + + let weights = if self.weights.is_none() { + [0.0; 4] + } else { + let weights = slab.read(self.weights); + crate::println!("weights: {weights:?}"); + let weights = weights.get_vec4(index, slab); + crate::println!("weights: {weights:?}"); + [weights.x, weights.y, weights.z, weights.w] + }; + crate::println!("weights: {weights:?}"); + + crate::stage::Vertex { + position: position.extend(0.0), + color, + uv, + normal: normal.extend(0.0), + tangent, + joints, + weights, + } + } +} + +#[cfg_attr(not(target_arch = "spirv"), derive(Debug))] #[derive(Default, Clone, Copy, Slabbed)] pub struct GltfMesh { pub primitives: Array, pub weights: Array, } +#[cfg_attr(not(target_arch = "spirv"), derive(Debug))] #[derive(Clone, Copy)] pub enum GltfCamera { Orthographic { @@ -444,6 +1029,7 @@ pub struct GltfScene { pub nodes: Array>, } +#[cfg_attr(not(target_arch = "spirv"), derive(Debug))] #[derive(Default, Clone, Copy, Slabbed)] pub struct GltfBufferView { pub buffer: Id, @@ -471,3 +1057,35 @@ pub struct GltfDocument { pub textures: Array, pub views: Array, } + +#[cfg(test)] +mod test { + use super::*; + + #[test] + fn indices_accessor_sanity() { + // Taken from the indices accessor in the "simple meshes" gltf sample, + // but with the buffer changed to match where we write it here. + let buffer_id = Id::new(20); + let accessor = GltfAccessor { + size: 2, + buffer: buffer_id, + view_offset: 0, + view_stride: 0, + count: 3, + data_type: DataType::U16, + dimensions: Dimensions::Scalar, + normalized: false, + }; + let buffer = GltfBuffer(Array::new(0, 11)); + let mut slab: [u32; 22] = [ + 65536, 2, 0, 0, 0, 1065353216, 0, 0, 0, 1065353216, 0, 0, 0, 1065353216, 0, 0, + 1065353216, 0, 0, 1065353216, 0, 0, + ]; + slab.write(&buffer, buffer_id.index()); + let i0 = accessor.get_u32(0, &slab); + let i1 = accessor.get_u32(1, &slab); + let i2 = accessor.get_u32(2, &slab); + assert_eq!([0, 1, 2], [i0, i1, i2]); + } +} diff --git a/crates/renderling-shader/src/lib.rs b/crates/renderling-shader/src/lib.rs index b83aa085..d15b73fa 100644 --- a/crates/renderling-shader/src/lib.rs +++ b/crates/renderling-shader/src/lib.rs @@ -25,6 +25,18 @@ pub mod tonemapping; pub mod tutorial; pub mod ui; +#[allow(unused_macros)] +macro_rules! println { + ($($arg:tt)*) => { + #[cfg(not(target_arch = "spirv"))] + { + std::println!($($arg)*); + } + } +} + +pub(crate) use println; + /// Additional methods for vector types. pub trait IsVector { /// Normalize or return zero. diff --git a/crates/renderling-shader/src/stage.rs b/crates/renderling-shader/src/stage.rs index f76d0e31..83817f4b 100644 --- a/crates/renderling-shader/src/stage.rs +++ b/crates/renderling-shader/src/stage.rs @@ -19,6 +19,7 @@ use crate::{ array::Array, bits::{bits, extract, insert}, debug::*, + gltf::{GltfMesh, GltfNode}, id::{Id, ID_NONE}, pbr::{self, PbrMaterial}, slab::{Slab, Slabbed}, @@ -136,18 +137,18 @@ impl Vertex { mat } - pub fn generate_normal(a: Vertex, b: Vertex, c: Vertex) -> Vec3 { - let ab = a.position.xyz() - b.position.xyz(); - let ac = a.position.xyz() - c.position.xyz(); + pub fn generate_normal(a: Vec3, b: Vec3, c: Vec3) -> Vec3 { + let ab = a - b; + let ac = a - c; ab.cross(ac).normalize() } - pub fn generate_tangent(a: Vertex, b: Vertex, c: Vertex) -> Vec4 { - let ab = b.position.xyz() - a.position.xyz(); - let ac = c.position.xyz() - a.position.xyz(); + pub fn generate_tangent(a: Vec3, a_uv: Vec2, b: Vec3, b_uv: Vec2, c: Vec3, c_uv: Vec2) -> Vec4 { + let ab = b - a; + let ac = c - a; let n = ab.cross(ac); - let d_uv1 = b.uv.xy() - a.uv.xy(); - let d_uv2 = c.uv.xy() - a.uv.xy(); + let d_uv1 = b_uv - a_uv; + let d_uv2 = c_uv - a_uv; let denom = d_uv1.x * d_uv2.y - d_uv2.x * d_uv1.y; let denom_sign = if denom >= 0.0 { 1.0 } else { -1.0 }; let denom = denom.abs().max(f32::EPSILON) * denom_sign; @@ -891,37 +892,145 @@ pub struct StageLegend { pub light_array: Array, } -/// A fully-computed unit of rendering, roughly meaning a mesh with model matrix -/// transformations. #[cfg_attr(not(target_arch = "spirv"), derive(Debug))] #[repr(C)] -#[derive(Clone, Copy, PartialEq, Slabbed)] -pub struct RenderUnit { +#[derive(Default, Clone, Copy, PartialEq, Slabbed)] +pub struct NativeVertexData { // Points to an array of `Vertex` in the stage's slab. pub vertices: Array, // Points to a `PbrMaterial` in the stage's slab. pub material: Id, - // Points to a `Camera` in the stage's slab. - pub camera: Id, +} - pub position: Vec3, +#[cfg_attr(not(target_arch = "spirv"), derive(Debug))] +#[repr(C)] +#[derive(Default, Clone, Copy, PartialEq, Slabbed)] +pub struct GltfVertexData { + // A path of node ids that leads to the node that contains the mesh. + pub parent_node_path: Array>, + // Points to a `GltfMesh` in the stage's slab. + pub mesh: Id, + // The index of the primitive within the mesh that this unit draws. + pub primitive_index: u32, +} + +#[repr(u32)] +#[cfg_attr(not(target_arch = "spirv"), derive(Debug))] +#[derive(Clone, Copy, PartialEq)] +pub enum VertexData { + Native(Id), + Gltf(Id), +} + +impl Default for VertexData { + fn default() -> Self { + VertexData::Native(Id::NONE) + } +} + +impl Slabbed for VertexData { + fn slab_size() -> usize { + 2 + } + + fn read_slab(&mut self, index: usize, slab: &[u32]) -> usize { + let mut proxy = 0u32; + let index = proxy.read_slab(index, slab); + match proxy { + 0 => { + let mut native = Id::default(); + let index = native.read_slab(index, slab); + *self = Self::Native(native); + index + } + 1 => { + let mut gltf = Id::default(); + let index = gltf.read_slab(index, slab); + *self = Self::Gltf(gltf); + index + } + _ => index, + } + } + + fn write_slab(&self, index: usize, slab: &mut [u32]) -> usize { + match self { + Self::Native(native) => { + let index = 0u32.write_slab(index, slab); + native.write_slab(index, slab) + } + Self::Gltf(gltf) => { + let index = 1u32.write_slab(index, slab); + gltf.write_slab(index, slab) + } + } + } +} + +#[cfg_attr(not(target_arch = "spirv"), derive(Debug))] +#[repr(C)] +#[derive(Clone, Copy, PartialEq, Slabbed)] +pub struct Transform { + pub translation: Vec3, pub rotation: Quat, pub scale: Vec3, } -impl Default for RenderUnit { +impl Default for Transform { fn default() -> Self { Self { - vertices: Default::default(), - material: Default::default(), - camera: Default::default(), - position: Vec3::ZERO, + translation: Vec3::ZERO, rotation: Quat::IDENTITY, scale: Vec3::ONE, } } } +/// A fully-computed unit of rendering, roughly meaning a mesh with model matrix +/// transformations. +#[cfg_attr(not(target_arch = "spirv"), derive(Debug))] +#[repr(C)] +#[derive(Default, Clone, Copy, PartialEq, Slabbed)] +pub struct RenderUnit { + pub vertex_data: VertexData, + // Points to a `Camera` in the stage's slab. + pub camera: Id, + // Points to a `Transform` in the stage's slab. + pub transform: Id, + // Number of vertices to draw for this unit. + pub vertex_count: u32, +} + +impl RenderUnit { + pub fn get_vertex_details( + &self, + vertex_index: u32, + slab: &[u32], + ) -> (Vertex, Transform, Id) { + let transform = slab.read(self.transform); + match self.vertex_data { + VertexData::Native(id) => { + let NativeVertexData { vertices, material } = slab.read(id); + let vertex = slab.read(vertices.at(vertex_index as usize)); + (vertex, transform, material) + } + VertexData::Gltf(id) => { + let GltfVertexData { + parent_node_path: _, + mesh, + primitive_index, + } = slab.read(id); + // TODO: check nodes for skinning + let mesh = slab.read(mesh); + let primitive = slab.read(mesh.primitives.at(primitive_index as usize)); + let material = primitive.material; + let vertex = primitive.get_vertex(vertex_index as usize, slab); + (vertex, transform, material) + } + } + } +} + #[spirv(vertex)] pub fn new_stage_vertex( // Which render unit are we rendering @@ -939,24 +1048,24 @@ pub fn new_stage_vertex( out_bitangent: &mut Vec3, // position of the vertex/fragment in world space out_pos: &mut Vec3, - #[spirv(position)] gl_pos: &mut Vec4, + #[spirv(position)] clip_pos: &mut Vec4, ) { let unit_id: Id = Id::from(instance_index); let unit = slab.read(unit_id); - let vertex = slab.read(unit.vertices.at(vertex_index as usize)); + let (vertex, tfrm, material) = unit.get_vertex_details(vertex_index, slab); let model_matrix = - Mat4::from_scale_rotation_translation(unit.scale, unit.rotation, unit.position); - *out_material = unit.material.into(); + Mat4::from_scale_rotation_translation(tfrm.scale, tfrm.rotation, tfrm.translation); + *out_material = material.into(); *out_color = vertex.color; *out_uv0 = vertex.uv.xy(); *out_uv1 = vertex.uv.zw(); - let scale2 = unit.scale * unit.scale; + let scale2 = tfrm.scale * tfrm.scale; let normal = vertex.normal.xyz().alt_norm_or_zero(); let tangent = vertex.tangent.xyz().alt_norm_or_zero(); - let normal_w = (model_matrix * (normal / scale2).extend(0.0)) + let normal_w: Vec3 = (model_matrix * (normal / scale2).extend(0.0)) .xyz() .alt_norm_or_zero(); - let tangent_w = (model_matrix * tangent.extend(0.0)) + let tangent_w: Vec3 = (model_matrix * tangent.extend(0.0)) .xyz() .alt_norm_or_zero(); let bitangent_w = normal_w.cross(tangent_w) * if vertex.tangent.w >= 0.0 { 1.0 } else { -1.0 }; @@ -967,7 +1076,7 @@ pub fn new_stage_vertex( *out_pos = view_pos.xyz(); let camera = slab.read(unit.camera); *out_camera = unit.camera.into(); - *gl_pos = camera.projection * camera.view * view_pos; + *clip_pos = camera.projection * camera.view * view_pos; } #[allow(clippy::too_many_arguments)] @@ -1278,6 +1387,23 @@ pub fn compute_cull_entities( draws[i] = call; } +#[spirv(compute(threads(32)))] +/// A shader to ensure that we can extract i8 and i16 values from a storage buffer. +pub fn test_i8_i16_extraction( + #[spirv(storage_buffer, descriptor_set = 0, binding = 0)] slab: &mut [u32], + #[spirv(global_invocation_id)] global_id: UVec3, +) { + let index = global_id.x as usize; + let (value, _, _) = crate::bits::extract_i8(index, 2, slab); + if value > 0 { + slab[index] = value as u32; + } + let (value, _, _) = crate::bits::extract_i16(index, 2, slab); + if value > 0 { + slab[index] = value as u32; + } +} + #[cfg(test)] mod test { use crate::{self as renderling_shader, id::Id, slab::Slab}; diff --git a/crates/renderling-shader/src/tutorial.rs b/crates/renderling-shader/src/tutorial.rs index 5bbe64cd..e3ddff8d 100644 --- a/crates/renderling-shader/src/tutorial.rs +++ b/crates/renderling-shader/src/tutorial.rs @@ -99,10 +99,9 @@ pub fn slabbed_render_unit( ) { let unit_id = Id::::from(instance_index); let unit = slab.read(unit_id); - let vertex_id = unit.vertices.at(vertex_index as usize); - let vertex = slab.read(vertex_id); + let (vertex, tfrm, _) = unit.get_vertex_details(vertex_index, slab); let camera = slab.read(unit.camera); - let model = Mat4::from_scale_rotation_translation(unit.scale, unit.rotation, unit.position); + let model = Mat4::from_scale_rotation_translation(tfrm.scale, tfrm.rotation, tfrm.translation); *clip_pos = camera.projection * camera.view * model * vertex.position.xyz().extend(1.0); *out_color = vertex.color; } diff --git a/crates/renderling/src/linkage/stage-new_stage_vertex.spv b/crates/renderling/src/linkage/stage-new_stage_vertex.spv index d98b0bd1aadd6dadeb1660bfa100b9d5aa800b0a..7b194d66a43d1708180a9203a7d077b24233c90f 100644 GIT binary patch literal 382464 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

F@uSY(voJSUjNHy1-=4i|=j6MY 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 literal 53732 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 diff --git a/crates/renderling/src/linkage/stage-stage_fragment.spv b/crates/renderling/src/linkage/stage-stage_fragment.spv index 03728627ecb690ad210c5c0f2a50e0e0b01ecded..e9c5b00ef03cde3eca000baf1cf0900e7a24ee99 100644 GIT binary patch literal 123296 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

0yZQOp*5R}63(;K%yEJlH#5!6{a`>?B|Hari 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 diff --git a/crates/renderling/src/linkage/stage-test_i8_i16_extraction.spv b/crates/renderling/src/linkage/stage-test_i8_i16_extraction.spv new file mode 100644 index 0000000000000000000000000000000000000000..d685467ffd6bc368ee37412b5e7a11048a22b8b8 GIT binary patch literal 2300 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 CU1yU3 literal 49068 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 diff --git a/crates/renderling/src/linkage/tutorial-slabbed_vertices.spv b/crates/renderling/src/linkage/tutorial-slabbed_vertices.spv index 880e361f098b8de20bd33456d643a0d85e3a2ac8..960ffb21675b433a8017723dce68b982cf84d626 100644 GIT binary patch literal 14696 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 E0bcmW#Q*>R literal 14696 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 { if gen_normals { - let n = Vertex::generate_normal(*a, *b, *c); + let n = Vertex::generate_normal( + a.position.xyz(), + b.position.xyz(), + c.position.xyz(), + ); a.normal = n.extend(a.normal.w); b.normal = n.extend(b.normal.w); c.normal = n.extend(c.normal.w); } if gen_tangents { - let tangent = Vertex::generate_tangent(*a, *b, *c); + let tangent = Vertex::generate_tangent( + a.position.xyz(), + a.uv.xy(), + b.position.xyz(), + b.uv.xy(), + c.position.xyz(), + c.uv.xy(), + ); debug_assert!(!tangent.w.is_nan(), "tangent is NaN"); a.tangent = tangent; b.tangent = tangent; @@ -1247,56 +1258,6 @@ mod test { img_diff::assert_img_eq("gltf_images.png", img); } - #[test] - // Ensures we can read a minimal gltf file with a simple triangle mesh. - fn minimal_mesh() { - let mut r = - Renderling::headless(20, 20).with_background_color(Vec3::splat(0.0).extend(1.0)); - let mut builder = r.new_scene(); - let _loader = builder - .gltf_load("../../gltf/gltfTutorial_003_MinimalGltfFile.gltf") - .unwrap(); - let projection = camera::perspective(20.0, 20.0); - let view = camera::look_at(Vec3::new(0.5, 0.5, 2.0), Vec3::new(0.5, 0.5, 0.0), Vec3::Y); - builder.set_camera(projection, view); - let scene = builder.build().unwrap(); - r.setup_render_graph(RenderGraphConfig { - scene: Some(scene), - with_screen_capture: true, - ..Default::default() - }); - - let img = r.render_image().unwrap(); - img_diff::assert_img_eq("gltf_minimal_mesh.png", img); - } - - #[test] - // ensures we can - // * read simple meshes - // * support multiple nodes that reference the same mesh - // * support primitives w/ positions and normal attributes - // * support transforming nodes (T * R * S) - fn simple_meshes() { - let mut r = - Renderling::headless(100, 50).with_background_color(Vec3::splat(0.0).extend(1.0)); - let mut builder = r.new_scene(); - let _loader = builder - .gltf_load("../../gltf/gltfTutorial_008_SimpleMeshes.gltf") - .unwrap(); - let projection = camera::perspective(100.0, 50.0); - let view = camera::look_at(Vec3::new(1.0, 0.5, 1.5), Vec3::new(1.0, 0.5, 0.0), Vec3::Y); - builder.set_camera(projection, view); - let scene = builder.build().unwrap(); - r.setup_render_graph(RenderGraphConfig { - scene: Some(scene), - with_screen_capture: true, - ..Default::default() - }); - - let img = r.render_image().unwrap(); - img_diff::assert_img_eq("gltf_simple_meshes.png", img); - } - #[test] fn simple_texture() { let size = 100; diff --git a/crates/renderling/src/slab.rs b/crates/renderling/src/slab.rs index 63c3c569..1a6aaa28 100644 --- a/crates/renderling/src/slab.rs +++ b/crates/renderling/src/slab.rs @@ -374,6 +374,8 @@ impl SlabBuffer { #[cfg(test)] mod test { + use renderling_shader::stage::{NativeVertexData, RenderUnit, Vertex, VertexData}; + use crate::Renderling; use super::*; @@ -426,4 +428,36 @@ mod test { let points_out = slab_u32.read_vec::(array); assert_eq!(points, points_out); } + + #[test] + fn slab_buffer_unit_roundtrip() { + let _ = env_logger::builder().is_test(true).try_init(); + let r = Renderling::headless(10, 10); + let device = r.get_device(); + let queue = r.get_queue(); + let slab = SlabBuffer::new(device, 2); + let vertices = vec![ + Vertex::default().with_position([0.0, 0.0, 0.0]), + Vertex::default().with_position([1.0, 1.0, 1.0]), + Vertex::default().with_position([2.0, 2.0, 2.0]), + ]; + let vertices = slab.append_array(device, queue, &vertices); + let data_id = slab.append( + device, + queue, + &NativeVertexData { + vertices, + material: Id::new(666), + }, + ); + let unit = RenderUnit { + vertex_data: VertexData::Native(data_id), + camera: Id::new(42), + transform: Id::new(1337), + vertex_count: vertices.len() as u32, + }; + let unit_id = slab.append(device, queue, &unit); + let t = futures_lite::future::block_on(slab.read(device, queue, unit_id)).unwrap(); + assert_eq!(unit, t, "read back what we wrote"); + } } diff --git a/crates/renderling/src/stage.rs b/crates/renderling/src/stage.rs index 7817d8c3..8348ddc7 100644 --- a/crates/renderling/src/stage.rs +++ b/crates/renderling/src/stage.rs @@ -81,7 +81,7 @@ impl Stage { /// Write an object to the slab. pub fn write(&self, id: Id, object: &T) -> Result<(), SlabError> { - let () = self.slab.write(&self.device, &self.queue, id, object)?; + self.slab.write(&self.device, &self.queue, id, object)?; Ok(()) } @@ -550,13 +550,12 @@ impl Stage { } } - /// Append the [`RenderUnit`] and return a [`DrawUnit`] that can be used - /// to draw it. + /// Draw the [`RenderUnit`] each frame, and immediately return its `Id`. pub fn draw_unit(&self, unit: &RenderUnit) -> Id { let id = self.slab.append(&self.device, &self.queue, unit); let draw = DrawUnit { id, - vertex_count: unit.vertices.len() as u32, + vertex_count: unit.vertex_count, }; // UNWRAP: if we can't acquire the lock we want to panic. let mut draws = self.draws.write().unwrap(); @@ -568,6 +567,25 @@ impl Stage { id } + /// Returns all the draw operations on the stage. + pub(crate) fn get_draws(&self) -> Vec { + // UNWRAP: if we can't acquire the lock we want to panic. + let draws = self.draws.read().unwrap(); + match draws.deref() { + StageDrawStrategy::Direct(units) => units.clone(), + } + } + + /// Erase the [`RenderUnit`] with the given `Id` from the stage. + pub fn erase_unit(&self, id: Id) { + let mut draws = self.draws.write().unwrap(); + match draws.deref_mut() { + StageDrawStrategy::Direct(units) => { + units.retain(|unit| unit.id != id); + } + } + } + /// Configure [`Renderling`] to render this stage. pub fn configure_graph(&self, r: &mut crate::Renderling, should_copy_frame_to_post: bool) { // set up the render graph @@ -610,6 +628,7 @@ impl Stage { } /// A unit of work to be drawn. +#[derive(Clone, Copy, Debug, Default)] pub(crate) struct DrawUnit { pub id: Id, pub vertex_count: u32, @@ -691,7 +710,7 @@ mod test { use crate::{ default_ortho2d, - shader::stage::{Camera, RenderUnit, Vertex}, + shader::stage::{Camera, NativeVertexData, RenderUnit, Vertex, VertexData}, slab::Slab, Renderling, }; @@ -728,9 +747,14 @@ mod test { let camera_id = stage.append(&camera); let vertices = stage.append_array(&right_tri_vertices()); println!("vertices: {vertices:?}"); + let vertex_data_id = stage.append(&NativeVertexData { + vertices, + ..Default::default() + }); let _ = stage.draw_unit(&RenderUnit { camera: camera_id, - vertices, + vertex_data: VertexData::Native(vertex_data_id), + vertex_count: 3, ..Default::default() }); let stage_slab = futures_lite::future::block_on(stage.slab.read_raw( diff --git a/crates/renderling/src/stage/gltf_support.rs b/crates/renderling/src/stage/gltf_support.rs index 1a37e173..a908e0b9 100644 --- a/crates/renderling/src/stage/gltf_support.rs +++ b/crates/renderling/src/stage/gltf_support.rs @@ -4,12 +4,13 @@ use crate::{ shader::{ gltf::*, pbr::PbrMaterial, - stage::LightingModel, + stage::{Camera, GltfVertexData, LightingModel, VertexData}, texture::{GpuTexture, TextureAddressMode, TextureModes}, }, SceneImage, }; -use glam::{Quat, Vec3, Vec4}; +use glam::{Quat, Vec2, Vec3, Vec4}; +use renderling_shader::stage::{Transform, Vertex}; use snafu::{OptionExt, ResultExt, Snafu}; #[derive(Debug, Snafu)] @@ -51,10 +52,66 @@ impl From for StageGltfError { } } +pub fn get_vertex_count(primitive: &gltf::Primitive<'_>) -> u32 { + if let Some(indices) = primitive.indices() { + let count = indices.count() as u32; + log::trace!(" has {count} indices"); + count + } else { + if let Some(positions) = primitive.get(&gltf::Semantic::Positions) { + let count = positions.count() as u32; + log::trace!(" has {count} positions"); + count + } else { + log::trace!(" has no indices nor positions"); + 0 + } + } +} + +pub fn make_accessor(accessor: gltf::Accessor<'_>, buffers: &Array) -> GltfAccessor { + let size = accessor.size() as u32; + let buffer_view = accessor.view().unwrap(); + let view_buffer = buffer_view.buffer(); + let buffer_index = view_buffer.index(); + let buffer = buffers.at(buffer_index); + let count = accessor.count() as u32; + let view_offset = buffer_view.offset() as u32; + let view_stride = buffer_view.stride().unwrap_or(0) as u32; + let component_type = match accessor.data_type() { + gltf::accessor::DataType::I8 => DataType::I8, + gltf::accessor::DataType::U8 => DataType::U8, + gltf::accessor::DataType::I16 => DataType::I16, + gltf::accessor::DataType::U16 => DataType::U16, + gltf::accessor::DataType::U32 => DataType::U32, + gltf::accessor::DataType::F32 => DataType::F32, + }; + let dimensions = match accessor.dimensions() { + gltf::accessor::Dimensions::Scalar => Dimensions::Scalar, + gltf::accessor::Dimensions::Vec2 => Dimensions::Vec2, + gltf::accessor::Dimensions::Vec3 => Dimensions::Vec3, + gltf::accessor::Dimensions::Vec4 => Dimensions::Vec4, + gltf::accessor::Dimensions::Mat2 => Dimensions::Mat2, + gltf::accessor::Dimensions::Mat3 => Dimensions::Mat3, + gltf::accessor::Dimensions::Mat4 => Dimensions::Mat4, + }; + let normalized = accessor.normalized(); + GltfAccessor { + size, + count, + buffer, + view_offset, + view_stride, + data_type: component_type, + dimensions, + normalized, + } +} + impl Stage { pub fn load_gltf_document( &self, - document: gltf::Document, + document: &gltf::Document, buffer_data: Vec, images: Vec, ) -> Result { @@ -69,64 +126,28 @@ impl Stage { log::trace!("Loading views into the GPU"); let views = self.allocate_array(document.views().len()); - for view in document.views() { + log::trace!(" reserved array: {views:?}"); + for (i, view) in document.views().enumerate() { let buffer = buffers.at(view.buffer().index()); let offset = view.offset() as u32; let length = view.length() as u32; let stride = view.stride().unwrap_or_default() as u32; - self.write( - views.at(view.index()), - &GltfBufferView { - buffer, - offset, - length, - stride, - }, - )?; + let id = views.at(view.index()); + let gltf_view = GltfBufferView { + buffer, + offset, + length, + stride, + }; + log::trace!(" view {i} id: {id:#?}"); + log::trace!(" writing view: {gltf_view:#?}"); + self.write(id, &gltf_view)?; } log::trace!("Loading accessors into the GPU"); let accessors = document .accessors() - .map(|accessor| { - let size = accessor.size() as u32; - let buffer_view = accessor.view().unwrap(); - let view_buffer = buffer_view.buffer(); - let buffer_index = view_buffer.index(); - let buffer = buffers.at(buffer_index); - let count = accessor.count() as u32; - let view_offset = buffer_view.offset() as u32; - let view_stride = buffer_view.stride().unwrap_or(0) as u32; - let component_type = match accessor.data_type() { - gltf::accessor::DataType::I8 => DataType::I8, - gltf::accessor::DataType::U8 => DataType::U8, - gltf::accessor::DataType::I16 => DataType::I16, - gltf::accessor::DataType::U16 => DataType::U16, - gltf::accessor::DataType::U32 => DataType::U32, - gltf::accessor::DataType::F32 => DataType::F32, - }; - let dimensions = match accessor.dimensions() { - gltf::accessor::Dimensions::Scalar => Dimensions::Scalar, - gltf::accessor::Dimensions::Vec2 => Dimensions::Vec2, - gltf::accessor::Dimensions::Vec3 => Dimensions::Vec3, - gltf::accessor::Dimensions::Vec4 => Dimensions::Vec4, - gltf::accessor::Dimensions::Mat2 => Dimensions::Mat2, - gltf::accessor::Dimensions::Mat3 => Dimensions::Mat3, - gltf::accessor::Dimensions::Mat4 => Dimensions::Mat4, - }; - let normalized = accessor.normalized(); - let accessor = GltfAccessor { - size, - count, - buffer, - view_offset, - view_stride, - component_type, - dimensions, - normalized, - }; - accessor - }) + .map(|accessor| make_accessor(accessor, &buffers)) .collect::>(); let accessors = self.append_array(&accessors); @@ -370,12 +391,22 @@ impl Stage { *atlas = new_atlas; } + fn log_accessor(gltf_accessor: gltf::Accessor<'_>) { + log::trace!(" count: {}", gltf_accessor.count()); + log::trace!(" size: {}", gltf_accessor.size()); + log::trace!(" data_type: {:?}", gltf_accessor.data_type()); + log::trace!(" dimensions: {:?}", gltf_accessor.dimensions()); + } log::trace!("Loading meshes"); let meshes = self.allocate_array::(document.meshes().len()); + log::trace!(" reserved array: {meshes:#?}"); for mesh in document.meshes() { let primitives = self.allocate_array::(mesh.primitives().len()); + log::trace!(" reserved array: {primitives:#?}"); for (j, primitive) in mesh.primitives().enumerate() { + log::trace!(" primitive {j}"); debug_assert_eq!(j, primitive.index()); + let vertex_count = get_vertex_count(&primitive); let material = primitive .material() .index() @@ -383,56 +414,223 @@ impl Stage { .unwrap_or(Id::NONE); let indices = primitive .indices() - .map(|acc| accessors.at(acc.index())) + .map(|acc| { + let gltf_accessor = document.accessors().nth(acc.index()).unwrap(); + log::trace!(" indices:"); + log_accessor(gltf_accessor); + accessors.at(acc.index()) + }) .unwrap_or_default(); let positions = primitive .get(&gltf::Semantic::Positions) - .map(|acc| accessors.at(acc.index())) + .map(|acc| { + let gltf_accessor = document.accessors().nth(acc.index()).unwrap(); + log::trace!(" positions:"); + log_accessor(gltf_accessor); + accessors.at(acc.index()) + }) .unwrap_or_default(); + + // We may need the positions and uvs in-memory if we need + // to generate normals or tangents, so we'll keep them in + // a vec, if necessary, and access them through a function. + let mut position_vec: Option> = None; + fn get_positions<'a>( + buffer_data: &[gltf::buffer::Data], + primitive: &gltf::Primitive<'_>, + position_vec: &'a mut Option>, + ) -> &'a Vec { + if position_vec.is_none() { + let reader = primitive.reader(|buffer| { + let data = buffer_data.get(buffer.index())?; + Some(data.0.as_slice()) + }); + let positions = reader + .read_positions() + .map(|ps| ps.map(Vec3::from).collect::>()) + .unwrap_or_default(); + *position_vec = Some(positions); + } + // UNWRAP: safe because we just set it to `Some` if previously `None` + position_vec.as_ref().unwrap() + } + + let mut positions_and_uv_vec: Option> = None; + fn get_uvs<'a>( + buffer_data: &[gltf::buffer::Data], + primitive: &gltf::Primitive<'_>, + positions: &'a mut Option>, + positions_and_uv_vec: &'a mut Option>, + ) -> &'a Vec<(Vec3, Vec2)> { + // ensures we have position + if positions_and_uv_vec.is_none() { + let positions = get_positions(buffer_data, primitive, positions); + let reader = primitive.reader(|buffer| { + let data = buffer_data.get(buffer.index())?; + Some(data.0.as_slice()) + }); + let puvs: Vec<(Vec3, Vec2)> = reader + .read_tex_coords(0) + .map(|uvs| { + positions + .iter() + .copied() + .zip(uvs.into_f32().map(Vec2::from)) + .collect() + }) + .unwrap_or_else(|| { + positions + .iter() + .copied() + .zip(std::iter::repeat(Vec2::ZERO)) + .collect() + }); + *positions_and_uv_vec = Some(puvs); + } + // UNWRAP: safe because we just set it to `Some` + positions_and_uv_vec.as_ref().unwrap() + } + let normals = primitive .get(&gltf::Semantic::Normals) - .map(|acc| accessors.at(acc.index())) - .unwrap_or_default(); + .map(|acc| { + let gltf_accessor = document.accessors().nth(acc.index()).unwrap(); + log::trace!(" normals:"); + log_accessor(gltf_accessor); + accessors.at(acc.index()) + }) + .unwrap_or_else(|| { + log::trace!(" generating normals"); + // Generate the normals + let normals = get_positions(&buffer_data, &primitive, &mut position_vec) + .chunks(3) + .flat_map(|chunk| match chunk { + [a, b, c] => { + let n = Vertex::generate_normal(*a, *b, *c); + [n, n, n] + } + _ => panic!("not triangles!"), + }) + .collect::>(); + let normals_array = self.append_array(&normals); + let buffer = GltfBuffer(normals_array.into_u32_array()); + let buffer_id = self.append(&buffer); + let accessor = GltfAccessor { + size: 12, + buffer: buffer_id, + view_offset: 0, + view_stride: 12, + count: normals.len() as u32, + data_type: DataType::F32, + dimensions: Dimensions::Vec3, + normalized: true, + }; + self.append(&accessor) + }); let tangents = primitive .get(&gltf::Semantic::Tangents) - .map(|acc| accessors.at(acc.index())) - .unwrap_or_default(); + .map(|acc| { + let gltf_accessor = document.accessors().nth(acc.index()).unwrap(); + log::trace!(" tangents:"); + log_accessor(gltf_accessor); + accessors.at(acc.index()) + }) + .unwrap_or_else(|| { + log::trace!(" generating tangents"); + let p_uvs = get_uvs( + &buffer_data, + &primitive, + &mut position_vec, + &mut positions_and_uv_vec, + ); + let tangents = p_uvs + .chunks(3) + .flat_map(|chunk| match chunk { + [(a, a_uv), (b, b_uv), (c, c_uv)] => { + let t = + Vertex::generate_tangent(*a, *a_uv, *b, *b_uv, *c, *c_uv); + [t, t, t] + } + _ => panic!("not triangles!"), + }) + .collect::>(); + let tangents_array = self.append_array(&tangents); + let buffer = GltfBuffer(tangents_array.into_u32_array()); + let buffer_id = self.append(&buffer); + let accessor = GltfAccessor { + size: 12, + buffer: buffer_id, + view_offset: 0, + view_stride: 12, + count: tangents.len() as u32, + data_type: DataType::F32, + dimensions: Dimensions::Vec3, + normalized: true, + }; + self.append(&accessor) + }); let colors = primitive .get(&gltf::Semantic::Colors(0)) - .map(|acc| accessors.at(acc.index())) + .map(|acc| { + let gltf_accessor = document.accessors().nth(acc.index()).unwrap(); + log::trace!(" colors:"); + log_accessor(gltf_accessor); + accessors.at(acc.index()) + }) .unwrap_or_default(); let tex_coords0 = primitive .get(&gltf::Semantic::TexCoords(0)) - .map(|acc| accessors.at(acc.index())) + .map(|acc| { + let gltf_accessor = document.accessors().nth(acc.index()).unwrap(); + log::trace!(" tex_coords0:"); + log_accessor(gltf_accessor); + accessors.at(acc.index()) + }) .unwrap_or_default(); let tex_coords1 = primitive .get(&gltf::Semantic::TexCoords(1)) - .map(|acc| accessors.at(acc.index())) + .map(|acc| { + let gltf_accessor = document.accessors().nth(acc.index()).unwrap(); + log::trace!(" tex_coords1:"); + log_accessor(gltf_accessor); + accessors.at(acc.index()) + }) .unwrap_or_default(); let joints = primitive .get(&gltf::Semantic::Joints(0)) - .map(|acc| accessors.at(acc.index())) + .map(|acc| { + let gltf_accessor = document.accessors().nth(acc.index()).unwrap(); + log::trace!(" joints:"); + log_accessor(gltf_accessor); + accessors.at(acc.index()) + }) .unwrap_or_default(); let weights = primitive .get(&gltf::Semantic::Weights(0)) - .map(|acc| accessors.at(acc.index())) + .map(|acc| { + let gltf_accessor = document.accessors().nth(acc.index()).unwrap(); + log::trace!(" weights:"); + log_accessor(gltf_accessor); + accessors.at(acc.index()) + }) .unwrap_or_default(); - self.write( - primitives.at(primitive.index()), - &GltfPrimitive { - material, - indices, - positions, - normals, - tangents, - colors, - tex_coords0, - tex_coords1, - joints, - weights, - }, - )?; + let id = primitives.at(primitive.index()); + let prim = GltfPrimitive { + vertex_count: vertex_count as u32, + material, + indices, + positions, + normals, + tangents, + colors, + tex_coords0, + tex_coords1, + joints, + weights, + }; + log::trace!(" writing primitive {id:?}:\n{prim:#?}"); + self.write(id, &prim)?; } let weights = mesh.weights().unwrap_or(&[]); let weights = self.append_array(weights); @@ -646,27 +844,332 @@ impl Stage { views, }) } + + // For now we have to keep the original document around to figure out + // what to draw. + fn draw_gltf_node_with<'a>( + &self, + gpu_doc: &GltfDocument, + camera_id: Id, + node: gltf::Node<'a>, + parents: Vec>, + ) -> Vec> { + let mut units = if let Some(mesh) = node.mesh() { + let primitives = mesh.primitives(); + let mesh = gpu_doc.meshes.at(mesh.index()); + primitives + .map(|primitive| { + let parent_node_path = self.append_array(&parents); + let vertex_data_id = self.append(&GltfVertexData { + parent_node_path, + mesh, + primitive_index: primitive.index() as u32, + }); + let (t, r, s) = node.transform().decomposed(); + let transform = self.append(&Transform { + translation: Vec3::from(t), + rotation: Quat::from_array(r), + scale: Vec3::from(s), + }); + let render_unit = RenderUnit { + vertex_data: VertexData::Gltf(vertex_data_id), + vertex_count: super::get_vertex_count(&primitive), + transform, + camera: camera_id, + }; + self.draw_unit(&render_unit) + }) + .collect::>() + } else { + vec![] + }; + for child in node.children() { + let mut parents = parents.clone(); + parents.push(gpu_doc.nodes.at(child.index())); + units.extend(self.draw_gltf_node_with(gpu_doc, camera_id, child, parents)); + } + units + } + + /// Draw the given [`gltf::Node`] using the given [`Camera`] and return the ids of the + /// render units that were created. + pub fn draw_gltf_node( + &self, + gpu_doc: &GltfDocument, + camera_id: Id, + node: gltf::Node<'_>, + ) -> Vec> { + self.draw_gltf_node_with(gpu_doc, camera_id, node, vec![]) + } + + /// Draw the given [`gltf::Scene`] using the given [`Camera`] and return the ids of the + /// render units that were created. + pub fn draw_gltf_scene( + &self, + gpu_doc: &GltfDocument, + camera_id: Id, + scene: gltf::Scene<'_>, + ) -> Vec> { + scene + .nodes() + .flat_map(|node| self.draw_gltf_node(gpu_doc, camera_id, node)) + .collect() + } } #[cfg(test)] mod test { - use glam::Vec3; + use glam::{Vec2, Vec3, Vec4}; + + use crate::{ + shader::{ + array::Array, + gltf::*, + slab::Slab, + stage::{Camera, RenderUnit}, + }, + DrawUnit, Id, Renderling, Stage, + }; - use crate::{Renderling, Stage}; + #[test] + fn get_vertex_count_primitive_sanity() { + let (document, _, _) = + gltf::import("../../gltf/gltfTutorial_008_SimpleMeshes.gltf").unwrap(); + let prim = document + .meshes() + .next() + .unwrap() + .primitives() + .next() + .unwrap(); + let vertex_count = super::get_vertex_count(&prim); + assert_eq!(3, vertex_count); + } #[test] - fn stage_normal_mapping_brick_sphere() { - crate::init_logging(); - let size = 600; + fn accessor_sanity() { + println!("{:08b}", 1u8); + println!("{:08b}", 1i8); + println!("{:08b}", -1i8); + println!("{} {}", u8::MAX, i8::MAX); + let u16buffer = [1u16, 1u16, 1u16, 1u16]; + for chunk in u16buffer.chunks(2) { + match chunk { + [a, b] => { + println!("{a:016b} {b:016b}"); + } + _ => panic!("bad chunk"), + } + } + let u32buffer = bytemuck::cast_slice::(&u16buffer).to_vec(); // + for u in u32buffer.iter() { + println!("{u:032b}"); + } + println!("u32buffer: {u32buffer:?}"); + assert_eq!(2, u32buffer.len()); + let mut data = [0u32; 256]; + let buffer_index = data.write_slice(&u32buffer, 0); + assert_eq!(2, buffer_index); + let buffer = GltfBuffer(Array::new(0, buffer_index as u32)); + let _ = data.write(&buffer, buffer_index); + let accessor = GltfAccessor { + size: 2, + count: 3, + buffer: Id::from(buffer_index), + view_offset: 0, + view_stride: 0, + data_type: DataType::U16, + dimensions: Dimensions::Scalar, + normalized: false, + }; + let i0 = accessor.get_u32(0, &data); + assert_eq!(1, i0); + let i1 = accessor.get_u32(1, &data); + assert_eq!(1, i1); + let i2 = accessor.get_u32(2, &data); + assert_eq!(1, i2); + } + + #[test] + // ensures we can + // * read simple meshes + // * support multiple nodes that reference the same mesh + // * support primitives w/ positions and normal attributes + // * support transforming nodes (T * R * S) + fn stage_gltf_simple_meshes() { let mut r = - Renderling::headless(size, size).with_background_color(Vec3::splat(1.0).extend(1.0)); + Renderling::headless(100, 50).with_background_color(Vec3::splat(0.0).extend(1.0)); let (device, queue) = r.get_device_and_queue_owned(); - let stage = Stage::new(device, queue); + let (document, buffers, images) = + gltf::import("../../gltf/gltfTutorial_008_SimpleMeshes.gltf").unwrap(); + let projection = crate::camera::perspective(100.0, 50.0); + let position = Vec3::new(1.0, 0.5, 1.5); + let view = crate::camera::look_at(position, Vec3::new(1.0, 0.5, 0.0), Vec3::Y); + let stage = Stage::new(device.clone(), queue.clone()).with_lighting(false); stage.configure_graph(&mut r, true); + let gpu_doc = stage + .load_gltf_document(&document, buffers.clone(), images) + .unwrap(); + let camera = Camera { + projection, + view, + position, + }; + let camera_id = stage.append(&camera); + + let default_scene = document.default_scene().unwrap(); + let unit_ids = stage.draw_gltf_scene(&gpu_doc, camera_id, default_scene); + assert_eq!(2, unit_ids.len()); + + let data = futures_lite::future::block_on(stage.slab.read_raw( + &device, + &queue, + 0, + stage.slab.len(), + )) + .unwrap(); + + #[allow(unused)] + #[derive(Debug, Default)] + struct VertexInvocation { + draw: DrawUnit, + instance_index: u32, + vertex_index: u32, + render_unit_id: Id, + render_unit: RenderUnit, + out_camera: u32, + out_material: u32, + out_color: Vec4, + out_uv0: Vec2, + out_uv1: Vec2, + out_norm: Vec3, + out_tangent: Vec3, + out_bitangent: Vec3, + out_pos: Vec3, + clip_pos: Vec4, + } + + let draws = stage.get_draws(); + let slab = &data; + + for i in 0..gpu_doc.accessors.len() { + let accessor = slab.read(gpu_doc.accessors.at(i)); + println!("accessor {i}: {accessor:#?}", i = i, accessor = accessor); + let buffer = slab.read(accessor.buffer); + println!("buffer: {buffer:#?}"); + let buffer_data = slab.read_vec(buffer.0); + println!("buffer_data: {buffer_data:#?}"); + } + + let indices = draws + .iter() + .map(|draw| { + let unit_id = draw.id; + let unit = slab.read(unit_id); + let vertex_data_id = match unit.vertex_data { + renderling_shader::stage::VertexData::Native(_) => panic!("should be gltf"), + renderling_shader::stage::VertexData::Gltf(id) => id, + }; + let vertex_data = slab.read(vertex_data_id); + let mesh = slab.read(vertex_data.mesh); + let primitive_id = mesh.primitives.at(vertex_data.primitive_index as usize); + let primitive = slab.read(primitive_id); + if primitive.indices.is_some() { + let indices_accessor = slab.read(primitive.indices); + (0..draw.vertex_count) + .map(|i| { + let index = indices_accessor.get_u32(i as usize, slab); + index + }) + .collect::>() + } else { + (0..draw.vertex_count).collect::>() + } + }) + .collect::>(); + assert_eq!([0, 1, 2], indices[0].as_slice()); + assert_eq!([0, 1, 2], indices[1].as_slice()); + + let invocations = draws + .into_iter() + .flat_map(|draw| { + let render_unit_id = draw.id; + let instance_index = render_unit_id.inner(); + let render_unit = data.read(render_unit_id); + let data = &data; + (0..draw.vertex_count).map(move |vertex_index| { + let mut invocation = VertexInvocation { + draw, + render_unit_id, + render_unit, + instance_index, + vertex_index, + ..Default::default() + }; + renderling_shader::stage::new_stage_vertex( + instance_index, + vertex_index, + data, + &mut invocation.out_camera, + &mut invocation.out_material, + &mut invocation.out_color, + &mut invocation.out_uv0, + &mut invocation.out_uv1, + &mut invocation.out_norm, + &mut invocation.out_tangent, + &mut invocation.out_bitangent, + &mut invocation.out_pos, + &mut invocation.clip_pos, + ); + invocation + }) + }) + .collect::>(); + let seen_positions = invocations + .iter() + .map(|inv| inv.out_pos) + .take(3) + .collect::>(); + let mesh = document.meshes().next().unwrap(); + let prim = mesh.primitives().next().unwrap(); + let expected_positions_reader = prim.reader(|buffer| Some(&buffers[buffer.index()])); + let expected_positions = expected_positions_reader + .read_positions() + .unwrap() + .map(|pos| Vec3::from(pos)) + .collect::>(); + assert_eq!(expected_positions, seen_positions); + + let img = r.render_image().unwrap(); + img_diff::assert_img_eq("gltf_simple_meshes.png", img); + } + + #[test] + // Ensures we can read a minimal gltf file with a simple triangle mesh. + fn minimal_mesh() { + let mut r = + Renderling::headless(20, 20).with_background_color(Vec3::splat(0.0).extend(1.0)); + let (device, queue) = r.get_device_and_queue_owned(); + let stage = Stage::new(device, queue).with_lighting(false); + stage.configure_graph(&mut r, true); + let (document, buffers, images) = + gltf::import("../../gltf/gltfTutorial_003_MinimalGltfFile.gltf").unwrap(); + let gpu_doc = stage + .load_gltf_document(&document, buffers, images) + .unwrap(); + let projection = crate::camera::perspective(20.0, 20.0); + let eye = Vec3::new(0.5, 0.5, 2.0); + let view = crate::camera::look_at(eye, Vec3::new(0.5, 0.5, 0.0), Vec3::Y); + let camera = Camera { + projection, + view, + position: Vec3::new(0.5, 0.5, 2.0), + }; + let camera_id = stage.append(&camera); + let default_scene = document.default_scene().unwrap(); + let _unit_ids = stage.draw_gltf_scene(&gpu_doc, camera_id, default_scene); - log::trace!("Reading gltf"); - let (document, buffers, images) = gltf::import("../../gltf/red_brick_03_1k.glb").unwrap(); - log::trace!("Loading gltf"); - let _doc = stage.load_gltf_document(document, buffers, images).unwrap(); + let img = r.render_image().unwrap(); + img_diff::assert_img_eq("gltf_minimal_mesh.png", img); } } diff --git a/crates/renderling/src/tutorial.rs b/crates/renderling/src/tutorial.rs index 1cbf8239..61bbfb73 100644 --- a/crates/renderling/src/tutorial.rs +++ b/crates/renderling/src/tutorial.rs @@ -2,7 +2,8 @@ #[cfg(test)] mod test { - use glam::{Vec3, Vec4}; + use glam::{Mat4, Quat, Vec3, Vec4}; + use renderling_shader::slab::Slab; use crate::{ frame::FrameTextureView, @@ -10,7 +11,7 @@ mod test { shader::{ array::Array, id::Id, - stage::{Camera, RenderUnit, Vertex}, + stage::{Camera, NativeVertexData, RenderUnit, Transform, Vertex, VertexData}, }, DepthTexture, Device, Queue, Renderling, }; @@ -520,14 +521,32 @@ mod test { }, ]; let vertices = slab.append_array(&device, &queue, &geometry); + let vertex_data_id = slab.append( + &device, + &queue, + &NativeVertexData { + vertices, + ..Default::default() + }, + ); let unit = RenderUnit { - vertices, + vertex_data: VertexData::Native(vertex_data_id), ..Default::default() }; let unit_id = slab.append(&device, &queue, &unit); + let data = + futures_lite::future::block_on(slab.read_raw(&device, &queue, 0, slab.len())).unwrap(); + let (vertex, t, _) = unit.get_vertex_details(0, &data); + assert_eq!(geometry[0], vertex); + assert_eq!(Vec3::ZERO, t.translation); + assert_eq!(Quat::IDENTITY, t.rotation); + assert_eq!(Vec3::ONE, t.scale); + let camera = data.read(unit.camera); + assert_eq!(Mat4::IDENTITY, camera.projection); + assert_eq!(Mat4::IDENTITY, camera.view); // Create a bindgroup for the slab so our shader can read out the types. - let label = Some("slabbed isosceles triangle"); + let label = Some("slabbed render unit"); let bindgroup_layout = device.create_bind_group_layout(&wgpu::BindGroupLayoutDescriptor { label, entries: &[wgpu::BindGroupLayoutEntry { @@ -605,14 +624,14 @@ mod test { pipeline: wgpu::RenderPipeline, bindgroup: wgpu::BindGroup, unit_id: Id, - unit: RenderUnit, + unit_vertex_count: u32, } let app = App { pipeline, bindgroup, unit_id, - unit, + unit_vertex_count: vertices.len() as u32, }; r.graph.add_resource(app); @@ -651,7 +670,7 @@ mod test { render_pass.set_pipeline(&app.pipeline); render_pass.set_bind_group(0, &app.bindgroup, &[]); render_pass.draw( - 0..app.unit.vertices.len() as u32, + 0..app.unit_vertex_count, app.unit_id.inner()..app.unit_id.inner() + 1, ); } @@ -723,12 +742,28 @@ mod test { ..Default::default() }, ); + let transform_id = slab.append( + &device, + &queue, + &Transform { + translation: Vec3::new(50.0, 50.0, 0.0), + scale: Vec3::new(50.0, 50.0, 1.0), + ..Default::default() + }, + ); + let vertex_data_id = slab.append( + &device, + &queue, + &NativeVertexData { + vertices, + ..Default::default() + }, + ); let unit = RenderUnit { - vertices, + vertex_data: renderling_shader::stage::VertexData::Native(vertex_data_id), camera: camera_id, - position: Vec3::new(50.0, 50.0, 0.0), - scale: Vec3::new(50.0, 50.0, 1.0), - ..Default::default() + transform: transform_id, + vertex_count: vertices.len() as u32, }; let unit_id = slab.append(&device, &queue, &unit); @@ -811,14 +846,14 @@ mod test { pipeline: wgpu::RenderPipeline, bindgroup: wgpu::BindGroup, unit_id: Id, - unit: RenderUnit, + unit_vertex_count: u32, } let app = App { pipeline, bindgroup, unit_id, - unit, + unit_vertex_count: vertices.len() as u32, }; r.graph.add_resource(app); @@ -857,7 +892,7 @@ mod test { render_pass.set_pipeline(&app.pipeline); render_pass.set_bind_group(0, &app.bindgroup, &[]); render_pass.draw( - 0..app.unit.vertices.len() as u32, + 0..app.unit_vertex_count, app.unit_id.inner()..app.unit_id.inner() + 1, ); }