From b524cbc068183960c4949bfab98e8462f6c78665 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Wed, 22 Dec 2021 12:52:08 -0600 Subject: [PATCH] added ray casting and block destruction --- .gitignore | 3 +- run_tree/lib/onyx_opengles.so | Bin 232872 -> 237120 bytes run_tree/run.sh | 2 +- src/chunk.onyx | 51 ++++++++++++++++++ src/main.onyx | 18 +++++++ src/mesh.onyx | 49 ++++------------- src/vecmath.onyx | 2 + src/world.onyx | 96 +++++++++++++++++++++++++++++++++- 8 files changed, 178 insertions(+), 43 deletions(-) diff --git a/.gitignore b/.gitignore index 6cbd667..d875df8 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ src/config.onyx *.code-workspace *.sublime-project *.sublime-workspace -.vscode/c_cpp_properties.json \ No newline at end of file +.vscode/c_cpp_properties.json +*.wasm diff --git a/run_tree/lib/onyx_opengles.so b/run_tree/lib/onyx_opengles.so index 393e39ffa4675376eb0aa7d2a7f7d30540f470de..cc89c8ceae7de89bc5d293eed274a2f643a69003 100755 GIT binary patch literal 237120 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≈gn3@Z&zPgl~ilNzwHj4uNvQ; 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 cast(u32) b1 == cast(u32) b2; @@ -145,9 +146,59 @@ chunk_draw :: (chunk: ^Chunk) { } +// Provides x, y, z, and block in the body chunk_foreach :: macro (chunk: ^Chunk, body: Code) { for x: Chunk_Size do for y: Chunk_Size do for z: Chunk_Size { block := chunk.blocks[x * Chunk_Size * Chunk_Size + y * Chunk_Size + z]; #insert body; } } + +block_highlight: ^Mesh(Chunk_Vertex); +chunk_highlight_block :: (x, y, z: f32) { + data := 0xf000; + + vertex_data := cast(^Chunk_Vertex) alloca(sizeof Chunk_Vertex * 8); + vertex_data[0] = .{.{x-0.001,y-0.001,z-0.001},data}; + vertex_data[1] = .{.{x-0.001,y+1.001,z-0.001},data}; + vertex_data[2] = .{.{x+1.001,y+1.001,z-0.001},data}; + vertex_data[3] = .{.{x+1.001,y-0.001,z-0.001},data}; + vertex_data[4] = .{.{x-0.001,y-0.001,z+1.001},data}; + vertex_data[5] = .{.{x-0.001,y+1.001,z+1.001},data}; + vertex_data[6] = .{.{x+1.001,y+1.001,z+1.001},data}; + vertex_data[7] = .{.{x+1.001,y-0.001,z+1.001},data}; + + if block_highlight == null { + #persist index_data := u32.[ + 2, 1, 1, 0, // back + 0, 3, 3, 2, + + 6, 2, 2, 3, // right side + 3, 7, 7, 6, + + 0, 1, 1, 5, // left side + 5, 4, 4, 0, + + 4, 5, 5, 6, // front + 6, 7, 7, 4, + + 5, 1, 1, 2, // top + 2, 6, 6, 5, + + 0, 4, 4, 7, // bottom + 7, 3, 3, 0, + ]; + + mesh := mesh_make(vertex_data[0..8], index_data); + mesh.primitive = GL_LINES; + block_highlight = mesh; + + } else { + mesh_update_verticies(block_highlight, vertex_data[0 .. 8]); + } + + update_model_matrix(.{0,0,0}); + mesh_draw(block_highlight); +} + + diff --git a/src/main.onyx b/src/main.onyx index 9502bca..86ccd1d 100644 --- a/src/main.onyx +++ b/src/main.onyx @@ -62,6 +62,7 @@ toggle_cursor_grabbed :: () { world: ^World; world_shader: Shader; font: Font; +selected_block: Vector3i; setup_opengl :: () { glInit(glfwGetLoadProcAddress()); @@ -144,7 +145,17 @@ update :: (dt: f32) { camera.position -= Vector3.norm(Vector3.cross(facing, .{0,1,0})) * speed; } + dir: Vector3i; + if !world_ray_cast(.{ camera.position, facing }, 40, null, (_, p) => { + return world_get_block(world, p.x, p.y, p.z) != Block_Empty; + }, ^selected_block, ^dir) { + selected_block = .{0,0,0}; + } + if glfwGetKey(window, GLFW_KEY_SPACE) == GLFW_PRESS { + world_set_block(world, selected_block.x, selected_block.y, selected_block.z, Block_Empty); + } + { #persist last_debug_key := 0; @@ -166,12 +177,19 @@ draw :: () { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); shader_use(world_shader); + glLineWidth(2); world_draw(world); + chunk_highlight_block(~~selected_block.x, ~~selected_block.y, ~~selected_block.z); if debug_screen { + ww, wh: i32; + glfwGetWindowSize(window, ^ww, ^wh); + font_print(font, ~~(ww / 2), ~~(wh / 2), "X"); + font_print(font, 0, 32, "FPS: {}", game_fps); font_print(font, 0, 64, "Position: {}", camera.position); font_print(font, 0, 96, "Facing: {}", camera.y_rot * 180 / math.PI); + font_print(font, 0, 128, "Looking at: {}", selected_block); } glfwSwapBuffers(window); diff --git a/src/mesh.onyx b/src/mesh.onyx index 42859a9..3c969c7 100644 --- a/src/mesh.onyx +++ b/src/mesh.onyx @@ -8,6 +8,7 @@ Mesh :: struct (T: type_expr) { vertex_count: u32; index_count: u32; + primitive: GLuint = GL_TRIANGLES; } mesh_make :: (verticies: [] $T, indicies: [] u32) -> ^Mesh(T) { @@ -52,12 +53,18 @@ mesh_make :: (verticies: [] $T, indicies: [] u32) -> ^Mesh(T) { return mesh; } +mesh_update_verticies :: (use mesh: ^Mesh($T), verticies: [] T) { + glBindBuffer(GL_ARRAY_BUFFER, vertex_handle); + glBufferSubData(GL_ARRAY_BUFFER, 0, verticies.count * sizeof T, verticies.data); + glBindBuffer(GL_ARRAY_BUFFER, -1); +} + mesh_draw :: (use mesh: ^Mesh($T)) { glBindVertexArray(handle); if index_count > 0 { - glDrawElements(GL_TRIANGLES, index_count, GL_UNSIGNED_INT, ~~0); + glDrawElements(primitive, index_count, GL_UNSIGNED_INT, ~~0); } else { - glDrawArrays(GL_TRIANGLES, 0, vertex_count); + glDrawArrays(primitive, 0, vertex_count); } glBindVertexArray(-1); } @@ -71,41 +78,3 @@ mesh_free :: (mesh: ^Mesh($T)) { -#if false { -// Old code for making a single cube -mesh_make_cube :: (x, y, z: f32) -> ^Mesh { - data := random.between(0x0000, 0xffff); - - vertex_data := memory.make_slice(Vertex, 8); - vertex_data[0] = .{x+0,y+0,z+0,data}; - vertex_data[1] = .{x+0,y+1,z+0,data}; - vertex_data[2] = .{x+1,y+1,z+0,data}; - vertex_data[3] = .{x+1,y+0,z+0,data}; - vertex_data[4] = .{x+0,y+0,z+1,data}; - vertex_data[5] = .{x+0,y+1,z+1,data}; - vertex_data[6] = .{x+1,y+1,z+1,data}; - vertex_data[7] = .{x+1,y+0,z+1,data}; - - #persist index_data := u32.[ - 0, 2, 1, // back - 0, 3, 2, - - 3, 6, 2, // right side - 3, 7, 6, - - 5, 0, 1, // left side - 5, 4, 0, - - 4, 5, 6, // front - 4, 6, 7, - - 5, 1, 2, // top - 5, 2, 6, - - 0, 4, 7, // bottom - 0, 7, 3, - ]; - - return mesh_make(vertex_data, index_data); -} -} \ No newline at end of file diff --git a/src/vecmath.onyx b/src/vecmath.onyx index e6bf75d..bf6b7d7 100644 --- a/src/vecmath.onyx +++ b/src/vecmath.onyx @@ -9,6 +9,8 @@ Vector3i :: struct { Vector3 :: struct { x, y, z: f32; + mag :: macro (v: Vector3) => math.sqrt(v.x * v.x + v.y * v.y + v.z * v.z); + neg :: macro (v: Vector3) => Vector3.{ -v.x, -v.y, -v.z }; dot :: macro (v1, v2: Vector3) -> f32 { diff --git a/src/world.onyx b/src/world.onyx index c740e6d..43f2c53 100644 --- a/src/world.onyx +++ b/src/world.onyx @@ -28,9 +28,103 @@ world_make :: (allocator := context.allocator) -> ^World { return world; } +world_get_block :: (world: ^World, x, y, z: i32) -> Block { + @WorldCenter + cx := x / Chunk_Size; + cy := y / Chunk_Size; + cz := z / Chunk_Size; + if cx < 0 || cx >= world.chunk_dist do return Block_Empty; + if cy < 0 || cy >= world.chunk_dist do return Block_Empty; + if cz < 0 || cz >= world.chunk_dist do return Block_Empty; + chunk := world.chunks[cx * world.chunk_dist * world.chunk_dist + cy * world.chunk_dist + cz]; + return chunk_get(chunk, x % Chunk_Size, y % Chunk_Size, z % Chunk_Size); +} + +world_set_block :: (world: ^World, x, y, z: i32, block: Block) { + @WorldCenter + cx := x / Chunk_Size; + cy := y / Chunk_Size; + cz := z / Chunk_Size; + if cx < 0 || cx >= world.chunk_dist do return; + if cy < 0 || cy >= world.chunk_dist do return; + if cz < 0 || cz >= world.chunk_dist do return; + chunk := world.chunks[cx * world.chunk_dist * world.chunk_dist + cy * world.chunk_dist + cz]; + chunk_set(chunk, x % Chunk_Size, y % Chunk_Size, z % Chunk_Size, block); +} + +Ray :: struct { + origin, direction: Vector3; +} + +world_ray_cast :: (ray: Ray, max_distance: f32, ctx: $T, is_solid: (T, Vector3i) -> bool, out_block: ^Vector3i, out_dir: ^Vector3i) -> bool { + pos := Vector3i.{ ~~math.floor(ray.origin.x), ~~math.floor(ray.origin.y), ~~math.floor(ray.origin.z) }; + + dir := ray.direction; + step := Vector3i.{ ~~math.sign(dir.x), ~~math.sign(dir.y), ~~math.sign(dir.z) }; + + tmax: Vector3; + tmax.x = ((math.ceil(ray.origin.x) - ray.origin.x) if dir.x > 0 else (ray.origin.x - math.floor(ray.origin.x))) / math.abs(dir.x); + tmax.y = ((math.ceil(ray.origin.y) - ray.origin.y) if dir.y > 0 else (ray.origin.y - math.floor(ray.origin.y))) / math.abs(dir.y); + tmax.z = ((math.ceil(ray.origin.z) - ray.origin.z) if dir.z > 0 else (ray.origin.z - math.floor(ray.origin.z))) / math.abs(dir.z); + + tdelta := Vector3.{ ~~step.x / dir.x, ~~step.y / dir.y, ~~step.z / dir.z }; + radius := max_distance / Vector3.mag(dir); + + while true { + if is_solid(ctx, pos) { + *out_block = pos; + return true; + } + + if tmax.x < tmax.y { + if tmax.x < tmax.z { + if tmax.x > radius { + break; + } + + pos.x += step.x; + tmax.x += tdelta.x; + *out_dir = Vector3i.{ -step.x, 0, 0 }; + + } else { + if tmax.z > radius { + break; + } + + pos.z += step.z; + tmax.z += tdelta.z; + *out_dir = Vector3i.{ 0, 0, -step.z }; + } + + } else { + if tmax.y < tmax.z { + if tmax.y > radius { + break; + } + + pos.y += step.y; + tmax.y += tdelta.y; + *out_dir = Vector3i.{ 0, -step.y, 0 }; + + } else { + if tmax.z > radius { + break; + } + + pos.z += step.z; + tmax.z += tdelta.z; + *out_dir = Vector3i.{ 0, 0, -step.z }; + } + } + } + + return false; +} + + world_draw :: (use world: ^World) { for chunks { chunk_build_mesh(it); chunk_draw(it); } -} \ No newline at end of file +} -- 2.25.1