scratchpad: show physics only
This commit is contained in:
parent
4fa0197120
commit
8e70e31e2e
@ -253,7 +253,10 @@ pub fn brush_to_mesh(bsp:&vbsp::Bsp,brush:&vbsp::Brush)->Result<model::Mesh,Brus
|
||||
let physics_groups=vec![model::IndexedPhysicsGroup{
|
||||
groups:vec![model::PolygonGroupId::new(0)],
|
||||
}];
|
||||
let graphics_groups=vec![];
|
||||
let graphics_groups=vec![model::IndexedGraphicsGroup{
|
||||
render:model::RenderConfigId::new(0),
|
||||
groups:vec![model::PolygonGroupId::new(0)],
|
||||
}];
|
||||
|
||||
Ok(mb.build(polygon_groups,graphics_groups,physics_groups))
|
||||
}
|
||||
|
@ -46,24 +46,25 @@ pub fn convert<'a>(
|
||||
const ATTRIBUTE_CONTACT_DEFAULT:gameplay_attributes::CollisionAttributesId=gameplay_attributes::CollisionAttributesId::new(1);
|
||||
|
||||
//declare all prop models to Loader
|
||||
let prop_models=bsp.static_props().map(|prop|{
|
||||
//get or create mesh_id
|
||||
let mesh_id=mesh_deferred_loader.acquire_mesh_id(prop.model());
|
||||
let placement=prop.as_prop_placement();
|
||||
model::Model{
|
||||
mesh:mesh_id,
|
||||
attributes:ATTRIBUTE_DECORATION,
|
||||
transform:integer::Planar64Affine3::new(
|
||||
integer::mat3::try_from_f32_array_2d((
|
||||
glam::Mat3A::from_diagonal(glam::Vec3::splat(placement.scale))
|
||||
//TODO: figure this out
|
||||
*glam::Mat3A::from_quat(glam::Quat::from_array(placement.rotation.into()))
|
||||
).to_cols_array_2d()).unwrap(),
|
||||
valve_transform(placement.origin.into()),
|
||||
),
|
||||
color:glam::Vec4::ONE,
|
||||
}
|
||||
}).collect();
|
||||
let prop_models=Vec::new();
|
||||
// let prop_models=bsp.static_props().map(|prop|{
|
||||
// //get or create mesh_id
|
||||
// let mesh_id=mesh_deferred_loader.acquire_mesh_id(prop.model());
|
||||
// let placement=prop.as_prop_placement();
|
||||
// model::Model{
|
||||
// mesh:mesh_id,
|
||||
// attributes:ATTRIBUTE_DECORATION,
|
||||
// transform:integer::Planar64Affine3::new(
|
||||
// integer::mat3::try_from_f32_array_2d((
|
||||
// glam::Mat3A::from_diagonal(glam::Vec3::splat(placement.scale))
|
||||
// //TODO: figure this out
|
||||
// *glam::Mat3A::from_quat(glam::Quat::from_array(placement.rotation.into()))
|
||||
// ).to_cols_array_2d()).unwrap(),
|
||||
// valve_transform(placement.origin.into()),
|
||||
// ),
|
||||
// color:glam::Vec4::ONE,
|
||||
// }
|
||||
// }).collect();
|
||||
|
||||
//TODO: make the main map one single mesh with a bunch of different physics groups and graphics groups
|
||||
|
||||
@ -74,7 +75,7 @@ pub fn convert<'a>(
|
||||
|
||||
let color=mb.acquire_color_id(glam::Vec4::ONE);
|
||||
let mut graphics_groups=Vec::new();
|
||||
let mut render_id_to_graphics_group_id=std::collections::HashMap::new();
|
||||
//let mut render_id_to_graphics_group_id=std::collections::HashMap::new();
|
||||
let polygon_groups=world_model.faces().enumerate().map(|(polygon_group_id,face)|{
|
||||
let polygon_group_id=model::PolygonGroupId::new(polygon_group_id as u32);
|
||||
let face_texture=face.texture();
|
||||
@ -104,15 +105,15 @@ pub fn convert<'a>(
|
||||
//a render config for it, and then returns the id to that render config
|
||||
let render_id=render_config_deferred_loader.acquire_render_config_id(Some(Cow::Borrowed(face_texture_data.name())));
|
||||
//deduplicate graphics groups by render id
|
||||
let graphics_group_id=*render_id_to_graphics_group_id.entry(render_id).or_insert_with(||{
|
||||
let graphics_group_id=graphics_groups.len();
|
||||
graphics_groups.push(model::IndexedGraphicsGroup{
|
||||
render:render_id,
|
||||
groups:vec![],
|
||||
});
|
||||
graphics_group_id
|
||||
});
|
||||
graphics_groups[graphics_group_id].groups.push(polygon_group_id);
|
||||
// let graphics_group_id=*render_id_to_graphics_group_id.entry(render_id).or_insert_with(||{
|
||||
// let graphics_group_id=graphics_groups.len();
|
||||
// graphics_groups.push(model::IndexedGraphicsGroup{
|
||||
// render:render_id,
|
||||
// groups:vec![],
|
||||
// });
|
||||
// graphics_group_id
|
||||
// });
|
||||
// graphics_groups[graphics_group_id].groups.push(polygon_group_id);
|
||||
}
|
||||
model::PolygonGroup::PolygonList(model::PolygonList::new(polygon_list))
|
||||
}).collect();
|
||||
@ -128,6 +129,8 @@ pub fn convert<'a>(
|
||||
Err(e)=>println!("Brush mesh error: {e}"),
|
||||
}
|
||||
}
|
||||
println!("How many brush: {}",bsp.brushes.len());
|
||||
println!("Generated brush models: {}",world_meshes.len()-brush_mesh_start_idx);
|
||||
|
||||
let world_models:Vec<model::Model>=
|
||||
//one instance of the main world mesh
|
||||
|
Loading…
x
Reference in New Issue
Block a user