Fix metal roughness texture on streaked metal material
[opengl.git] / skybox.hpp
index f1ac4ee9a19c2ab3bab08440c496e49515855756..6961e8d861104d82843739e28978e399b7104d12 100644 (file)
@@ -1,13 +1,28 @@
+#ifndef SKYBOX_HPP
+#define SKYBOX_HPP
+
 #include <string>
 #include <vector>
 #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 { 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