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) $^ \
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;
keyStates[key] = false;
}
-/* #define ENABLE_MOVEMENT */
+#define ENABLE_MOVEMENT
void timer(int _) {
#ifdef ENABLE_MOVEMENT
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);
}