From: Luke Lau Date: Tue, 18 Feb 2020 14:06:53 +0000 (+0000) Subject: Mipmapping X-Git-Url: https://git.lukelau.me/?p=opengl.git;a=commitdiff_plain;h=45e43c5d0b6a1415185211128d82190fd19c3fe9 Mipmapping --- diff --git a/Makefile b/Makefile index 91abc4f..97ea923 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ all: bin/main -CXX_FLAGS := -g --std=c++17 -march=native -Wall -DDEBUG_NODES -DCOWEDBOY_IK +CXX_FLAGS := -g --std=c++17 -march=native -Wall -DDEBUG_NODES bin/main: model.o material.o image.o skybox.o program.o ik.o main.o util.o clang++ $(CXX_FLAGS) $^ \ diff --git a/main.cpp b/main.cpp index e4cc81a..b7781ac 100644 --- a/main.cpp +++ b/main.cpp @@ -232,7 +232,7 @@ void init() { pbrProg = new Program("pbrvert.glsl", "pbrfrag.glsl"); glUseProgram(pbrProg->progId); - const std::string scenePath = "models/cowedboy.glb"; + const std::string scenePath = "models/mipmapping.glb"; const aiScene *scene = importer.ReadFile(scenePath, aiProcess_Triangulate | aiProcess_CalcTangentSpace | aiProcess_GenNormals | aiProcess_FlipUVs); if (!scene) { std::cerr << importer.GetErrorString() << std::endl; @@ -290,7 +290,7 @@ void keyboardUp(unsigned char key, int x, int y) { keyStates[key] = false; } -/* #define ENABLE_MOVEMENT */ +#define ENABLE_MOVEMENT void timer(int _) { #ifdef ENABLE_MOVEMENT diff --git a/material.cpp b/material.cpp index 85ff7d7..a1d44be 100644 --- a/material.cpp +++ b/material.cpp @@ -49,6 +49,15 @@ Material::Texture::Texture(const aiString fileName, const aiScene &scene) { glTexImage2D(GL_TEXTURE_2D, 0, img.internalFormat(), img.width(), img.height(), 0, img.format(), img.type(), img.data()); } + // magnifying - no bigger mipmap available, so use linear filtering + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + // minifying - use a linear blend of two mipmaps + // which are themselves filtered linearly + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); + + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); + glGenerateMipmap(GL_TEXTURE_2D); } diff --git a/models/mipmapping.blend b/models/mipmapping.blend new file mode 100644 index 0000000..13d8885 Binary files /dev/null and b/models/mipmapping.blend differ diff --git a/models/mipmapping.glb b/models/mipmapping.glb new file mode 100644 index 0000000..a12ce21 Binary files /dev/null and b/models/mipmapping.glb differ