#[derive(Clone, Copy, Debug)]
pub struct OpaqueTargetDesc {
pub color_format: wgpu::TextureFormat,
pub depth_format: wgpu::TextureFormat,
pub sample_count: u32,
}
#[derive(Clone, Copy, Debug)]
pub struct OitTargetDesc {
pub accum_format: wgpu::TextureFormat,
pub reveal_format: wgpu::TextureFormat,
pub depth_format: wgpu::TextureFormat,
pub accum_blend: wgpu::BlendState,
pub reveal_blend: wgpu::BlendState,
pub sample_count: u32,
}
#[derive(Clone, Copy, Debug)]
pub struct MaskTargetDesc {
pub color_format: wgpu::TextureFormat,
pub depth_format: wgpu::TextureFormat,
pub sample_count: u32,
}
#[derive(Clone, Copy, Debug)]
pub struct PickTargetDesc {
pub color_format: wgpu::TextureFormat,
pub depth_format: wgpu::TextureFormat,
pub sample_count: u32,
}
#[derive(Clone, Copy, Debug)]
pub struct ShadowTargetDesc {
pub depth_format: wgpu::TextureFormat,
pub sample_count: u32,
}
pub const OIT_ACCUM_BLEND: wgpu::BlendState = wgpu::BlendState {
color: wgpu::BlendComponent {
src_factor: wgpu::BlendFactor::One,
dst_factor: wgpu::BlendFactor::One,
operation: wgpu::BlendOperation::Add,
},
alpha: wgpu::BlendComponent {
src_factor: wgpu::BlendFactor::One,
dst_factor: wgpu::BlendFactor::One,
operation: wgpu::BlendOperation::Add,
},
};
pub const OIT_REVEAL_BLEND: wgpu::BlendState = wgpu::BlendState {
color: wgpu::BlendComponent {
src_factor: wgpu::BlendFactor::Zero,
dst_factor: wgpu::BlendFactor::OneMinusSrc,
operation: wgpu::BlendOperation::Add,
},
alpha: wgpu::BlendComponent {
src_factor: wgpu::BlendFactor::Zero,
dst_factor: wgpu::BlendFactor::OneMinusSrc,
operation: wgpu::BlendOperation::Add,
},
};