#include "game.h" /*We upload all the light vectors*/ static const Light diffuseLight[4] = { /* Sun Light */ { {5.0f, 50.0f, 2.0f}, {1.0f, 1.0f, 1.0f, 1.0f}, {1.0f, 0.0f, 0.0f} }, /* Other lights */ { {10.0f, 20.0f, 0.0f}, {1.0f, 0.0f, 0.0f, 1.0f}, {1.0f, 0.01f, 0.002f} }, { {20.0f, 20.0f, 0.0f}, {0.0f, 0.0f, 1.0f, 1.0f}, {1.0f, 0.01f, 0.002f} }, { {30.0f, 20.0f, 0.0f}, {0.0f, 1.0f, 0.0f, 1.0f}, {1.0f, 0.01f, 0.002f} }, }; void Draw(Game *game) { Mat4 viewMatrix, projectedViewMatrix, modelTransform, projectionMatrix; Vec3 pos = {-10.0, 70.0, 10.0}; Vec3 viewDirection = {0.22, -0.77, -0.58}; Vec3 up = {0.0f, 1.0f, 0.0f}; Render_BeginFrame(); shader_set_uniform_vec3(game->shaderProgram, "World_eyePosition", (float *)&game->camera->position); Render_LoadLights(game->shaderProgram, diffuseLight, 1); texture_bind(game->normalMap[1], 13); glUniform1i(game->shaderProgram->Normal_Map, 13); viewMatrix = mat4_lookAt(&pos, &viewDirection, &up); projectionMatrix = mat4_orthographic(-50.0f, 50.0f, -50.0f, 50.0f, -50.0f, 70.0f); // projectedViewMatrix = mat4_mul(&projectionMatrix, &viewMatrix); Render_DrawEntity(game->shaderProgram, &projectedViewMatrix, &game->player.entity); texture_bind(game->normalMap[0], 13); Render_DrawEntity(game->shaderProgram, &projectedViewMatrix, &game->ents[0]); Render_EndFrame(); Vec3 t = {-1.0f, 10.0f, -1.0f}; modelTransform = mat4_translate(&t); Mat4 temp = mat4_scale(10.0f, 10.0f, 10.0f); modelTransform = mat4_mul(&modelTransform, &temp); viewMatrix = camera_get_model_to_view_matrix(game->camera); projectionMatrix = game->camera->projectionMatrix; projectedViewMatrix = mat4_mul(&projectionMatrix, &viewMatrix); modelTransform = mat4_mul(&projectedViewMatrix, &modelTransform); glBindTexture(GL_TEXTURE_2D, render.shadow_map); glUseProgram(render.default_shader->id); glUniform1i(render.default_shader->Texture, 0); glUniformMatrix4fv(render.default_shader->totalTransform, 1, GL_FALSE, modelTransform.data); glBindVertexArray(render.default_quad->vao); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); glBindVertexArray(0); /* glUseProgram(game->terrainProgram->id); shader_set_uniform_vec3(game->terrainProgram, "World_eyePosition", (float *)&game->camera->position); Render_LoadLights(game->terrainProgram, diffuseLight, 1); Render_DrawTerrain(game->terrainProgram, &projectedViewMatrix, game->terrain); glUseProgram(game->skyboxProgram->id); Render_DrawSky(game->skyboxProgram, &viewMatrix, &game->camera->projectionMatrix, &game->sky); glUseProgram(game->particlesProgram->id); Render_DrawParticles(game->particlesProgram, &viewMatrix, &game->camera->projectionMatrix); */ glUseProgram(game->shaderProgram->id); window_update(game->window); }