X-Git-Url: http://git.lukelau.me/?p=opengl.git;a=blobdiff_plain;f=main.cpp;fp=main.cpp;h=9464e9ec5044181c2ab0340ab1a1169d7dc7be28;hp=8fbff622b06ec1440851b33cdd69aeda1f46d0b8;hb=d80972d96e5fcd444657f937ab2700039efa83d2;hpb=9e43c799021b7bcca324b988aae44e98b05d10b4 diff --git a/main.cpp b/main.cpp index 8fbff62..9464e9e 100644 --- a/main.cpp +++ b/main.cpp @@ -5,6 +5,7 @@ #include #ifdef __APPLE__ #include +#include "cocoa.h" #else #include #endif @@ -169,6 +170,14 @@ void display() { 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); @@ -220,14 +229,16 @@ void init() { 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]; @@ -322,6 +333,8 @@ int main(int argc, char** argv) { init(); + swizzle(); + glutKeyboardFunc(keyboard); glutKeyboardUpFunc(keyboardUp); glutTimerFunc(16, timer, 0);