|
|
@ -2506,16 +2506,20 @@ void SetMatrixModelview(Matrix view) |
|
|
|
} |
|
|
|
|
|
|
|
// Generate cubemap texture from HDR texture |
|
|
|
// TODO: OpenGL ES 2.0 does not support GL_RGB16F texture format, neither GL_DEPTH_COMPONENT24 |
|
|
|
Texture2D GenTextureCubemap(Shader shader, Texture2D skyHDR, int size) |
|
|
|
{ |
|
|
|
Texture2D cubemap = { 0 }; |
|
|
|
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
|
|
#if defined(GRAPHICS_API_OPENGL_33) // || defined(GRAPHICS_API_OPENGL_ES2) |
|
|
|
// NOTE: SetShaderDefaultLocations() already setups locations for projection and view Matrix in shader |
|
|
|
// Other locations should be setup externally in shader before calling the function |
|
|
|
|
|
|
|
// Set up depth face culling and cubemap seamless |
|
|
|
glDisable(GL_CULL_FACE); |
|
|
|
glEnable(GL_TEXTURE_CUBE_MAP_SEAMLESS); |
|
|
|
#if defined(GRAPHICS_API_OPENGL_33) |
|
|
|
glEnable(GL_TEXTURE_CUBE_MAP_SEAMLESS); // Flag not supported on OpenGL ES 2.0 |
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
// Setup framebuffer |
|
|
|
unsigned int fbo, rbo; |
|
|
@ -2534,7 +2538,9 @@ Texture2D GenTextureCubemap(Shader shader, Texture2D skyHDR, int size) |
|
|
|
glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, GL_RGB16F, size, size, 0, GL_RGB, GL_FLOAT, NULL); |
|
|
|
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); |
|
|
|
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); |
|
|
|
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE); |
|
|
|
#if defined(GRAPHICS_API_OPENGL_33) |
|
|
|
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE); // Flag not supported on OpenGL ES 2.0 |
|
|
|
#endif |
|
|
|
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR); |
|
|
|
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_LINEAR); |
|
|
|
|
|
|
@ -2582,11 +2588,12 @@ Texture2D GenTextureCubemap(Shader shader, Texture2D skyHDR, int size) |
|
|
|
} |
|
|
|
|
|
|
|
// Generate irradiance texture using cubemap data |
|
|
|
// TODO: OpenGL ES 2.0 does not support GL_RGB16F texture format, neither GL_DEPTH_COMPONENT24 |
|
|
|
Texture2D GenTextureIrradiance(Shader shader, Texture2D cubemap, int size) |
|
|
|
{ |
|
|
|
Texture2D irradiance = { 0 }; |
|
|
|
|
|
|
|
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
|
|
#if defined(GRAPHICS_API_OPENGL_33) // || defined(GRAPHICS_API_OPENGL_ES2) |
|
|
|
// NOTE: SetShaderDefaultLocations() already setups locations for projection and view Matrix in shader |
|
|
|
// Other locations should be setup externally in shader before calling the function |
|
|
|
|
|
|
@ -2653,11 +2660,12 @@ Texture2D GenTextureIrradiance(Shader shader, Texture2D cubemap, int size) |
|
|
|
} |
|
|
|
|
|
|
|
// Generate prefilter texture using cubemap data |
|
|
|
// TODO: OpenGL ES 2.0 does not support GL_RGB16F texture format, neither GL_DEPTH_COMPONENT24 |
|
|
|
Texture2D GenTexturePrefilter(Shader shader, Texture2D cubemap, int size) |
|
|
|
{ |
|
|
|
Texture2D prefilter = { 0 }; |
|
|
|
|
|
|
|
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
|
|
#if defined(GRAPHICS_API_OPENGL_33) // || defined(GRAPHICS_API_OPENGL_ES2) |
|
|
|
// NOTE: SetShaderDefaultLocations() already setups locations for projection and view Matrix in shader |
|
|
|
// Other locations should be setup externally in shader before calling the function |
|
|
|
// TODO: Locations should be taken out of this function... too shader dependant... |
|
|
@ -2743,10 +2751,11 @@ Texture2D GenTexturePrefilter(Shader shader, Texture2D cubemap, int size) |
|
|
|
} |
|
|
|
|
|
|
|
// Generate BRDF texture using cubemap data |
|
|
|
// TODO: OpenGL ES 2.0 does not support GL_RGB16F texture format, neither GL_DEPTH_COMPONENT24 |
|
|
|
Texture2D GenTextureBRDF(Shader shader, Texture2D cubemap, int size) |
|
|
|
{ |
|
|
|
Texture2D brdf = { 0 }; |
|
|
|
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) |
|
|
|
#if defined(GRAPHICS_API_OPENGL_33) // || defined(GRAPHICS_API_OPENGL_ES2) |
|
|
|
// Generate BRDF convolution texture |
|
|
|
glGenTextures(1, &brdf.id); |
|
|
|
glBindTexture(GL_TEXTURE_2D, brdf.id); |
|
|
|