transform normals

This commit is contained in:
2025-02-05 14:48:12 -08:00
parent 8f7e44228b
commit fbe4183a3c
2 changed files with 5 additions and 2 deletions
lib/bsp_loader/src

@ -2,7 +2,7 @@ use strafesnet_common::integer::Planar64;
use strafesnet_common::{model,integer}; use strafesnet_common::{model,integer};
use strafesnet_common::integer::{vec3::Vector3,Fixed,Ratio}; use strafesnet_common::integer::{vec3::Vector3,Fixed,Ratio};
use crate::valve_transform_dist; use crate::{valve_transform_normal,valve_transform_dist};
#[derive(Hash,Eq,PartialEq)] #[derive(Hash,Eq,PartialEq)]
struct Face{ struct Face{
@ -202,7 +202,7 @@ pub fn brush_to_mesh(bsp:&vbsp::Bsp,brush:&vbsp::Brush)->Result<model::Mesh,Brus
let face_list=sides.iter().map(|side|{ let face_list=sides.iter().map(|side|{
let plane=bsp.plane(side.plane as usize)?; let plane=bsp.plane(side.plane as usize)?;
Some(Face{ Some(Face{
normal:strafesnet_common::integer::vec3::try_from_f32_array(plane.normal.into()).unwrap(), normal:valve_transform_normal(plane.normal.into()),
dot:valve_transform_dist(plane.dist.into()), dot:valve_transform_dist(plane.dist.into()),
}) })
}).collect::<Option<std::collections::HashSet<_>>>().ok_or(BrushToMeshError::MissingPlane)?; }).collect::<Option<std::collections::HashSet<_>>>().ok_or(BrushToMeshError::MissingPlane)?;

@ -9,6 +9,9 @@ const VALVE_SCALE:f32=1.0/16.0;
pub(crate) fn valve_transform_dist(d:f32)->strafesnet_common::integer::Planar64{ pub(crate) fn valve_transform_dist(d:f32)->strafesnet_common::integer::Planar64{
(d*VALVE_SCALE).try_into().unwrap() (d*VALVE_SCALE).try_into().unwrap()
} }
pub(crate) fn valve_transform_normal([x,y,z]:[f32;3])->strafesnet_common::integer::Planar64Vec3{
strafesnet_common::integer::vec3::try_from_f32_array([x,z,-y]).unwrap()
}
pub(crate) fn valve_transform([x,y,z]:[f32;3])->strafesnet_common::integer::Planar64Vec3{ pub(crate) fn valve_transform([x,y,z]:[f32;3])->strafesnet_common::integer::Planar64Vec3{
strafesnet_common::integer::vec3::try_from_f32_array([x*VALVE_SCALE,z*VALVE_SCALE,-y*VALVE_SCALE]).unwrap() strafesnet_common::integer::vec3::try_from_f32_array([x*VALVE_SCALE,z*VALVE_SCALE,-y*VALVE_SCALE]).unwrap()
} }