#include <vector>
#ifdef __APPLE__
#include <GL/glew.h>
+#include "cocoa.h"
#else
#include <OpenGL/glew.h>
#endif
glActiveTexture(GL_TEXTURE3);
glBindTexture(GL_TEXTURE_2D, roughnessMap);
- glUniform1i(glGetUniformLocation(pbrProg->progId, "aoMap"), 3);
+ glUniform1i(glGetUniformLocation(pbrProg->progId, "aoMap"), 4);
glActiveTexture(GL_TEXTURE4);
glBindTexture(GL_TEXTURE_2D, aoMap);
+ glUniform1i(glGetUniformLocation(pbrProg->progId, "irradianceMap"), 5);
+ glActiveTexture(GL_TEXTURE5);
+ glBindTexture(GL_TEXTURE_CUBE_MAP, skybox->getIrradianceMap());
+
+ glUniform1i(glGetUniformLocation(pbrProg->progId, "prefilterMap"), 6);
+ glActiveTexture(GL_TEXTURE6);
+ glBindTexture(GL_TEXTURE_CUBE_MAP, skybox->getPrefilterMap());
+
+ glUniform1i(glGetUniformLocation(pbrProg->progId, "brdfMap"), 7);
+ glActiveTexture(GL_TEXTURE7);
+ glBindTexture(GL_TEXTURE_2D, skybox->getBRDFMap());
+
pbr->draw();
for (Light &light: lights) drawLight(light);
glUseProgram(pbrProg->progId);
pbr = new Model("models/sphere.dae", *pbrProg, *skybox);
- albedoMap = loadTexture("models/darktiles/darktiles1_basecolor.png");
- metallicMap = loadTexture("models/darktiles/darktiles1_metallic.png");
- normalMap = loadTexture("models/darktiles/darktiles1_normal.png");
- roughnessMap = loadTexture("models/darktiles/darktiles1_roughness.png");
- aoMap = loadTexture("models/darktiles/darktiles1_AO.png");
+ albedoMap = loadTexture("models/streakedmetal/streakedmetal_albedo.png");
+ metallicMap = loadTexture("models/streakedmetal/streakedmetal_metalness.png");
+ normalMap = loadTexture("models/streakedmetal/streakedmetal_normal.png");
+ roughnessMap = loadTexture("models/streakedmetal/streakedmetal_roughness.png");
+ aoMap = loadTexture("models/streakedmetal/streakedmetal_ao.png");
glEnable(GL_DEPTH_TEST);
glEnable(GL_CULL_FACE);
+ // prevent edge artifacts in specular cubemaps
+ glEnable(GL_TEXTURE_CUBE_MAP_SEAMLESS);
}
bool* keyStates = new bool[256];
init();
+ swizzle();
+
glutKeyboardFunc(keyboard);
glutKeyboardUpFunc(keyboardUp);
glutTimerFunc(16, timer, 0);