CSEngine
Loading...
Searching...
No Matches
SEnvironmentMgr.h
1//
2// Created by ounols on 19. 5. 4.
3//
4#pragma once
5
6#include "STexture.h"
7
8namespace CSE {
9
10 class GLProgramHandle;
11
13 public:
15
17
18 void RenderPBREnvironment();
19
20 void RenderBRDFLUT();
21
22 void ReleaseRenderingResources();
23
24 int BindPBREnvironmentMap(const GLProgramHandle* handle, int textureLayout) const;
25 int BindBRDFLUT(const GLProgramHandle* handle, int textureLayout) const;
26
27 static unsigned int GetWidth();
28 static unsigned int* GetPointerWidth();
29
30 static void SetWidth(unsigned int width);
31
32 static unsigned int GetHeight();
33 static unsigned int* GetPointerHeight();
34
35 static void SetHeight(unsigned int height);
36
37 static void RenderPlaneVAO();
38 static void RenderCubeVAO();
39
40 static void ReleaseVAO();
41
42 private:
43 void LoadCubeVAO();
44
45 void LoadPlaneVAO();
46
47
48
49 private:
50 static unsigned int m_width;
51 static unsigned int m_height;
52
53 GLProgramHandle* m_equirectangularToCubemapShader;
54 GLProgramHandle* m_irradianceShader;
55 GLProgramHandle* m_prefilterShader;
56 GLProgramHandle* m_brdfShader;
57
58 STexture* m_hdrTexture;
59 STexture* m_envCubemap;
60 STexture* m_irradianceMap;
61 STexture* m_prefilterMap;
62 STexture* m_brdfMap;
63
64 unsigned int m_cubeVBO;
65 static unsigned int m_cubeVAO;
66 unsigned int m_planeVBO;
67 static unsigned int m_planeVAO;
68
69 unsigned int m_captureFBO = 0;
70 unsigned int m_captureRBO = 0;
71 };
72}