fix
This commit is contained in:
parent
42b4589fb3
commit
3d57af0dfd
17
src/bsp.rs
17
src/bsp.rs
@ -26,17 +26,17 @@ where
|
|||||||
|
|
||||||
//the generated MeshIds in here will collide with the Loader Mesh Ids
|
//the generated MeshIds in here will collide with the Loader Mesh Ids
|
||||||
//but I can't think of a good workaround other than just remapping one later.
|
//but I can't think of a good workaround other than just remapping one later.
|
||||||
let (mut meshes,mut models):(Vec<model::Mesh>,Vec<model::Model>)=bsp.models().enumerate().map(|(i,world_model)|{
|
let (meshes,models):(Vec<model::Mesh>,Vec<model::Model>)=bsp.models().enumerate().map(|(mesh_id,world_model)|{
|
||||||
|
let mesh_id=model::MeshId::new(mesh_id as u32);
|
||||||
//non-deduplicated
|
//non-deduplicated
|
||||||
let mut spam_pos=Vec::new();
|
let mut spam_pos=Vec::new();
|
||||||
let mut spam_tex=Vec::new();
|
let mut spam_tex=Vec::new();
|
||||||
let mut spam_normal=Vec::new();
|
let mut spam_normal=Vec::new();
|
||||||
let mut spam_vertices=Vec::new();
|
let mut spam_vertices=Vec::new();
|
||||||
let mut polygon_groups=Vec::new();
|
|
||||||
let mut graphics_groups=Vec::new();
|
let mut graphics_groups=Vec::new();
|
||||||
let mut physics_group=model::IndexedPhysicsGroup::default();
|
let mut physics_group=model::IndexedPhysicsGroup::default();
|
||||||
let groups=world_model.faces()
|
let polygon_groups=world_model.faces().enumerate().map(|(polygon_group_id,face)|{
|
||||||
.map(|face|{
|
let polygon_group_id=model::PolygonGroupId::new(polygon_group_id as u32);
|
||||||
let face_texture=face.texture();
|
let face_texture=face.texture();
|
||||||
let face_texture_data=face_texture.texture_data();
|
let face_texture_data=face_texture.texture_data();
|
||||||
let (texture_u,texture_v)=(glam::Vec3A::from_slice(&face_texture.texture_transforms_u[0..3]),glam::Vec3A::from_slice(&face_texture.texture_transforms_v[0..3]));
|
let (texture_u,texture_v)=(glam::Vec3A::from_slice(&face_texture.texture_transforms_u[0..3]),glam::Vec3A::from_slice(&face_texture.texture_transforms_v[0..3]));
|
||||||
@ -67,18 +67,16 @@ where
|
|||||||
let tex_idx=spam_tex.len() as u32;
|
let tex_idx=spam_tex.len() as u32;
|
||||||
spam_tex.push(tex);
|
spam_tex.push(tex);
|
||||||
|
|
||||||
let i=spam_vertices.len() as u32;
|
let vertex_id=model::VertexId::new(spam_vertices.len() as u32);
|
||||||
spam_vertices.push(model::IndexedVertex{
|
spam_vertices.push(model::IndexedVertex{
|
||||||
pos:model::PositionId::new(pos_idx as u32),
|
pos:model::PositionId::new(pos_idx as u32),
|
||||||
tex:model::TextureCoordinateId::new(tex_idx as u32),
|
tex:model::TextureCoordinateId::new(tex_idx as u32),
|
||||||
normal:model::NormalId::new(normal_idx),
|
normal:model::NormalId::new(normal_idx),
|
||||||
color:model::ColorId::new(0),
|
color:model::ColorId::new(0),
|
||||||
});
|
});
|
||||||
model::VertexId::new(i)
|
vertex_id
|
||||||
}).collect();
|
}).collect();
|
||||||
indices.reverse();
|
indices.reverse();
|
||||||
let polygon_group_id=model::PolygonGroupId::new(polygon_groups.len() as u32);
|
|
||||||
polygon_groups.push(model::PolygonGroup::PolygonList(model::PolygonList::new(vec![indices])));
|
|
||||||
if face.is_visible(){
|
if face.is_visible(){
|
||||||
graphics_groups.push(model::IndexedGraphicsGroup{
|
graphics_groups.push(model::IndexedGraphicsGroup{
|
||||||
render:render_id,
|
render:render_id,
|
||||||
@ -86,6 +84,7 @@ where
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
physics_group.groups.push(polygon_group_id);
|
physics_group.groups.push(polygon_group_id);
|
||||||
|
model::PolygonGroup::PolygonList(model::PolygonList::new(vec![indices]))
|
||||||
}).collect();
|
}).collect();
|
||||||
(
|
(
|
||||||
model::Mesh{
|
model::Mesh{
|
||||||
@ -99,7 +98,7 @@ where
|
|||||||
physics_groups:vec![physics_group],
|
physics_groups:vec![physics_group],
|
||||||
},
|
},
|
||||||
model::Model{
|
model::Model{
|
||||||
mesh:model::MeshId::new(i as u32),
|
mesh:mesh_id,
|
||||||
attributes:TEMP_TOUCH_ME_ATTRIBUTE,
|
attributes:TEMP_TOUCH_ME_ATTRIBUTE,
|
||||||
transform:integer::Planar64Affine3::new(
|
transform:integer::Planar64Affine3::new(
|
||||||
integer::Planar64Mat3::default(),
|
integer::Planar64Mat3::default(),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user