mirror of
https://github.com/griffi-gh/kubi.git
synced 2024-11-25 16:28:42 -06:00
update
This commit is contained in:
parent
27c55ed8c9
commit
717e219003
|
@ -12,3 +12,7 @@ strum = { version = "0.24", features = ["derive"] }
|
||||||
glam = { version = "0.22", features = ["debug-glam-assert", "mint", "fast-math"] }
|
glam = { version = "0.22", features = ["debug-glam-assert", "mint", "fast-math"] }
|
||||||
hashbrown = "0.13"
|
hashbrown = "0.13"
|
||||||
simdnoise = "3.1"
|
simdnoise = "3.1"
|
||||||
|
|
||||||
|
[features]
|
||||||
|
default = []
|
||||||
|
polygon_rendering = []
|
||||||
|
|
|
@ -5,7 +5,7 @@ pub struct GameOptions {
|
||||||
impl Default for GameOptions {
|
impl Default for GameOptions {
|
||||||
fn default() -> Self {
|
fn default() -> Self {
|
||||||
Self {
|
Self {
|
||||||
render_distance: 16,
|
render_distance: if cfg!(debug_assertions) { 8 } else { 16 },
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,7 +38,10 @@ pub const FRAGMENT_SHADER: &str = r#"
|
||||||
uniform sampler2D tex;
|
uniform sampler2D tex;
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
|
// base color from texture
|
||||||
color = texture(tex, v_uv);
|
color = texture(tex, v_uv);
|
||||||
|
|
||||||
|
//basic lighting
|
||||||
color *= vec4(vec3(abs(v_normal.x) + .8 * abs(v_normal.y) + .6 * abs(v_normal.z)), 1.);
|
color *= vec4(vec3(abs(v_normal.x) + .8 * abs(v_normal.y) + .6 * abs(v_normal.z)), 1.);
|
||||||
}
|
}
|
||||||
"#;
|
"#;
|
||||||
|
|
|
@ -26,7 +26,7 @@ const NEGATIVE_X_NEIGHBOR: usize = 1;
|
||||||
const POSITIVE_Z_NEIGHBOR: usize = 2;
|
const POSITIVE_Z_NEIGHBOR: usize = 2;
|
||||||
const NEGATIVE_Z_NEIGHBOR: usize = 3;
|
const NEGATIVE_Z_NEIGHBOR: usize = 3;
|
||||||
|
|
||||||
const MAX_TASKS: usize = 4;
|
const MAX_TASKS: usize = 6;
|
||||||
|
|
||||||
pub struct World {
|
pub struct World {
|
||||||
pub chunks: HashMap<IVec2, Chunk>,
|
pub chunks: HashMap<IVec2, Chunk>,
|
||||||
|
@ -58,8 +58,9 @@ impl World {
|
||||||
view: [[f32; 4]; 4]
|
view: [[f32; 4]; 4]
|
||||||
) {
|
) {
|
||||||
let sampler = SamplerBehavior {
|
let sampler = SamplerBehavior {
|
||||||
minify_filter: MinifySamplerFilter::Nearest,
|
minify_filter: MinifySamplerFilter::Linear,
|
||||||
magnify_filter: MagnifySamplerFilter::Nearest,
|
magnify_filter: MagnifySamplerFilter::Nearest,
|
||||||
|
max_anisotropy: 8,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
};
|
};
|
||||||
let draw_parameters = DrawParameters {
|
let draw_parameters = DrawParameters {
|
||||||
|
@ -68,6 +69,7 @@ impl World {
|
||||||
write: true,
|
write: true,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
|
#[cfg(feature = "polygon_rendering")] polygon_mode: glium::PolygonMode::Line,
|
||||||
backface_culling: glium::draw_parameters::BackfaceCullingMode::CullCounterClockwise,
|
backface_culling: glium::draw_parameters::BackfaceCullingMode::CullCounterClockwise,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
};
|
};
|
||||||
|
|
|
@ -123,6 +123,7 @@ pub fn generate_mesh(position: IVec2, chunk_data: ChunkData, neighbors: [ChunkDa
|
||||||
//TODO replace with a proper texture resolver (or calculate uvs in a shader!)
|
//TODO replace with a proper texture resolver (or calculate uvs in a shader!)
|
||||||
//this is temporary!
|
//this is temporary!
|
||||||
//also this can only resolve textures on the first row.
|
//also this can only resolve textures on the first row.
|
||||||
|
|
||||||
const TEX_WIDTH: f32 = 16. / 640.;
|
const TEX_WIDTH: f32 = 16. / 640.;
|
||||||
const TEX_HEIGHT: f32 = 16. / 404.;
|
const TEX_HEIGHT: f32 = 16. / 404.;
|
||||||
let x1 = TEX_WIDTH * texture_id as f32;
|
let x1 = TEX_WIDTH * texture_id as f32;
|
||||||
|
|
|
@ -13,7 +13,7 @@ pub fn generate_chunk(position: IVec2, seed: u32) -> ChunkData {
|
||||||
let mut chunk = Box::new([[[Block::Air; CHUNK_SIZE]; CHUNK_HEIGHT]; CHUNK_SIZE]);
|
let mut chunk = Box::new([[[Block::Air; CHUNK_SIZE]; CHUNK_HEIGHT]; CHUNK_SIZE]);
|
||||||
|
|
||||||
//generate noises
|
//generate noises
|
||||||
let height_noise = NoiseBuilder::ridge_2d_offset(world_xz.x, CHUNK_SIZE, world_xz.y, CHUNK_SIZE)
|
let height_noise = NoiseBuilder::fbm_2d_offset(world_xz.x, CHUNK_SIZE, world_xz.y, CHUNK_SIZE)
|
||||||
.with_freq(0.01)
|
.with_freq(0.01)
|
||||||
.with_octaves(4)
|
.with_octaves(4)
|
||||||
.with_seed(seed as i32)
|
.with_seed(seed as i32)
|
||||||
|
|
Loading…
Reference in a new issue