EN-001 — compile a material that opts into the standard per-instance vertex layout (Opaque profile + Opaque bucket + wants_instancing). Pair with `create_instance_buffer` + `submit_material_draw_instanced`. The game shader's VertexInput must declare the instance attribute locations (see `material_abi.wgsl` for the layout).
(
&mut self, wgsl_source: &str,
)
| 13184 | /// The game shader's VertexInput must declare the instance attribute |
| 13185 | /// locations (see `material_abi.wgsl` for the layout). |
| 13186 | pub fn compile_material_instanced( |
| 13187 | &mut self, wgsl_source: &str, |
| 13188 | ) -> Result<material_system::MaterialHandle, material_pipeline::MaterialCompileError> { |
| 13189 | self.material_system.compile( |
| 13190 | &self.device, |
| 13191 | wgsl_source, |
| 13192 | material_pipeline::FragmentProfile::Opaque, |
| 13193 | material_pipeline::Bucket::Opaque, |
| 13194 | false, |
| 13195 | true, // wants_instancing |
| 13196 | formats::HDR_FORMAT, |
| 13197 | formats::MATERIAL_FORMAT, |
| 13198 | formats::VELOCITY_FORMAT, |
| 13199 | wgpu::TextureFormat::Rgba8Unorm, |
| 13200 | formats::DEPTH_FORMAT, |
| 13201 | ) |
| 13202 | } |
| 13203 | |
| 13204 | /// EN-001 — upload a CPU-side per-instance buffer to GPU memory. |
| 13205 | /// `raw` is laid out as 9 floats per instance (pos.xyz, rot_y, |
no test coverage detected