From 9948c3df869238de9a72e97e1f8b073d7cd0cec3 Mon Sep 17 00:00:00 2001 From: Emil Kosz Date: Tue, 3 Jun 2025 16:07:22 +0200 Subject: [PATCH] Preliminary entity system --- game/Makefile | 3 +- game/res/shaders/billboard.frag | 8 ++ game/res/shaders/billboard.vert | 11 +++ game/res/shaders/default.frag | 11 ++- game/res/shaders/default.vert | 4 + game/res/textures/tree.png | Bin 0 -> 95702 bytes game/src/chunk/manager.c | 2 +- game/src/chunk/mesh.c | 7 +- game/src/entity/entity.h | 18 ++++ game/src/entity/manager.c | 25 ++++++ game/src/entity/manager.h | 15 ++++ game/src/entity/meshes.c | 141 ++++++++++++++++++++++++++++++++ game/src/entity/meshes.h | 19 +++++ game/src/graphics.c | 15 +++- game/src/graphics.h | 1 + game/src/main.c | 1 + game/src/resources.c | 1 + game/src/state.c | 1 + 18 files changed, 274 insertions(+), 9 deletions(-) create mode 100644 game/res/shaders/billboard.frag create mode 100644 game/res/shaders/billboard.vert create mode 100644 game/res/textures/tree.png create mode 100644 game/src/entity/entity.h create mode 100644 game/src/entity/manager.c create mode 100644 game/src/entity/manager.h create mode 100644 game/src/entity/meshes.c create mode 100644 game/src/entity/meshes.h diff --git a/game/Makefile b/game/Makefile index cf3ae1a..74766b7 100644 --- a/game/Makefile +++ b/game/Makefile @@ -1,6 +1,7 @@ SRC=src/main.c src/program.c src/resources.c src/camera.c src/chunk/chunk.c \ src/chunk/mesh.c src/flags.c src/texture.c src/chunk/manager.c \ - src/event/manager.c src/event/handlers.c src/state.c src/graphics.c + src/event/manager.c src/event/handlers.c src/state.c src/graphics.c \ + src/entity/meshes.c src/entity/manager.c OBJ=$(SRC:.c=.o) CFLAGS=-Werror -Wextra -Wall `pkg-config --cflags sdl3 sdl3-image cglm gl glib-2.0` diff --git a/game/res/shaders/billboard.frag b/game/res/shaders/billboard.frag new file mode 100644 index 0000000..b26a6a5 --- /dev/null +++ b/game/res/shaders/billboard.frag @@ -0,0 +1,8 @@ +#version 100 + +precision mediump float; + +void main () +{ + gl_FragColor = vec4 (1.0, 1.0, 1.0, 1.0); +} diff --git a/game/res/shaders/billboard.vert b/game/res/shaders/billboard.vert new file mode 100644 index 0000000..6b02501 --- /dev/null +++ b/game/res/shaders/billboard.vert @@ -0,0 +1,11 @@ +#version 100 + +attribute vec4 position; + +uniform mat4 view; +uniform mat4 projection; + +void main () +{ + gl_Position = projection * view * position; +} diff --git a/game/res/shaders/default.frag b/game/res/shaders/default.frag index b541df3..18447de 100644 --- a/game/res/shaders/default.frag +++ b/game/res/shaders/default.frag @@ -2,7 +2,16 @@ precision mediump float; +uniform sampler2D texture; + +varying vec2 f_uv; + void main () { - gl_FragColor = vec4 (0.5, 1.0, 0.5, 1.0); + if(texture2D (texture, f_uv).a < 0.1) + { + discard; + } + + gl_FragColor = texture2D (texture, f_uv); } diff --git a/game/res/shaders/default.vert b/game/res/shaders/default.vert index 6b02501..ebe8591 100644 --- a/game/res/shaders/default.vert +++ b/game/res/shaders/default.vert @@ -1,11 +1,15 @@ #version 100 attribute vec4 position; +attribute vec2 uv; uniform mat4 view; uniform mat4 projection; +varying vec2 f_uv; + void main () { + f_uv = uv; gl_Position = projection * view * position; } diff --git a/game/res/textures/tree.png b/game/res/textures/tree.png new file mode 100644 index 0000000000000000000000000000000000000000..8e867bf9dce0d64e8ea90da14b04f936cc9d3c2a GIT binary patch literal 95702 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 z zqYW*8-`KslmtFqc^RnKF)ys|)?+)xf_u$d-`L`!nojt*9Gsn(k{F}w2??nq+k zzS!t-$+5Pzz0uM5cKy4QXEy9*JwGxJ-}qH3Y-lNT?vJU{H63QIl|ucs6STuub97(a z`0}q@h*ibk$sBd@*H2t}zQkwFyiRW(wo?A6{~Kd=ZsA>ftnIFrqvqvHw}XA+%J@vb zET7drsje$kKtj}KA{%zruSDk#^&p!QhPU$gI(BN{&TfY3f zUuC01RG<9TRIz7z-D*bHS~lK2ygL8jjEftROy^j!ns+}q_;lZ!yLK%;Os1mDEpE** zc0T2^C$4Z2us(SFdUtpFs+lv48=cip3CzipSycB;evNX#>ZJGc7`?cvZfy9L<(2hl z%2w}b{@DiGe%mkL3i$A%HooIuwBVCJZ$+EJW^CPe`e)oeH{+ft$;PwyyzA>3!u|Lj zmoz&udW)alS+aBD-TkE-o~$hS<-0ZK&t8tDArF50KRg=lux{dpl!wA|?4l2-%hw%y z`>gg%v_!MVwNr=v{T_d6b*pKbJ)y#-#N^xOgPWNy%X7KBU!L||U#(AO-=XQ&&kU

&eXD0@FYDcq-#)j}TSsDToQ!Qz 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 glEnableVertexAttribArray (1); glVertexAttribPointer (1, 4, GL_FLOAT, GL_FALSE, sizeof (float) * 4, 0); - + glBindBuffer (GL_ELEMENT_ARRAY_BUFFER, mesh->ebo); if (game_flags.wireframe_enabled) @@ -115,6 +118,4 @@ ChunkMesh_render (ChunkMesh *mesh) { glDrawElements (GL_TRIANGLES, CHUNK_SIZE * 6, GL_UNSIGNED_INT, 0); } - - glBindBuffer (GL_ELEMENT_ARRAY_BUFFER, 0); } diff --git a/game/src/entity/entity.h b/game/src/entity/entity.h new file mode 100644 index 0000000..052ec58 --- /dev/null +++ b/game/src/entity/entity.h @@ -0,0 +1,18 @@ +#pragma once + +typedef enum EntityMeshType + { + ENTITY_MESH_BILLBOARD, + ENTITY_MESH_X + } EntityMeshType; + +typedef struct Entity +{ + vec3 position; + vec3 rotation; /* Unused for now. */ + vec3 scale; /* Unused for now. */ + int texture; + EntityMeshType type; +} Entity; + +Entity *Entity_new (vec3 position, int texture, EntityMeshType type); diff --git a/game/src/entity/manager.c b/game/src/entity/manager.c new file mode 100644 index 0000000..4f29f81 --- /dev/null +++ b/game/src/entity/manager.c @@ -0,0 +1,25 @@ +#include "manager.h" + +GSequence *entity_manager; + +EntityMesh mesh_billboard, mesh_x; + +void +EntityManager_init () +{ + entity_manager = g_sequence_new (NULL); + mesh_billboard = EntityMesh_make_billboard (); + mesh_x = EntityMesh_make_x (); +} + +void +EntityManager_tick () +{ + +} + +void +EntityManager_render () +{ + +} diff --git a/game/src/entity/manager.h b/game/src/entity/manager.h new file mode 100644 index 0000000..f7d6001 --- /dev/null +++ b/game/src/entity/manager.h @@ -0,0 +1,15 @@ +#pragma once + +#include +#include + +#include "entity.h" +#include "meshes.h" + +/* TODO: Sort entities by mesh type AS WELL AS distance. Binding + buffers is very performance-sensitive, thus to conserve speed one + type should be rendered in one go, then the other type, etc. */ + +void EntityManager_init (); +void EntityManager_tick (); +void EntityManager_render (); diff --git a/game/src/entity/meshes.c b/game/src/entity/meshes.c new file mode 100644 index 0000000..a4a70a9 --- /dev/null +++ b/game/src/entity/meshes.c @@ -0,0 +1,141 @@ +#include "meshes.h" + +/* TODO: add back faces. */ + +extern GameFlags game_flags; + +void +EntityMesh_bind (EntityMesh *mesh) +{ + glBindBuffer (GL_ARRAY_BUFFER, mesh->pbo); + glEnableVertexAttribArray (0); + glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, sizeof (float) * 3, 0); + + glBindBuffer (GL_ARRAY_BUFFER, mesh->uvbo); + glEnableVertexAttribArray (1); + glVertexAttribPointer (1, 2, GL_FLOAT, GL_FALSE, sizeof (float) * 2, 0); + + glBindBuffer (GL_ELEMENT_ARRAY_BUFFER, mesh->ebo); +} + +void +EntityMesh_render (EntityMesh *mesh) +{ + if (game_flags.wireframe_enabled) + { + glDrawElements (GL_LINES, mesh->indices_len, GL_UNSIGNED_INT, 0); + } + else + { + glDrawElements (GL_TRIANGLES, mesh->indices_len, GL_UNSIGNED_INT, 0); + } +} + +EntityMesh +EntityMesh_make_billboard () +{ + /* The positions are trivial. */ + float positions[12] = { + -1.0, -1.0, 0.0, + +1.0, -1.0, 0.0, + -1.0, 1.0, 0.0, + +1.0, 1.0, 0.0 + }; + + unsigned int indices[12] = { + 0, 2, 3, 3, 1, 0, /* Quad 1 */ + 3, 2, 0, 0, 1, 3, /* Back of quad 1 */ + }; + + float uvs[8] = { + 0.0, 1.0, + 1.0, 1.0, + 0.0, 0.0, + 1.0, 0.0, + }; + + EntityMesh mesh; + mesh.indices_len = 12; + glGenBuffers (1, &mesh.pbo); + glGenBuffers (1, &mesh.uvbo); + glGenBuffers (1, &mesh.ebo); + + glBindBuffer (GL_ARRAY_BUFFER, mesh.pbo); + glBufferData (GL_ARRAY_BUFFER, sizeof (float) * 12, positions, GL_STATIC_DRAW); + glEnableVertexAttribArray (0); + glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, sizeof (float) * 3, 0); + + glBindBuffer (GL_ARRAY_BUFFER, mesh.uvbo); + glBufferData (GL_ARRAY_BUFFER, sizeof (float) * 8, uvs, GL_STATIC_DRAW); + glEnableVertexAttribArray (1); + glVertexAttribPointer (1, 2, GL_FLOAT, GL_FALSE, sizeof (float) * 2, 0); + + + glBindBuffer (GL_ELEMENT_ARRAY_BUFFER, mesh.ebo); + glBufferData (GL_ELEMENT_ARRAY_BUFFER, sizeof (unsigned int) * mesh.indices_len, indices, GL_STATIC_DRAW); + + glBindBuffer (GL_ARRAY_BUFFER, 0); + glBindBuffer (GL_ELEMENT_ARRAY_BUFFER, 0); + + return mesh; +} + +EntityMesh +EntityMesh_make_x () +{ + /* The positions are trivial. */ + float positions[24] = { + -1.0, -1.0, 0.0, + +1.0, -1.0, 0.0, + -1.0, 1.0, 0.0, + +1.0, 1.0, 0.0, + + 0.0, -1.0, -1.0, + 0.0, -1.0, 1.0, + 0.0, 1.0, -1.0, + 0.0, 1.0, 1.0 + }; + + unsigned int indices[24] = { + 0, 2, 3, 3, 1, 0, /* Quad 1 */ + 3, 2, 0, 0, 1, 3, /* Back of quad 1 */ + 4, 6, 7, 7, 5, 4, /* Quad 2 */ + 7, 6, 4, 4, 5, 7 /* Back of quad 2 */ + }; + + float uvs[16] = { + 0.0, 1.0, + 1.0, 1.0, + 0.0, 0.0, + 1.0, 0.0, + + 0.0, 1.0, + 1.0, 1.0, + 0.0, 0.0, + 1.0, 0.0 + }; + + EntityMesh mesh; + mesh.indices_len = 24; + glGenBuffers (1, &mesh.pbo); + glGenBuffers (1, &mesh.uvbo); + glGenBuffers (1, &mesh.ebo); + + glBindBuffer (GL_ARRAY_BUFFER, mesh.pbo); + glBufferData (GL_ARRAY_BUFFER, sizeof (float) * 24, positions, GL_STATIC_DRAW); + glEnableVertexAttribArray (0); + glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, sizeof (float) * 3, 0); + + glBindBuffer (GL_ARRAY_BUFFER, mesh.uvbo); + glBufferData (GL_ARRAY_BUFFER, sizeof (float) * 16, uvs, GL_STATIC_DRAW); + glEnableVertexAttribArray (1); + glVertexAttribPointer (1, 2, GL_FLOAT, GL_FALSE, sizeof (float) * 2, 0); + + glBindBuffer (GL_ELEMENT_ARRAY_BUFFER, mesh.ebo); + glBufferData (GL_ELEMENT_ARRAY_BUFFER, sizeof (unsigned int) * mesh.indices_len, indices, GL_STATIC_DRAW); + + glBindBuffer (GL_ARRAY_BUFFER, 0); + glBindBuffer (GL_ELEMENT_ARRAY_BUFFER, 0); + + return mesh; +} diff --git a/game/src/entity/meshes.h b/game/src/entity/meshes.h new file mode 100644 index 0000000..0bee0ce --- /dev/null +++ b/game/src/entity/meshes.h @@ -0,0 +1,19 @@ +#pragma once + +#include +#include + +#include "../flags.h" + +typedef struct EntityMesh +{ + size_t indices_len; + unsigned int pbo; + unsigned int uvbo; + unsigned int ebo; +} EntityMesh; + +void EntityMesh_bind (EntityMesh *mesh); +void EntityMesh_render (EntityMesh *mesh); +EntityMesh EntityMesh_make_billboard (); +EntityMesh EntityMesh_make_x (); diff --git a/game/src/graphics.c b/game/src/graphics.c index 5a65593..ccf445c 100644 --- a/game/src/graphics.c +++ b/game/src/graphics.c @@ -6,6 +6,9 @@ extern ChunkManager chunk_manager; extern GameState game_state; extern Resources resources; +extern EntityMesh mesh_billboard; +extern EntityMesh mesh_x; + void GraphicsContext_init () { @@ -54,12 +57,11 @@ GraphicsContext_render () { glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - program_use (resources.programs[1]); - mat4 projection, view; Camera_get_projection (&game_state.camera, 640.0 / 480.0, projection); Camera_get_view (&game_state.camera, view); + program_use (resources.programs[1]); program_set_mat4 (resources.programs[1], "projection", projection); program_set_mat4 (resources.programs[1], "view", view); @@ -71,8 +73,15 @@ GraphicsContext_render () ChunkManager_render (game_state.camera.position, resources.programs[1]); - glBindTexture (GL_TEXTURE_2D, 0); + program_use (resources.programs[0]); + program_set_mat4 (resources.programs[0], "projection", projection); + program_set_mat4 (resources.programs[0], "view", view); + glActiveTexture (GL_TEXTURE0); + glBindTexture (GL_TEXTURE_2D, resources.textures[5]); + EntityMesh_bind (&mesh_billboard); + EntityMesh_render (&mesh_billboard); + SDL_GL_SwapWindow (gfx.window); } diff --git a/game/src/graphics.h b/game/src/graphics.h index 37daaad..70ec949 100644 --- a/game/src/graphics.h +++ b/game/src/graphics.h @@ -5,6 +5,7 @@ #include "util.h" #include "chunk/manager.h" +#include "entity/manager.h" #include "state.h" #include "resources.h" diff --git a/game/src/main.c b/game/src/main.c index 56d00db..4ca8186 100644 --- a/game/src/main.c +++ b/game/src/main.c @@ -23,6 +23,7 @@ SDL_AppInit (void **appstate, int argc, char **argv) handlers_init (); Resources_init (); ChunkManager_init (); + EntityManager_init (); GameState_init (SDL_GetTicks ()); /* Set some basic game flags for testing. */ game_flags.can_free_look = 1; diff --git a/game/src/resources.c b/game/src/resources.c index 3518d2f..d1205c7 100644 --- a/game/src/resources.c +++ b/game/src/resources.c @@ -85,6 +85,7 @@ Resources_init () Resources_load_texture ("res/textures/grass.png"); Resources_load_texture ("res/textures/rock_cement.png"); Resources_load_texture ("res/textures/asphalt_gravel.png"); + Resources_load_texture ("res/textures/tree.png"); } void diff --git a/game/src/state.c b/game/src/state.c index 63c9562..28ea819 100644 --- a/game/src/state.c +++ b/game/src/state.c @@ -9,6 +9,7 @@ GameState_init (int ticks) { game_state.last_time = ticks; game_state.camera = Camera_default (); + game_state.camera.position[2] = -1.0; } void