Better LoD variable names

This commit is contained in:
Joshua Barretto 2020-04-25 19:42:42 +01:00
parent 8871cb2d29
commit 90de779559
4 changed files with 19 additions and 20 deletions

View File

@ -20,15 +20,14 @@ impl<'a, V: ReadVol> ReadVol for Scaled<'a, V> {
let ideal_search_size = Vec3::<f32>::one() / self.scale;
let range_iter = |i: usize| {
std::iter::successors(Some(0), |p| Some(if *p < 0 { -*p } else { -(*p + 1) }))
.take_while(move |p| (
(ideal_pos[i] - ideal_search_size[i] / 2.0).round() as i32..(ideal_pos[i] + ideal_search_size[i] / 2.0).round() as i32
).contains(&(pos[i] + *p)))
.take_while(move |p| {
((ideal_pos[i] - ideal_search_size[i] / 2.0).round() as i32
..(ideal_pos[i] + ideal_search_size[i] / 2.0).round() as i32)
.contains(&(pos[i] + *p))
})
};
range_iter(0)
.map(|i| {
range_iter(1)
.map(move |j| range_iter(2).map(move |k| Vec3::new(i, j, k)))
})
.map(|i| range_iter(1).map(move |j| range_iter(2).map(move |k| Vec3::new(i, j, k))))
.flatten()
.flatten()
.map(|offs| self.inner.get(pos + offs))

View File

@ -1714,14 +1714,14 @@ impl FigureMgr {
)
}),
} {
const FIGURE_LOD_LOW_DIST: f32 = 150.0;
const FIGURE_LOD_MID_DIST: f32 = 70.0;
const FIGURE_LOW_LOD_DIST: f32 = 150.0;
const FIGURE_MID_LOD_DIST: f32 = 85.0;
let model = if pos.distance_squared(camera.get_focus_pos())
> FIGURE_LOD_LOW_DIST.powf(2.0)
> FIGURE_LOW_LOD_DIST.powf(2.0)
{
&model[2]
} else if pos.distance_squared(camera.get_focus_pos()) > FIGURE_LOD_MID_DIST.powf(2.0) {
} else if pos.distance_squared(camera.get_focus_pos()) > FIGURE_MID_LOD_DIST.powf(2.0) {
&model[1]
} else {
&model[0]

View File

@ -2255,10 +2255,10 @@ impl<V: RectRasterableVol> Terrain<V> {
// Terrain sprites
for (pos, chunk) in chunk_iter.clone() {
if chunk.visible {
let sprite_detail_low_distance = sprite_render_distance * 0.75;
let sprite_detail_mid_distance = sprite_render_distance * 0.5;
let sprite_detail_hid_distance = sprite_render_distance * 0.35;
let sprite_detail_high_distance = sprite_render_distance * 0.15;
let sprite_low_detail_distance = sprite_render_distance * 0.75;
let sprite_mid_detail_distance = sprite_render_distance * 0.5;
let sprite_hid_detail_distance = sprite_render_distance * 0.35;
let sprite_high_detail_distance = sprite_render_distance * 0.15;
let chunk_center =
pos.map2(V::RECT_SIZE, |e, sz: u32| (e as f32 + 0.5) * sz as f32);
@ -2266,13 +2266,13 @@ impl<V: RectRasterableVol> Terrain<V> {
if dist_sqrd < sprite_render_distance.powf(2.0) {
for (kind, instances) in &chunk.sprite_instances {
renderer.render_sprites(
if dist_sqrd < sprite_detail_high_distance.powf(2.0) {
if dist_sqrd < sprite_high_detail_distance.powf(2.0) {
&self.sprite_models[&kind][0]
} else if dist_sqrd < sprite_detail_hid_distance.powf(2.0) {
} else if dist_sqrd < sprite_hid_detail_distance.powf(2.0) {
&self.sprite_models[&kind][1]
} else if dist_sqrd < sprite_detail_mid_distance.powf(2.0) {
} else if dist_sqrd < sprite_mid_detail_distance.powf(2.0) {
&self.sprite_models[&kind][2]
} else if dist_sqrd < sprite_detail_low_distance.powf(2.0) {
} else if dist_sqrd < sprite_low_detail_distance.powf(2.0) {
&self.sprite_models[&kind][3]
} else {
&self.sprite_models[&kind][4]

View File

@ -116,7 +116,7 @@ impl Archetype for House {
storey_fill: StoreyFill::All,
mansard: 0,
pillar: match rng.gen_range(0, 3) {
0 => Pillar::Chimney(9 + locus + rng.gen_range(0, 4)),
0 => Pillar::Chimney(10 + locus + rng.gen_range(0, 4)),
1 => Pillar::Tower(15 + locus + rng.gen_range(0, 4)),
_ => Pillar::None,
},