Fix metal roughness texture on streaked metal material
[opengl.git] / skybox.hpp
index 759ce7a2f484886a8302c446252eb9c83f4f7de5..6961e8d861104d82843739e28978e399b7104d12 100644 (file)
@@ -6,14 +6,23 @@
 #include <GL/glew.h>
 #include <glm/glm.hpp>
 #include "program.hpp"
+#include "image.hpp"
 class Skybox {
        public:
-               Skybox(const std::vector<std::string> faces);
+               // img must be HDR
+               Skybox(const Image img);
                void draw(glm::mat4 proj, glm::mat4 view) const;
-               GLuint getTexture() const;
+               GLuint getTexture() const { return cubemapTexId; }
+               GLuint getIrradianceMap() const { return irradianceTexId; }
+               GLuint getPrefilterMap() const { return prefilterTexId; }
+               GLuint getBRDFMap() const { return brdfMapTexId; }
        private:
-               GLuint texId, vao;
+               GLuint hdrTexId, cubemapTexId, irradianceTexId, prefilterTexId, brdfMapTexId;
+               GLuint captureFBO, captureRBO;
+               GLuint vao;
                const Program program;
+               void generatePrefilterMap() const;
+               void generateBRDFMap() const;
 };
 
 #endif