From 786d18cd755729c8b239d27948abf56e0079e4ef Mon Sep 17 00:00:00 2001 From: sergeypdev Date: Sat, 3 May 2025 01:33:19 +0400 Subject: [PATCH] add mesh for rendering car lights --- assets/ae86_lights.glb | 3 +++ game/game.odin | 4 +++- game/render/render.odin | 13 +++++++------ src_assets/ae86.blend | 4 ++-- 4 files changed, 15 insertions(+), 9 deletions(-) create mode 100644 assets/ae86_lights.glb diff --git a/assets/ae86_lights.glb b/assets/ae86_lights.glb new file mode 100644 index 0000000..f51c655 --- /dev/null +++ b/assets/ae86_lights.glb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f907ceece47f3914bf00d6c5010a41110c5dfda276273a8e0b3c6f68966a5380 +size 3888 diff --git a/game/game.odin b/game/game.odin index 3688e7c..55d79c1 100644 --- a/game/game.odin +++ b/game/game.odin @@ -822,7 +822,7 @@ draw :: proc() { render.draw_model(car_model, basic_shader.shader, car_matrix) - render.draw_point_light(0, 2, rl.Color{255, 255, 255, 69}) + render.draw_mesh_light(assets.get_model(&g_mem.assetman, "assets/ae86_lights.glb"), car_matrix, rl.Color{255, 255, 255, 100}) } { @@ -1111,6 +1111,8 @@ game_init_window :: proc(args: []string) { init_physfs(args) + render.init() + rl.SetConfigFlags({.WINDOW_RESIZABLE, .VSYNC_HINT}) rl.InitWindow(1280, 720, "Odin + Raylib + Hot Reload template!") rl.SetExitKey(.KEY_NULL) diff --git a/game/render/render.odin b/game/render/render.odin index d5e00fb..8b767d5 100644 --- a/game/render/render.odin +++ b/game/render/render.odin @@ -27,7 +27,10 @@ draw_model :: proc(model: rl.Model, shader: rl.Shader, transform: rl.Matrix) { rl.DrawModel(model, rl.Vector3{}, 1, rl.WHITE) } -draw_point_light :: proc(pos: rl.Vector3, radius: f32, color: rl.Color) { +draw_mesh_light :: proc(model: rl.Model, transform: rl.Matrix, color: rl.Color) { + model := model + model.transform = transform + rlgl.DrawRenderBatchActive() gl.Enable(gl.STENCIL_TEST) @@ -40,7 +43,7 @@ draw_point_light :: proc(pos: rl.Vector3, radius: f32, color: rl.Color) { gl.ColorMask(false, false, false, false) rlgl.SetCullFace(.FRONT) - rl.DrawSphere(pos, radius, color) + rl.DrawModel(model, {}, 1, color) rlgl.DrawRenderBatchActive() } @@ -51,7 +54,7 @@ draw_point_light :: proc(pos: rl.Vector3, radius: f32, color: rl.Color) { gl.ColorMask(true, true, true, true) rlgl.SetCullFace(.BACK) - rl.DrawSphere(pos, radius, color) + rl.DrawModel(model, {}, 1, color) rlgl.DrawRenderBatchActive() } @@ -60,7 +63,7 @@ draw_point_light :: proc(pos: rl.Vector3, radius: f32, color: rl.Color) { gl.DepthFunc(gl.GREATER) rlgl.SetCullFace(.FRONT) - rl.DrawSphere(pos, radius, color) + rl.DrawModel(model, {}, 1, color) rlgl.DrawRenderBatchActive() } @@ -70,6 +73,4 @@ draw_point_light :: proc(pos: rl.Vector3, radius: f32, color: rl.Color) { gl.DepthFunc(gl.LEQUAL) rlgl.EnableDepthMask() - - // rl.DrawMesh(mesh, rl.LoadMaterialDefault(), transform) } diff --git a/src_assets/ae86.blend b/src_assets/ae86.blend index 1f1e5a5..b145880 100644 --- a/src_assets/ae86.blend +++ b/src_assets/ae86.blend @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:274e285cb4fda4383e6437f2e3dec9f8d0289fd6e9ce7693e408deee06d50634 -size 3965428 +oid sha256:e6904d020be88d9bef859c93370380331f460c980fb16eecd3483a9cb93de1f8 +size 3860409