begin instancing work

This commit is contained in:
Carter Anderson 2020-03-14 12:58:22 -07:00
parent 56e79d5225
commit 63f40589e3
5 changed files with 10 additions and 8 deletions

View file

@ -157,10 +157,13 @@ fn create_person(world: &mut World, mesh_handle: Handle<Mesh>, translation: Tran
Velocity {
value: math::vec3(0.0, 0.0, 0.0),
},
Instanced,
StandardMaterial {
albedo: (math::vec4(0.5, 0.3, 0.3, 1.0) * random::<f32>()).into(),
},
Renderable {
instanced: true,
..Default::default()
},
mesh_handle,
LocalToWorld::identity(),
translation,

View file

@ -9,8 +9,7 @@ pub use crate::{
pipeline::PipelineDescriptor,
render_resource::{resource_name, resource_providers::UniformResourceProvider},
shader::{uniforms::StandardMaterial, Shader, ShaderDefSuffixProvider, ShaderStage},
texture::{Texture, TextureType},
ActiveCamera, ActiveCamera2d, Camera, CameraType, Color, ColorSource, Instanced, Light,
ActiveCamera, ActiveCamera2d, Camera, CameraType, Color, ColorSource, Light,
Renderable,
},
ui::{Anchors, Margins, Node},

View file

@ -7,7 +7,7 @@ use crate::{
pipeline::PipelineDescriptor,
render_resource::{resource_name, ResourceInfo},
renderer::RenderPass,
Instanced, Renderable,
Renderable,
},
};
@ -25,7 +25,7 @@ impl DrawTarget for MeshesDrawTarget {
let mut current_mesh_handle = None;
let mut current_mesh_index_len = 0;
let mesh_query =
<(Read<Handle<Mesh>>, Read<Renderable>)>::query().filter(!component::<Instanced>());
<(Read<Handle<Mesh>>, Read<Renderable>)>::query();
for (entity, (mesh, renderable)) in mesh_query.iter_entities(world) {
if !renderable.is_visible {

View file

@ -20,6 +20,4 @@ pub mod pipeline;
pub mod render_resource;
mod renderable;
pub mod renderer;
pub mod texture;
pub struct Instanced;
pub mod texture;

View file

@ -13,6 +13,7 @@ pub struct Renderable {
pub is_visible: bool,
pub pipelines: Vec<Handle<PipelineDescriptor>>,
pub shader_defs: HashSet<String>,
pub instanced: bool,
}
impl Default for Renderable {
@ -23,6 +24,7 @@ impl Default for Renderable {
Handle::new(0), // TODO: this could be better
],
shader_defs: HashSet::new(),
instanced: false,
}
}
}