]> git.lizzy.rs Git - dragonblocks_alpha.git/commitdiff
Use bilinear filter for skybox textures
authorElias Fleckenstein <eliasfleckenstein@web.de>
Sun, 17 Apr 2022 22:46:10 +0000 (00:46 +0200)
committerElias Fleckenstein <eliasfleckenstein@web.de>
Sun, 17 Apr 2022 22:46:10 +0000 (00:46 +0200)
src/client/model.c
src/client/sky.c
src/client/texture.c
src/client/texture.h

index 5f7dd17013cfb6863af82448532524202be3b680..3a8ba6c5ea417a097f983571a198be968b1e87c1 100644 (file)
@@ -289,7 +289,7 @@ Model *model_load(const char *path, const char *textures_path, Mesh *cube, Model
 
                                        char filepath[strlen(textures_path) + 1 + strlen(texture) + 1];
                                        sprintf(filepath, "%s/%s", textures_path, texture);
-                                       Texture *texture = texture_load_cubemap(filepath);
+                                       Texture *texture = texture_load_cubemap(filepath, false);
 
                                        model_node_add_mesh(node, &(ModelMesh) {
                                                .mesh = cube,
index e648d8d5cea138abc828d1bc605f21a39d8889da..2268f51147a8c8a14f03f8d8e863d183005a2491 100644 (file)
@@ -95,8 +95,8 @@ bool sky_init()
 
        skybox_loc_VP = glGetUniformLocation(skybox_prog, "VP"); GL_DEBUG
        skybox_loc_daylight = glGetUniformLocation(skybox_prog, "daylight"); GL_DEBUG
-       skybox_texture_day = texture_load_cubemap(RESSOURCE_PATH "textures/skybox/day")->txo;
-       skybox_texture_night = texture_load_cubemap(RESSOURCE_PATH "textures/skybox/night")->txo;
+       skybox_texture_day = texture_load_cubemap(RESSOURCE_PATH "textures/skybox/day", true)->txo;
+       skybox_texture_night = texture_load_cubemap(RESSOURCE_PATH "textures/skybox/night", true)->txo;
        skybox_mesh.data = skybox_vertices;
        mesh_upload(&skybox_mesh);
 
index a80738faeb6c87c49fee353d50cd3456c377e00d..525b2aaba41dcc70d5740c5236afa60ea88d1bdf 100644 (file)
@@ -90,7 +90,7 @@ static inline int least_common_multiple(int a, int b)
        return lcm;
 }
 
-Texture *texture_load_cubemap(char *path)
+Texture *texture_load_cubemap(char *path, bool bilinear_filter)
 {
        Texture *texture;
        if (lookup_texture(path, &texture))
@@ -153,8 +153,8 @@ Texture *texture_load_cubemap(char *path)
                        stbi_image_free(data);
        }
 
-       glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_NEAREST); GL_DEBUG
-       glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_NEAREST); GL_DEBUG
+       glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, bilinear_filter ? GL_LINEAR : GL_NEAREST); GL_DEBUG
+       glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, bilinear_filter ? GL_LINEAR : GL_NEAREST); GL_DEBUG
        glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); GL_DEBUG
        glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); GL_DEBUG
        glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE); GL_DEBUG
index 933fe72b9cbc5c72ca6925e12078ee644c0c43eb..25111f75ae2c8f3e642d7c51002806d7d266ef70 100644 (file)
@@ -10,7 +10,7 @@ typedef struct {
 } Texture;
 
 Texture *texture_load(char *path, bool mipmap);
-Texture *texture_load_cubemap(char *path);
+Texture *texture_load_cubemap(char *path, bool linear_filter);
 void texture_upload(Texture *texture, unsigned char *data, GLenum format, bool mipmap);
 void texture_destroy(Texture *texture);